~danielholm/musicapp/trunk

« back to all changes in this revision

Viewing changes to MusicApp.qml

  • Committer: Daniel Holm
  • Date: 2013-05-14 22:35:56 UTC
  • Revision ID: admin@danielholm.se-20130514223556-6rsxp5y8z1vcwrbd
Created a updateUI() function to call; Almost there on playing next track after current ends; Playin tab name now show current tracks title.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
import Ubuntu.Components.ListItems 0.1
23
23
import Ubuntu.Components.Popups 0.1
24
24
import Ubuntu.Components.ListItems 0.1 as ListItem
25
 
import Qt.labs.folderlistmodel 1.0
 
25
import Qt.labs.folderlistmodel 1.0 // change from this
 
26
//import org.nemomobile.folderlistmodel 1.0 //change to this
26
27
import QtMultimedia 5.0
27
28
import QtQuick.LocalStorage 2.0
28
29
 
48
49
 
49
50
    // What is the state of the playback?
50
51
    function stateChange() {
51
 
 
52
52
        // state was stopped (0)
53
53
        if (playMusic.playbackState == "0") {
54
54
            console.debug("Debug: Music was stopped. Playing")
55
55
            beenStopped() // run stop function
56
56
            playMusic.play() // then play
57
 
 
58
 
            playTrack.iconSource = Qt.resolvedUrl("images/icon_pause@20.png") // change toolbar icon
59
 
            playTrack.text = i18n.tr("Pause") // change toolbar text
60
 
            trackInfo.text = playMusic.metaData.albumArtist+" - "+playMusic.metaData.title // show track meta data
61
 
 
62
 
            setProgressbar() // set progressbar
63
57
        }
64
58
 
65
59
        // if state was playing (1)
66
60
        else if (playMusic.playbackState == "1") {
67
61
            console.debug("Debug: Track was playing. Pause")
68
62
            playMusic.pause() // pause the music then
69
 
 
70
 
            playTrack.iconSource = Qt.resolvedUrl("images/icon_play@20.png") // change toolbar icon
71
 
            playTrack.text = i18n.tr("Resume") // change toolbar text
72
 
            trackInfo.text = i18n.tr("(Paused) ")+playMusic.metaData.albumArtist+" - "+playMusic.metaData.title // show track meta data
73
63
        }
74
64
 
75
65
        // if state is paused (2)
76
66
        else if (playMusic.playbackState == "2") {
77
67
            console.debug("Debug: Track was paused. Playing")
78
68
            playMusic.play() // resume then
79
 
 
80
 
            playTrack.iconSource = Qt.resolvedUrl("images/icon_pause@20.png") // change toolbar icon
81
 
            playTrack.text = i18n.tr("Pause") // change toolbar text
82
 
            trackInfo.text = playMusic.metaData.albumArtist+" - "+playMusic.metaData.title // show track meta data
83
 
 
84
 
            setProgressbar() // set progressbar
85
69
        }
 
70
 
 
71
        updateUI()
86
72
    }
87
73
 
88
74
    // stop function
92
78
        // track was just paused or stopped. Resume previous track
93
79
        if (playMusic.source != "") {
94
80
            console.debug("Debug: Resume previous song: "+playMusic.source)
95
 
            trackInfo.text = playMusic.metaData.albumArtist+" - "+playMusic.metaData.title // show track meta data
 
81
 
 
82
            updateUI()
96
83
        }
97
84
 
98
85
        // app just started, play random
101
88
            //playMusic.source = musicDir+folderModel.get(0).file // this should play a dynamic track
102
89
            //console.debug("Debug: First song is"+folderModel.get(0).file)
103
90
            console.debug("Debug: I was just started. Play random track: "+playMusic.source)
104
 
            trackInfo.text = playMusic.metaData.albumArtist+" - "+playMusic.metaData.title // show track meta data
 
91
 
 
92
            updateUI()
105
93
        }
106
94
    }
107
95
 
115
103
            playMusic.play()
116
104
            removedTrackQueue.append({"title": trackQueue.get(0).title, "artist": trackQueue.get(0).artist, "file": trackQueue.get(0).file}) // move the track to a list of preious tracks
117
105
            trackQueue.remove(index) // remove the track from queue
118
 
            setProgressbar() // set progressbar
 
106
 
 
107
            updateUI()
119
108
        }
120
109
 
121
110
        // if not, play another
123
112
 
