Пример #1
0
    def prev(self, *_):
        if self.repeat_state == 2 or self.current_song == 0 or self.gst._get_duration(
        ) > 3:
            TaskHelper().run(self.play,
                             self.queue[self.current_song],
                             callback=(self.update_interface, ))
            return

        self.current_song -= 1
        TaskHelper().run(self.play,
                         self.queue[self.current_song],
                         callback=(self.update_interface, ))
Пример #2
0
 def display_songs(self,songs):
     self.clear_all()
     self.songs_listbox.queue = songs
     for song in songs:
         row = TrackRow(song)
         self.songs_listbox.add(row)
         TaskHelper().run(get_cover_from_album,row.track,self.session,callback=(row.display_cover,))
Пример #3
0
    def update_interface(self, track):
        def display_cover(data, self):
            try:
                loader = GdkPixbuf.PixbufLoader.new()
                loader.write(data)
                loader.close()
                loader = loader.get_pixbuf()
                cover_btn = loader.scale_simple(32, 32,
                                                GdkPixbuf.InterpType.BILINEAR)
                cover_enlarge_player = loader.scale_simple(
                    316, 316, GdkPixbuf.InterpType.BILINEAR)
                self.app.player_cover.set_from_pixbuf(cover_btn)
                self.app.playerE_cover.set_from_pixbuf(cover_enlarge_player)
            except:
                self.app.player_cover.set_from_icon_name(
                    "folder-music-symbolic", 32)
                self.app.playerE_cover.set_from_icon_name(
                    "folder-music-symbolic", 316)

        #Display songs info
        self.app.player_play_image.set_from_icon_name(
            "media-playback-pause-symbolic", Gtk.IconSize.BUTTON)
        self.app.playerE_play_image.set_from_icon_name(
            "media-playback-pause-symbolic", -1)
        self.app.player_title.set_text(track.title)
        self.app.playerE_title.set_text(track.title)
        self.app.player_artist.set_text(track.artist.name)
        self.app.playerE_artist.set_text(track.artist.name)
        min = int(track.duration / 60)
        sec = track.duration % 60
        if sec < 10:
            sec = "0" + str(sec)
        self.app.player_total_duration.set_text(f"{min}:{sec}")
        self.app.playerE_total_duration.set_text(f"{min}:{sec}")

        #Set duration scale
        self.app.duration_scale.set_upper(float(track.duration))
        self.app.duration_scale.set_value(self.app.duration_scale.props.lower)

        #Display cover (if avaible)
        if track.cover is not None:
            TaskHelper().run(get_cover_from_album,
                             track,
                             self.session,
                             callback=(display_cover, self))
        else:
            self.app.player_cover.set_from_icon_name("folder-music-symbolic",
                                                     32)
            self.app.playerE_cover.set_from_icon_name("folder-music-symbolic",
                                                      316)

        #Display like statue:
        # if track.like:
        #     self.app.like_button_img.set_from_icon_name("heart-filled-symbolic",Gtk.IconSize.BUTTON)
        # else:
        #     self.app.like_button_img.set_from_icon_name("heart-outline-thin-symbolic",Gtk.IconSize.BUTTON)

        self.app.player_reveal.set_reveal_child(True)
        self.update_queue()
Пример #4
0
    def next(self, *_):
        if self.repeat_state == 2:
            TaskHelper().run(self.play,
                             self.queue[self.current_song],
                             callback=(self.update_interface, ))
            return

        if self.has_next():
            self.current_song += 1
            TaskHelper().run(self.play,
                             self.queue[self.current_song],
                             callback=(self.update_interface, ))
        else:
            if self.repeat_state == 1:
                self.current_song = 0
                TaskHelper().run(self.play,
                                 self.queue[self.current_song],
                                 callback=(self.update_interface, ))
            else:
                self.stop()
Пример #5
0
 def get_songs(self,*args):
     TaskHelper().run(self.session.get_userfav_tracks,callback=(self.display_songs,))
Пример #6
0
 def display_albums(self,albums):
     self.clear_all()
     for album in albums:
         row = AlbumWidget(album)
         self.albums_flowbox.add(row)
         TaskHelper().run(get_cover_from_album,row.album,self.session,callback=(row.display_cover,))
Пример #7
0
 def get_albums(self,*args):
     TaskHelper().run(self.session.get_userfav_albums,callback=(self.display_albums,))
Пример #8
0
 def login_username(self,*_):
     self.log_error_reveal.set_reveal_child(False)
     self.log_button.set_sensitive(False)
     self.log_button_stack.set_visible_child_name("try")
     TaskHelper().run(self.session.login,self.log_username.get_text(), self.log_password.get_text(),callback=(self.on_login,))
Пример #9
0
 def load(self, queue, position):
     self.queue = queue
     self.current_song = position
     TaskHelper().run(self.play,
                      self.queue[self.current_song],
                      callback=(self.update_interface, ))
Пример #10
0
 def preload(self, *_):
     TaskHelper().run(self.session.get_streamable_url,
                      self.queue[self.current_song + 1])