Ejemplo n.º 1
0
    def __on_timer_changed(self, spinner):
        """
        Start/Stop the timer depending on the current adjustment value.
        """
        adjustment = self.timer_scale.get_adjustment()
        value = adjustment.get_value()

        if value > 0:
            if not self.sleep_timer or not self.sleep_timer.isAlive():
                self.set_icon(True)
                if player.get_gst_player_state() == Gst.State.PLAYING:
                    self.start(force=True)

                self.timer_label.set_visible(True)
                self.min_label.set_text(_("min"))
            else:
                self.set_time(value)
        else:
            self.set_icon(False)
            if self.sleep_timer:
                self.sleep_timer.stop()

            self.min_label.set_text(_("Off"))
            self.timer_label.set_visible(False)
            return

        if self.sleep_timer and not self.sleep_timer.isAlive:
            tools.get_glib_settings().set_int("timer", int(value))

        text = str(int(value))
        self.timer_label.set_text(text)
Ejemplo n.º 2
0
Archivo: ui.py Proyecto: oleg-krv/cozy
    def __sleep_timer_fired(self):
        """
        The sleep timer gets called every second. Here we do the countdown stuff
        aswell as stop the playback / suspend the machine.
        """
        self.current_timer_time = self.current_timer_time - 1
        adjustment = self.timer_spinner.get_adjustment()
        adjustment.set_value(int(self.current_timer_time / 60) + 1)
        if self.current_timer_time < 1:
            self.timer_switch.set_active(False)
            if player.get_gst_player_state() == Gst.State.PLAYING:
                player.play_pause(None)

            self.sleep_timer.stop()
Ejemplo n.º 3
0
Archivo: ui.py Proyecto: oleg-krv/cozy
 def __timer_switch_changed(self, sender, widget):
     """
     Start/Stop the sleep timer object.
     """
     if self.timer_switch.get_active():
         self.timer_image.set_from_icon_name("timer-on-symbolic",
                                             Gtk.IconSize.BUTTON)
         if player.get_gst_player_state() == Gst.State.PLAYING:
             self.__start_sleep_timer()
     else:
         self.timer_image.set_from_icon_name("timer-off-symbolic",
                                             Gtk.IconSize.BUTTON)
         if self.sleep_timer is not None:
             self.sleep_timer.stop()
Ejemplo n.º 4
0
    def __on_play_clicked(self, event):
        """
        """
        track = db.get_track_for_playback(self.book)
        current_track = player.get_current_track()

        if current_track and current_track.book.id == self.book.id:
            player.play_pause(None)
            if player.get_gst_player_state() == Gst.State.PLAYING:
                player.jump_to_ns(track.position)
        else:
            player.load_file(track)
            player.play_pause(None, True)

        return True
Ejemplo n.º 5
0
    def on_close(self, widget, data=None):
        """
        Close and dispose everything that needs to be when window is closed.
        """
        self.titlebar.close()
        if self.sleep_timer.is_running():
            self.sleep_timer.stop()

        # save current position when still playing
        if player.get_gst_player_state() == Gst.State.PLAYING:
            db.Track.update(position=player.get_current_duration()).where(
                db.Track.id == player.get_current_track().id).execute()
            player.stop()

        player.dispose()
Ejemplo n.º 6
0
    def __on_button_press(self, eventbox, event):
        """
        Play the selected track.
        """
        current_track = player.get_current_track()

        if current_track and current_track.id == self.track.id:
            player.play_pause(None)
            if player.get_gst_player_state() == Gst.State.PLAYING:
                player.jump_to_ns(db.Track.select().where(
                    db.Track.id == self.track.id).get().position)
        else:
            player.load_file(db.Track.select().where(db.Track.id == self.track.id).get())
            player.play_pause(None, True)
            db.Book.update(position=self.track).where(
                db.Book.id == self.track.book.id).execute()
Ejemplo n.º 7
0
    def _on_play_button_press(self, widget, event):
        """
        Play this book.
        """
        if event.type == Gdk.EventType.BUTTON_PRESS and event.button != 1:
            return

        track = db.get_track_for_playback(self.book)
        current_track = player.get_current_track()

        if current_track and current_track.book.id == self.book.id:
            player.play_pause(None)
            if player.get_gst_player_state() == Gst.State.PLAYING:
                player.jump_to_ns(track.position)
        else:
            player.load_file(track)
            player.play_pause(None, True)

        return True
Ejemplo n.º 8
0
    def __stop_playback(self):
        """
        Stops playback after gradually fading out (if enabled).
        """
        if tools.get_glib_settings().get_boolean("sleep-timer-fadeout"):
            duration = tools.get_glib_settings().get_int(
                "sleep-timer-fadeout-duration") * 20
            current_vol = player.get_volume()
            for i in range(0, duration):
                player.set_volume(current_vol - (i / duration))
                time.sleep(0.05)

            player.set_volume(current_vol)

        if player.get_gst_player_state() == Gst.State.PLAYING:
            player.play_pause(None)

        Gdk.threads_add_idle(GLib.PRIORITY_DEFAULT_IDLE,
                             self.timer_scale.get_adjustment().set_value, 0.0)