Commit Graph

743 Commits

Author SHA1 Message Date
Anna Schumaker a3ec223064 Emmental 2.2
No real user-facing changes in this release, but I do lay some
groundwork for switching over to sqlite for our data storage.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-24 15:01:26 -04:00
Anna Schumaker e94346fdd9 db: Give Playlists a PlaylistState property
And clean up how the default playlists are created so the test doesn't
fall over with the new column.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:48:20 -04:00
Anna Schumaker 8a0364760d db: Give Years a PlaylistState property
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:18:30 -04:00
Anna Schumaker 6fbc5e0b27 db: Give Libraries a PlaylistState property
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:18:29 -04:00
Anna Schumaker c168fcbda3 db: Give Genres a PlaylistState property
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:18:29 -04:00
Anna Schumaker 77c2b7cd81 db: Give Discs a PlaylistState property
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:18:28 -04:00
Anna Schumaker 9a6cda7aab db: Give Decades a PlaylistState property
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:18:28 -04:00
Anna Schumaker e9a2a6f06a db: Give Artists a PlaylistState property
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:18:27 -04:00
Anna Schumaker 3abf2d3cf7 db: Give Albums a PlaylistState property
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:18:25 -04:00
Anna Schumaker 38861bbabf db: Create a PlaylistStateTable and PlaylistState object
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:18:24 -04:00
Anna Schumaker 952d70c282 db: Have Tracks remove themselves from Playlist Maps when deleted
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:17:46 -04:00
Anna Schumaker 0fd1069484 db: Add a PlaylistMap
And create both permanent and temporary maps for tracks. The temporary
map is intended to be used for the New Tracks and Previous playlists,
since we don't store the state across restarts.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:17:45 -04:00
Anna Schumaker 2b87707f16 db: Create a PlaylistTable and Playlist object
And populate the table with some default playlist values.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:17:17 -04:00
Anna Schumaker 69f5742867 db: Have Tracks remove themselves from the GenreMap when deleted
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:16:51 -04:00
Anna Schumaker 5746b2a81f db: Add a GenreMap
For mapping tracks into a list of genres, or a genre into a list of
tracks.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:16:50 -04:00
Anna Schumaker 986ef5bc74 db: Add a Map object
For creating a table that maps one value into another

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:15:47 -04:00
Anna Schumaker 5a52bdc546 db: Give Libraries a way to list their Tracks
And make sure the tracks are deleted when a Library is deleted.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:15:45 -04:00
Anna Schumaker ea555a428c db: Create a TrackTable and Track object
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:15:44 -04:00
Anna Schumaker f519830095 db: Create a LibraryTable and Library object
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:15:20 -04:00
Anna Schumaker 63e2e6473d db: Add a function so Decades can list their Years
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:14:58 -04:00
Anna Schumaker 2af61f8787 db: Create a YearTable and Year object
I do lookups and inserts based only on the year field. Decades are
created automatically on insert.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:14:56 -04:00
Anna Schumaker cc65db6d79 db: Create a DecadeTable and Decade object
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:14:31 -04:00
Anna Schumaker feca3c7a19 db: Create a GenreTable and Genre object
I'll eventually need to add a mapping between tracks and their genre
list, but I still need to build up to having Track objects first

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:14:09 -04:00
Anna Schumaker 00e15c8422 db: Add a function so Albums can list their Discs
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:13:49 -04:00
Anna Schumaker bbb248f665 db: Create a DiscTable and Disc object
To represent each disc of an album. Discs may have different subtitles
that we want to display (or there may not be a subtitle at all). Casting
a Disc to a string either appends the subtitle to the album name or
returns the album name directly. This is intended to be used by the
ColumnView to display album names

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:13:48 -04:00
Anna Schumaker 94f08dcd06 db: Give Artists a function for listing their Albums
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:13:25 -04:00
Anna Schumaker 6a1713630b db: Create an AlbumTable and Album tag
Similar to Artists, only holding information about each album instead.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:13:24 -04:00
Anna Schumaker 2d125546dd db: Add an ArtistTable and Artist tag
Also create an index on artist name in the sqlite table for faster
lookups.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:12:56 -04:00
Anna Schumaker 3753b0ad60 db: Add a Tag object
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:12:02 -04:00
Anna Schumaker 2f8e71fff7 db: Add objects for Tables and Rows
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:12:00 -04:00
Anna Schumaker 2822a9ac35 db: Add initial SQL connection object
And set the row_factory to use the built-in sqlite3.Row so we can access
columns by name in search results

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-22 07:33:43 -04:00
Anna Schumaker 2e6c8a17e3 Emmental 2.1 AUR commit
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-17 09:28:33 -04:00
Anna Schumaker 1edc776370 Emmental 2.1
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-17 09:21:32 -04:00
Anna Schumaker b0a1ab5796 keyboard: Add initial keyboard shortcuts
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-02 10:25:11 -04:00
Anna Schumaker e24999bb2f audio: Give the Player a playpause() function
This makes it easy for others to pause if playing, or play if paused

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-02 10:25:00 -04:00
Anna Schumaker f55ecf0472 sidebar: Switch over to using the emmental-favorites icon
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-31 19:18:28 -04:00
Anna Schumaker f13983269b playlist: Switch over to using the emmental-favorites icon
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-31 19:18:17 -04:00
Anna Schumaker 692ca1ff5d data: Add a custom icon for Favorites
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-31 19:17:15 -04:00
Anna Schumaker d3c66d7c31 playlist: Add a button for scrolling to the current track
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-31 13:15:49 -04:00
Anna Schumaker 1d45ce9beb playlist: Use the ColumnView's vadjustment for scrolling
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-31 13:15:49 -04:00
Anna Schumaker 029b432dd3 audio: Check that artwork has a default path
Instead of checking the path itself. I found that the test fails if
Emmental is installed, since it's finding the artwork in
/usr/share/icons before our local path.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-31 13:15:49 -04:00
Anna Schumaker 3d78dcd4d0 Create a PKGBUILD for putting releases on the AUR
And add the aur directory as a submodule so we can update files directly

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-28 11:17:32 -04:00
Anna Schumaker b0838beb6f Create install and uninstall targets in the Makefile
And create helper scripts under tools/

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 17:52:13 -04:00
Anna Schumaker 66e1ba8b44 Rename the debug file to .debug
And check for existance before reading

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 14:29:40 -04:00
Anna Schumaker f78402f258 Rename trackdb -> tagdb
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 11:15:15 -04:00
Anna Schumaker 7a41c3b1a1 Move module tests out of the toplevel directory
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 11:03:32 -04:00
Anna Schumaker e8f9427750 Move testing tracks into data/
And the generate_tracks.py script into tools/

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 10:57:01 -04:00
Anna Schumaker d985c53c5c Rename emmental-gtk4.py -> emmental.py
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 10:29:21 -04:00
Anna Schumaker 81be915b09 lib: Remove old idle.py code
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 10:26:29 -04:00
Anna Schumaker e5970fe47a Remove old emmental.ui file
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 10:25:34 -04:00