Anna Schumaker
94235b1ce8
Emmental 2.4
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:33:18 -04:00
Anna Schumaker
76bf68f484
audio: Replace the old Controls widget with AudioControls
...
And grab the global Player instance during construction.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:26:58 -04:00
Anna Schumaker
ef1d3f0985
audio: Create a custom AudioControls widget
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:26:58 -04:00
Anna Schumaker
ca47bd052f
audio: Create a custom MenuButton and MenuIcon
...
This mimics the behavior of the Gtk.MenuButton(), except it allows
updating the ToggleButton child widget with the current autopause count.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:26:58 -04:00
Anna Schumaker
bd49396210
audio: Create a custom ControlsPopover widget
...
For displaying our menu controls
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:26:58 -04:00
Anna Schumaker
68f0541079
audio: Create a custom AutoPauseControlBox
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:26:58 -04:00
Anna Schumaker
d551e0ea13
audio: Create a custom VolumeControlBox
...
I also create a shared base class at the same time so autopause controls
can use it as well.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:26:57 -04:00
Anna Schumaker
da1211f595
audio: Add a custom AutoPauseScale widget
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:23:38 -04:00
Anna Schumaker
edc3e7f876
audio: Add a custom VolumeScale widget
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:23:37 -04:00
Anna Schumaker
33c7bdf517
audio: Add a custom PlayPause button
...
And update the image based on the current playback state
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:15:43 -04:00
Anna Schumaker
ec9ed14474
audio: Create custom PreviousButton and NextButton buttons
...
Along with a shared base class for these buttons, and soon the
PlayPause button
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:15:43 -04:00
Anna Schumaker
e4f6018195
audio: Replace the old Seeker widget with a ScaleButtonbox
...
And make the widget separate from the audio Player
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:15:43 -04:00
Anna Schumaker
e4236b0bf4
audio: Create a custom ScaleButtonBox
...
This configures the buttons for a scale and places them into a GtkBox
widget for us to use.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:15:43 -04:00
Anna Schumaker
644706ef50
audio: Add custom ScaleButtons
...
Thes buttons handle Increment and Decrement operations
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:15:43 -04:00
Anna Schumaker
1c53886152
audio: Add a custom SeekScale widget
...
For handling seeks to the audio player
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:15:43 -04:00
Anna Schumaker
753f6477a7
audio: Create a custom ScalePlus widget
...
For giving GtkScales increment() and decrement() functionality that
triggers the "change-value" signal
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-09-02 16:15:41 -04:00
Anna Schumaker
e884dc5a6e
audio: Clean up the NowPlaying widget
...
It now uses the TrackTitle and TrackArtist labels. Additonally, I move
it out of the Player class and create a shortcut function for
instantiating one using the global Player instance
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-31 15:13:18 -04:00
Anna Schumaker
ae7c2010e9
audio: Add a custom TrackArtist label
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-31 10:09:18 -04:00
Anna Schumaker
4ab66ef7ab
audio: Add a custom TrackTitle label
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-31 10:04:27 -04:00
Anna Schumaker
5c2e4bb016
audio: Convert the Player into a GObject
...
And give it "state-changed" and "track-changed" signals.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-30 17:30:55 -04:00
Anna Schumaker
596b34eb5a
Emmental 2.3 AUR commit
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-30 15:17:48 -04:00
Anna Schumaker
cf912cc9f5
Emmental 2.3
...
Implemented new code for scanning files using idle tasks. I keep the
thread-based approach for now, since we're still using the tagdb and not
sqlite yet.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-30 15:00:25 -04:00
Anna Schumaker
98ef8bf3f3
scanner: Add shortcuts for creating widgets
...
These use the global queue instance to create appropriate widgets with
the same name.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-30 11:34:19 -04:00
Anna Schumaker
5f6f3f9f42
scanner: Create a global Queue instance
...
And some convenience functions for using it
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-30 11:13:49 -04:00
Anna Schumaker
e09d892a46
scanner: Create a custom AddFolderButton widget
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-30 11:13:49 -04:00
Anna Schumaker
0157b1d4c0
scanner: Create a custom DirectoryChooser widget
...
It is set up to view and select directories only, with a shortcut added
for the user's Music directory.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-30 11:13:49 -04:00
Anna Schumaker
7535b71724
scanner: Create a custom UpdateAllButton widget
...
For updating all libraries in the database.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-30 11:13:49 -04:00
Anna Schumaker
8f837b40c1
scanner: Create a custom RemoveButton widget
...
For removing a specific library from the database.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-30 11:13:49 -04:00
Anna Schumaker
5e08088462
scanner: Create a custom UpdateButton widget
...
When clicked, it updates a specific Library instance
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-30 11:13:49 -04:00
Anna Schumaker
94b53aff5f
scanner: Create a custom ProgressBar widget
...
For use tracking the progress we make through the TaskQueue
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-30 11:13:49 -04:00
Anna Schumaker
a102087ece
scanner: Create a TaskQueue
...
For running tasks with a GLib idle callback
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-30 11:13:48 -04:00
Anna Schumaker
da78887783
scanner: Add a RemoveLibraryScheduler task
...
For breaking the tracklist into chunks, and then following up their
removal with a library table removal
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-26 17:11:12 -04:00
Anna Schumaker
88ebde085b
scanner: Add a RemoveLibraryTask
...
For removing a library's database entry
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-26 17:11:08 -04:00
Anna Schumaker
0f57b10500
scanner: Add a RemoveTask
...
For unconditionally removing a list of tracks
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-26 17:11:05 -04:00
Anna Schumaker
19278af3b8
scanner: Add a CheckSchedulerTask
...
This task breaks a library's tracks into chunks and schedules a
CheckTask for each chunk.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-26 17:11:02 -04:00
Anna Schumaker
8946df3ce4
scanner: Add a CheckTask for checking if tracks still exist
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-26 17:10:59 -04:00
Anna Schumaker
7ea14392ec
scanner: Add a DirectoryTask
...
For iterating through a directory and creating tasks based on the files
found. I had to add a subdirectory to the Test Album to make sure
subdirs are handled properly here.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-26 17:10:55 -04:00
Anna Schumaker
9cced017ad
scanner: Add an ImportTask
...
For importing tracks from the tagdb
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-26 17:10:27 -04:00
Anna Schumaker
3402ce16ee
scanner: Add a new FileTask for scanning music files
...
This task is also responsible for checking if the file already exists in
the database before scanning.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-26 17:06:58 -04:00
Anna Schumaker
91d0922518
scanner: Add a CommitTask
...
For committing the database during scanning
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-26 17:06:55 -04:00
Anna Schumaker
065c192714
scanner: Add a base class for queued Tasks
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-26 17:06:52 -04:00
Anna Schumaker
73646fc106
scanner: Have Metadata gracefully handle self.file == NULL
...
So we don't need to wrap the context manager in a try / except block
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-26 17:06:50 -04:00
Anna Schumaker
a28d4d4b8e
scanner: Copy the Metadata code from lib/
...
And add an extra function for disc subtitles.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-26 17:06:47 -04:00
Anna Schumaker
ad9cf2b135
db: Store lastplayed as a timestamp
...
Instead of just a date object.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-26 17:06:47 -04:00
Anna Schumaker
7dd3ff8473
db: Give Tables a get_all() function
...
Right now I only implement it for Libraries. More tables can be added as
needed.
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-26 14:18:06 -04:00
Anna Schumaker
0e55bb25e9
db: Give Tracks a way to directly set playcount and lastplayed
...
This will be needed when importing tracks from the tagdb into the sqlite
db
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-25 13:27:54 -04:00
Anna Schumaker
3fb6f3a2ba
db: Track.path should return a Pathlib.Path
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-24 17:05:26 -04:00
Anna Schumaker
a47e9e9fe9
Emmental 2.2 AUR commit
...
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2021-08-24 15:03:32 -04:00
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