124
113
            // if shuffle, play random
125
114
            if (settings.shuffle == 1) {
126
 
                setProgressbar() // set progressbar
 
115
                updateUI()
127
116
            }
128
117
 
129
118
            // if not shuffle, play next
133
122
                playMusic.play()
134
123
                removedTrackQueue.append({"title": trackQueue.get(0).title, "artist": trackQueue.get(0).artist, "file": trackQueue.get(0).file}) // move the track to a list of preious tracks
135
124
                trackQueue.remove(index) // remove the track from queue
136
 
                setProgressbar() // set progressbar
 
125
 
 
126
                updateUI()
137
127
            }
138
128
        }
139
129
    }
143
133
        // play the previous track
144
134
        playMusic.source = musicDir+removedTrackQueue.get(removedTrackQueue.count).file
145
135
        playMusic.play()
146
 
        setProgressbar() // set progressbar
 
136
 
 
137
        updateUI()
147
138
    }
148
139
 
149
140
    // Get song title
199
190
        trackProgress.maximumValue = playMusic.duration
200
191
    }
201
192
 
 
193
    // update the UI things with meta data from track
 
194
    function updateUI() {
 
195
        playinTab.title = playMusic.metaData.title // show track title in tab header
 
196
        playTrack.iconSource = Qt.resolvedUrl("images/icon_pause@20.png") // change toolbar icon
 
197
        playTrack.text = i18n.tr("Pause") // change toolbar text
 
198
        trackInfo.text = playMusic.metaData.albumArtist+" - "+playMusic.metaData.title // show track meta data
 
199
        coverArt.source = playMusic.metaData.coverArtUrlLarge
 
200
 
 
201
        setProgressbar() // set progressbar
 
202
 
 
203
        console.debug("Debug: UI updated.")
 
204
    }
 
205
 
202
206
    // Music stuff
203
207
    Audio {
204
208
        id: playMusic
205
209
        source: ""
206
 
        // get ready to change the progressbar
207
 
 
208
 
    }
209
 
 
210
 
    // when track ended
211
 
    Connections {
212
 
        target: playMusic
213
 
        onStopped: {
214
 
            console.debug("Debug: Track stopped.")
215
 
        }
216
 
 
217
210
        onStatusChanged: {
218
 
            //console.debug("Debug: changed..."+playMusic.EndOfMedia)
219
 
            console.debug("Debug: changed status: "+playMusic.status)
220
 
 
221
 
            if (playMusic.status == "7") {
222
 
                console.debug("Debug: End of track. Play next.")
223
 
                nextTrack()
 
211
             if (status === Audio.EndOfMedia || 7 ) {
 
212
                 console.log("Deub: Track ended. Play next.") //debug
 
213
                 //nextTrack()
 
214
             }
 
215
             else {
 
216
                  console.log("the Music Players status = " + playMusic.status)
224
217
            }
225
218
        }
226
219
    }
242
235
        //Keys.onSpacePressed: stateChange()
243
236
    }
244
237
 
 
238
    /*
 
239
    FolderListModel {
 
240
        id: pageModel
 
241
        path: homePath()
 
242
    }*/
 
243
 
245
244
    // list of tracks on startup. This is just during development
246
245
    ListModel {
247
246
        id: trackQueue
290
289
 
291
290
        // First tab begins here - should be the primary tab
292
291
        Tab {
 
292
            id: playinTab
293
293
            objectName: "Tab1"
294
294
 
295
295
            title: i18n.tr("Playing")
314
314
                            // just to debug other stuff for a while
315
315
                            console.debug("Debug: change progress to "+playMusic.position)
316
316
                            trackProgress.value = playMusic.position
 
317
                            homePath()
317
318
                        }
318
319
                    }
319
320
 
417
418
                                height: units.gu(50)
418
419
                                gradientColor: "blue" // test
419
420
                                image: Image {
 
421
                                    id: coverArt
420
422
                                    source: "images/music.png"
421
423
                                }
422
424
                            }
575
577
                                playMusic.source = musicDir+fileName
576
578
                                playMusic.play()
577
579
                                console.debug('Debug: User pressed '+musicDir+fileName)
578
 
                                trackInfo.text = playMusic.metaData.albumArtist+" - "+playMusic.metaData.title // show track meta data
 
580
                                // run UI changes
579
581
                                // cool animation
580
582
                            }
581
583
                            onPressAndHold: {