# Copyright 2021 (c) Anna Schumaker. # # Table: playlist_states # +-----------+--------+------+---------+------+ # | plstateid | random | loop | current | sort | # +-----------+--------+------+---------+------+ from gi.repository import GObject from .sql import execute from . import objects class PlaylistState(objects.Row): def do_get_column(self, column): return execute(f"SELECT {column} FROM playlist_states " "WHERE plstateid=?", [ self.rowid ]) @GObject.Property(type=bool,default=False) def random(self): return bool(self.get_column("random")) @random.setter def random(self, newval): execute("UPDATE playlist_states SET random=? WHERE plstateid=?", [ newval, self.rowid ]) @GObject.Property(type=bool,default=False) def loop(self): return bool(self.get_column("loop")) @loop.setter def loop(self, newval): execute("UPDATE playlist_states SET loop=? WHERE plstateid=?", [ newval, self.rowid ]) @GObject.Property(type=int) def current(self): return self.get_column("current") @current.setter def current(self, newval): execute("UPDATE playlist_states SET current=? WHERE plstateid=?", [ newval, self.rowid ]) @GObject.Property(type=str) def sort(self): return self.get_column("sort") @sort.setter def sort(self, newval): execute("UPDATE playlist_states SET sort=? WHERE plstateid=?", [ newval, self.rowid ]) class PlaylistStateTable(objects.Table): def __init__(self): objects.Table.__init__(self, "playlist_states", PlaylistState) def do_create(self): execute("CREATE TABLE IF NOT EXISTS playlist_states " "(plstateid INTEGER PRIMARY KEY, " " random INTEGER DEFAULT 0, " " loop INTEGER DEFAULT 0, " " current INTEGER DEFAULT -1, " " sort TEXT)") def do_insert(self, random, loop): return execute("INSERT INTO playlist_states (random, loop, sort) " "VALUES (?, ?, ?)", (random, loop, "")) def do_delete(self, state): return execute("DELETE FROM playlist_states WHERE plstateid=?", [ int(state) ]) def do_get(self, rowid): return execute("SELECT plstateid FROM playlist_states " "WHERE plstateid=?", [ rowid ]) def insert(self, random=False, loop=False): return super().insert(random, loop) Table = PlaylistStateTable()