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
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
ea555a428c
db: Create a TrackTable and Track object
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:15:44 -04:00
f519830095
db: Create a LibraryTable and Library object
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:15:20 -04:00
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
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
cc65db6d79
db: Create a DecadeTable and Decade object
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:14:31 -04:00
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
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
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
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
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
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
3753b0ad60
db: Add a Tag object
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:12:02 -04:00
2f8e71fff7
db: Add objects for Tables and Rows
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-23 13:12:00 -04:00
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
2e6c8a17e3
Emmental 2.1 AUR commit
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-17 09:28:33 -04:00
1edc776370
Emmental 2.1
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-17 09:21:32 -04:00
b0a1ab5796
keyboard: Add initial keyboard shortcuts
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-02 10:25:11 -04:00
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
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
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
692ca1ff5d
data: Add a custom icon for Favorites
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-31 19:17:15 -04:00
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
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
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
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
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
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
f78402f258
Rename trackdb -> tagdb
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 11:15:15 -04:00
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
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
d985c53c5c
Rename emmental-gtk4.py -> emmental.py
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 10:29:21 -04:00
81be915b09
lib: Remove old idle.py code
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 10:26:29 -04:00
e5970fe47a
Remove old emmental.ui file
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 10:25:34 -04:00
0aa31586a3
Remove old rind/ directory
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 10:24:56 -04:00
08d866b047
Remove old curds/ directory
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-26 10:24:15 -04:00
e248fd3658
playlist: Scroll to the current track when tracks change
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
dece303a09
playlist: Make the currently playing track bold
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
b1ece1cd1d
audio: Give Players a TrackChanged publisher
...
The playlist model can use this to make the current track bold
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
500d0757d1
audio: Add an Artwork object to the Player
...
And add it to the Sidebar box while we're at it
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
16d31dfd3a
audio: Create a class for showing album art
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
828fca9abd
pane: Change the initial position
...
Now that the sidebar switcher isn't in the pane, we can make it a
little smaller
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
18d001d0f0
ui: Replace the window's Grid with a Box
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
70f9bc5015
sidebar: Put the Pulser into the Sidebar.Box directly
...
Rather than putting it in the Window.Grid. I add some labels to provide
spacing and to make sure the pulser area stays visible even if the
pulser is hidden.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
05742d0bbc
sidebar: Move the pulser into the sidebar directory
...
I'm soon going to put it into the same box as the Stack
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:35 -04:00
cf22a32fe7
window: Add the sidebar Switcher to the Grid directly
...
Rather than putting it in the Gtk.Paned
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:34 -04:00
146777119c
playlist: Move the Runtime and Visible widgets into the Playlist pane
...
Rather than being in a fixed position at the bottom of the window
they'll now align themselves based on the position of the Gtk.Paned
divider.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:34 -04:00
5633d50024
audio: Watch for EOS messages from the gstreamer bus
...
Mark the track as played if it has run for more than 2/3 of the running
time. Also check the "continue" field when choosing the next song from
the stack.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:17 -04:00
171e8a1829
lib: Give tags a track_selected() function
...
For use when tracks are manually selected. I use this to wire up a
response to double-clicking the playlist view.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-07-23 12:56:17 -04:00