Commit Graph

1334 Commits

Author SHA1 Message Date
Anna Schumaker 670396e8ea rind: Move stream start handling into the audio code
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-12 21:43:51 -04:00
Anna Schumaker fbf3e5942e rind: Move label handling into the new audio module
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-12 21:30:44 -04:00
Anna Schumaker e5ffe89fa5 rind: Hide pause popover when count is at -1
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-12 10:38:17 -04:00
Anna Schumaker 25e5b2df64 rind: Move next and previous handlers into the audio module
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-11 21:59:34 -04:00
Anna Schumaker b97d1fb17f rind: Pass initial state to the playbin set_uri() function
This gives us a single set_uri() function that works for changing
tracks, but also still supports gapless loading.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-11 09:31:50 -04:00
Anna Schumaker 9749e20b80 rind: Move position tracking into the audio widget code
And out of the upper level gst.py module

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-10 20:58:18 -04:00
Anna Schumaker ace4b93030 rind: Pass new state information directly to the autopause handler
Rather than having it wait for a notification

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-09 15:51:27 -04:00
Anna Schumaker 330c492f16 rind: Move pause popover handling into the autopause code
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-09 15:51:25 -04:00
Anna Schumaker 69bf20bf84 rind: Generate the autopause estimate in the autopause code
I also use this as a chance to give a more accurate estimate when there
is over a minute left.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-09 11:14:00 -04:00
Anna Schumaker 14650d9ae1 rind: Move autopause code into the audio module
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-09 09:50:54 -04:00
Anna Schumaker a8333aa8ad rind: Move seeking through the widget into the audio code
This accounts for both the GtkScale widget and left / right keypresses
to step forward or backwards

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-09 09:16:22 -04:00
Anna Schumaker 92c4b4c3b7 rind: Move seek and position tracking code into the audio module
This moves position, duration, remaining, progress, seek by percent, and
seek by step functions all in one patch.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-08 16:14:20 -04:00
Anna Schumaker d393a87727 rind: Move play and pause button controls into the audio module
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-08 11:15:57 -04:00
Anna Schumaker 227ffa314f rind: Move volume setting into the new audio module
I create both a playbin helper function and a handler for the volume
button widget with this patch.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-08 09:20:09 -04:00
Anna Schumaker 7ac0ae495f rind: Move uri handling into the audio/playbin code
We need to make sure the path is properly escaped when loading to
account for any special characters that might be in the filename.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-07 09:28:17 -04:00
Anna Schumaker 24395fbc5c rind: Create a new audio module
The plan is to try to split up the gstreamer code into model and view
files to help make the code easier to work with.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-07 09:08:50 -04:00
Anna Schumaker c69389c156 rind: Move pause entry input into pause.py
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-06 20:42:21 -04:00
Anna Schumaker 63ff57c3fb rind: Remove some of the duplicated pause code
Most of this has been moved into the new pause.py file, so we can remove
it from here.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-06 20:17:52 -04:00
Anna Schumaker 9fb24fd0ce rind: Add pause functions to get the icon and text
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-06 19:46:37 -04:00
Anna Schumaker 27d61a46b1 rind: Handle up and down button clicks
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-06 16:51:05 -04:00
Anna Schumaker 84538fdbc2 rind: Move pause widgets into a new file
I'm planning to separate out this code to make things a little easier to
follow and debug.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-06 10:00:09 -04:00
Anna Schumaker 2ca1cbbce4 rind: Fixes for the library test
- Add a delay after setting filename in the chooser
- Stop the library thread before exiting

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-06 10:00:09 -04:00
Anna Schumaker 72991dbf5f rind: Move remaining filter code into view.py
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-05 21:04:03 -04:00
Anna Schumaker eba1ed6800 rind: Move filter visible function into the view code
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-05 18:02:35 -04:00
Anna Schumaker abac3b79ab rind: Move search entry handling into the view code
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-05 11:03:50 -04:00
Anna Schumaker a528632cb9 rind: Add a function for resetting node state
This helps clean up a few warnings during testing.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-05 09:07:14 -04:00
Anna Schumaker b22e753f65 rind: Expand treeview rows during the node-inserted signal
This used to be part of the model code, but it really belongs with the
view.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-05 09:01:47 -04:00
Anna Schumaker 97e606f4a7 rind: Send a show-more signal when the show more button is clicked
I use this to have the corresponding node widgets shown when the button
is clicked

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-05 08:28:17 -04:00
Anna Schumaker 8950531d74 rind: Move the row-activated signal into the view code
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-04 16:28:27 -04:00
Anna Schumaker c94bb8387a rind: Move node selection callbacks into a new file
I want to have some separation between code for the model and for the
view. Let's start by pulling out the selection stuff.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-04 16:02:49 -04:00
Anna Schumaker 0358edaa97 rind: Split out new library controls
These don't really have anything to do with the node model, so putting
them into their own file makes a lot of sense.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-03 19:22:06 -04:00
Anna Schumaker 64681650e5 rind: Move node.py to node/model.py
I'm planning to split up this file into several pieces, but the first
step is creating the subdirectory.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-03 17:45:11 -04:00
Anna Schumaker c42bb04349 curds: Remove unused on_new_playback() callback
This callback no longer exists, so there is no point in testing it.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-03 10:32:08 -04:00
Anna Schumaker 7602acabb9 rind: Add a column for starred playlists
We don't do anything with this control yet, but eventually it'll be used
to show what tracks are starred. I intend to eventually allow clicking
on stars to add them to the starred playlist.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-03 09:45:27 -04:00
Anna Schumaker ca984ef82a curds: Add a playlist for starred tracks
We need to re-add this playlist to the node after doing a reset since it
is a default playlist.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-02 18:40:57 -04:00
Anna Schumaker 5c2f1c14df curds: Create a node for User playlists
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-02 18:10:14 -04:00
Anna Schumaker 32e2469efb curds: Track playlist visibility
This lets us delay sorting playlists until the first time they are shown
to make adding tracks faster. Additionally, we don't need to send
add-track notifications for playlists that aren't visible.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-02 07:36:32 -04:00
Anna Schumaker c2484c43ad curds: Pass sort order through Playlist init
This is cleaner than calling the sort function several times, or
overriding the sort_order array after construction.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-02 07:36:32 -04:00
Anna Schumaker 07f5b9b78d curds: Use a bisect for insertion sorts
This drastically cuts down the number of comparisons needed to make an
insertion.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-05-02 07:36:30 -04:00
Anna Schumaker b6830dc337 curds: Add default sorting orders to each playlist
And disable sorting on the Previous playlist, since doing so would
basically be changing history.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-04-27 15:28:09 -04:00
Anna Schumaker 9b80a93804 rind: Adjust main loop timing for the node manager test
This shaves off 20 - 30 seconds of the time it takes to run all the
tests

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-04-27 14:25:39 -04:00
Anna Schumaker e272f4adab rind: Sort playlists by clicking on the treeview headers
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-04-27 14:15:41 -04:00
Anna Schumaker d2ae3e3d18 curds: Normalize track fields for sorting
I want to strip out special characters an lowercase the strings for
sorting.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-04-27 08:40:16 -04:00
Anna Schumaker 10a8eef1fb curds: Add sorting support to playlists
We only support sorting in ascending order, but we take into account
multiple track fields.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-04-26 17:50:34 -04:00
Anna Schumaker 413ce6f2e8 rind: Add a discnumber field to the playlist view
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-04-26 11:31:26 -04:00
Anna Schumaker e49999f754 rind: Activate next track button with keypad Enter key
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-04-26 10:52:53 -04:00
Anna Schumaker c62ab123b1 rind: Increase window width
I'm going to be adding more columns to the playlist display, so let's
increase the default width a little to accomidate this.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-04-26 10:51:15 -04:00
Anna Schumaker 92e9dcd497 rind: Add unicode handling to our regex search
This way we can type in ascii characters, but still match strings with
unicode accents.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-04-26 10:07:58 -04:00
Anna Schumaker 27a598dacc rind: Add a Loop button
Similar to the Random button, this button sets the playlist loop
property. I also increase the length of the position slider slightly to
give the buttons above a little more room.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-04-25 16:48:55 -04:00
Anna Schumaker b71e9c9a91 rind: Change RandomButton state when changing playlists
We need to change both the sensitivity and the current state based on
the random and can_random playlist variables.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2019-04-25 16:48:40 -04:00