def play_pause(track, jump=False): """ Play a new file or pause/play if the file is already loaded. :param track: Track object that will be played/paused. """ global __current_track global __player global __wait_to_seek global __set_speed __wait_to_seek = jump if __current_track == track or track is None: # Track is already selected, only play/pause if get_gst_player_state() == Gst.State.PLAYING: __player.set_state(Gst.State.PAUSED) emit_event("pause") save_current_track_position() else: __player.set_state(Gst.State.PLAYING) emit_event("play", Track.get(Track.id == __current_track.id)) else: load_file(track) __player.set_state(Gst.State.PLAYING) emit_event("play", Track.get(Track.id == __current_track.id)) __set_speed = True
def __init__(self, db: SqliteDatabase, id: int): super().__init__() self._db: SqliteDatabase = db self.id: int = id with self._db: self._db_object: TrackModel = TrackModel.get(self.id)
def test_delete_does_not_delete_book(peewee_database): from cozy.db.track import Track as TrackModel from cozy.db.book import Book from cozy.model.track import Track track = Track(peewee_database, 1) book_id = TrackModel.get(1).book.id track.delete() assert Book.get_or_none(book_id) is not None
def __init__(self, db: SqliteDatabase, id: int): super().__init__() self._db: SqliteDatabase = db self.id: int = id self._db_object: TrackModel = TrackModel.get(self.id) self._track_to_file_db_object: TrackToFile = TrackToFile.get_or_none( TrackToFile.track == self.id) if not self._track_to_file_db_object: log.error( "Inconsistent DB, TrackToFile object is missing. Deleting this track." ) self._db_object.delete_instance(recursive=True, delete_nullable=False) raise TrackInconsistentData
def rewind(seconds): """ Seek seconds back in time. Caps at 0 seconds. :param seconds: time in seconds """ global __player global __current_track duration = get_current_duration() state = get_gst_player_state() seek = duration - (seconds * 1000000000) if seek < 0: if prev_track(): __player.set_state(state) if state == Gst.State.PAUSED: emit_event("pause", Track.get(Track.id == __current_track.id)) seek = get_current_track().length * 1000000000 + seek else: seek = 0 __player.seek(__speed, Gst.Format.TIME, Gst.SeekFlags.FLUSH, Gst.SeekType.SET, seek, Gst.SeekType.NONE, 0) save_current_track_position(seek)