Commit Graph

1974 Commits

Author SHA1 Message Date
Bryan Schumaker
56148e58fe ocarina: Add back the "ban track" button
I moved it to the GtkNotebook action-area for the playlist tabs since I
ran out of room in the "Now Playing" section.  I made the widgets
accessable through my get_widget() function, but it would be nice to
figure out how to add them in GtkBuilder.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-19 08:51:40 -04:00
Bryan Schumaker
2221bca25e ocarina: Create a FileChooser dialog
I use this to select songs anywhere in the filesystem, not necessarily
in the library.  I also renamed LibraryPathChooser to DirectoryChooser.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-17 08:08:30 -04:00
Bryan Schumaker
22694e1bfe ocarina: Remove old library.cpp
I've re-implemented everything here with GtkBuilder, so this file is now
obsolete.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-13 08:21:11 -04:00
Bryan Schumaker
01d8eb15d8 ocarina: Add keyboard shortcuts to the library treeview
Delete deletes the selected library path, plus opens the chooser to add
a new path.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-13 08:18:13 -04:00
Bryan Schumaker
448acf1181 ocarina: Look for toggled signals from the CellRendererToggle
There is some other problem with updating the renderer, but I'm more
concerned with working on the gui and moving on to other stuff.  I'll
fix it later...

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-10 08:24:29 -04:00
Bryan Schumaker
5d2631d19a ocarina: Implement the "Add Library" button
To add new paths to the library.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-09 08:29:41 -04:00
Bryan Schumaker
97a7edce41 ocarina: Add an update_all() button
Click to update all library paths.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-08 08:22:33 -04:00
Bryan Schumaker
34dd1a1088 ocarina: Show paths in the library
Clicking them doesn't do anything yet, and the buttons are
non-functional as well.  But paths are displayed as they're configured!

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-07 19:29:18 -04:00
Bryan Schumaker
aebcfaab45 ocarina: Re-enable automatic pause
I modified the code slightly from what I used to have.  The biggest
difference is changing the counter will always enable automatic pausing,
so I no longer need the extra click to enable this feature.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-05 09:26:47 -04:00
Bryan Schumaker
761842869e ocarina: Show and hide the idle bar
I check the size of the idle queue during the timeout poll and then
enable the progress bar.  When the queue size reaches zero I hide the
bar again.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-04 13:31:47 -04:00
Bryan Schumaker
fdecd7bbdf ocarina: Get the progress bar working again
This was easy, just copy over the old code to status.cpp.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-04 11:57:31 -04:00
Bryan Schumaker
4a764fcc8d ocarina: Remove old controls code
This has already been reimplemented in gtk builder.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-03 08:09:03 -04:00
Bryan Schumaker
54d1ff991d ocarina: Set the length label
The length label is part of the gtk builder description.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-03 08:00:08 -04:00
Bryan Schumaker
5a1b8555db ocarina: Clean out old gtk and button code
Now that I'm using gtk builder I don't need gtk convenience functions.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-03 07:52:08 -04:00
Bryan Schumaker
22e64d64ca ocarina: Connect signals to buttons
And also
- Show / hide the play and pause buttons
- Remove the scrollbar from the now playing display

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-02 08:34:46 -04:00
Bryan Schumaker
90355962e4 ocarina: Initialize playlists during startup
I plan on replacing the playlist code eventually, but for now I want to
see how everything looks.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-01 08:19:31 -04:00
Bryan Schumaker
a11613d3ad ocarina: Add a notebook for playlist tabs
I'll eventually fill this in with playlist data.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-08-01 08:08:54 -04:00
Bryan Schumaker
56f082142a ocarina: Add more widgets to the UI
I added a notebook for AutoPause and a few other tabs.  Widgets still
don't do anything.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-31 08:25:56 -04:00
Bryan Schumaker
40bcff7063 ocarina: Add control buttons to the UI
These buttons don't do anything yet.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-30 08:26:57 -04:00
Bryan Schumaker
9eb181d263 ocarina: Add in the slider and position / duration labels
Only the duration label changes, I don't do anything with the others
yet.  I'll work on it later (once I get the rest of the UI converted
over).

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-30 07:59:27 -04:00
Bryan Schumaker
bb56dc4d2a ocarina: Remove idle_add() from the ocarina namespace
It's only used in ocarina.cpp, and it's already static there.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-29 16:09:20 -04:00
Bryan Schumaker
ff0f4a2c66 ocarina: Add back Title / Artist / Album labels
Using GtkBuilder now...

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-29 16:04:22 -04:00
Bryan Schumaker
037577850f ocarina: Add the timeout poll back
I want to create the now playing widgets next, so this is needed now.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-29 15:19:55 -04:00
Bryan Schumaker
693692766d ocarina: Change window default size
It needed to be bigger.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-29 15:13:59 -04:00
Bryan Schumaker
4585d90a32 ocarina: Remove window.h and lots of gtk shortcuts
The shortcuts were hiding more than they probably should have, and I
didn't have much using them.  The only function in window.h that I'm
going to use is init_window(), so I'll just declare it in ocarina.h.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-29 15:11:36 -04:00
Bryan Schumaker
1ddcb9f2fc ocarina: Initialize the window from window.cpp
Eventually this will support all the same features of the old ocarina
window...

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-29 15:01:20 -04:00
Bryan Schumaker
681aa4b611 libsaria: Remove flags from initdata
I wasn't doing anything with these, so they're just getting in the way
and increasing complexity.  This change also allows me to remove the
"enabled" variable from the idle queue.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-29 14:31:35 -04:00
Bryan Schumaker
59b79b6575 ocarina: Begin switching to GtkBuilder for the UI
I feel that hand-written UI code is slowing me down, so I'm going to
switch to using glade / GtkBuilder to manage the UI as much as possible.
So far, I create, show, and destroy a window.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-29 11:27:50 -04:00
Bryan Schumaker
bfb00ec812 libsaria: Remove the remove_tracks() function from playlists
It doesn't make sense to keep it around anymore since I have the
single-track removal function.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-01 12:02:11 -04:00
Bryan Schumaker
94cbcd9a5d libsaria: Give playlists a remove_track() function
This makes more sense than pushing a single track into a list and then
iterating over the single item...

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-01 11:38:50 -04:00
Bryan Schumaker
1ba1c72e3f libsaria: Use a flags variable for initdata
I was using multiple boolean fields, but I think it'll be easier to set
up a single bit-flag field instead.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-01 11:24:06 -04:00
Bryan Schumaker
aed5a023b3 libsaria: Remove second library path list
I kept around the old list while I was converting everything over to the
new list.  Now that I support all the needed features, I can remove the
old variable.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-01 11:24:02 -04:00
Bryan Schumaker
a7d1f57403 libsaria: Switch the update code to use the new list
Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-07-01 09:59:48 -04:00
Bryan Schumaker
250a8b9bfe libsaria: Rename List::last() -> List::end()
To better match C++ iterators.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-30 12:08:04 -04:00
Bryan Schumaker
e0074525f3 libsaria: Convert the idle queue to use the new list class
- The erase() function returns the previous item
- Implement a push_front() function
- Implement a pop_front() function

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-30 11:59:32 -04:00
Bryan Schumaker
e2242359d4 libsaria: Create iterators for lists
Not really C++ iterators, but close enough.  I can get the first and
last values values to use in for loops, I also made a next() function
for list items.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-30 11:28:12 -04:00
Bryan Schumaker
743caa85e6 libsaria: Add tracks to new library lists too
Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-16 14:59:59 -04:00
Bryan Schumaker
28eaba41e0 libsaria: Use find_item() for updating library paths
I need to check if the file is already in the library.  I also made a
note for how this check could be done faster using a tree.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-16 14:51:47 -04:00
Bryan Schumaker
065feedee2 libsaria: Save tracks using for_each_item()
It's simpler than custom writing my own for each loop...

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-16 14:51:47 -04:00
Bryan Schumaker
bd8cdee041 libsaria: Implement a find_item() for lists
This function takes a function pointer argument that should return
"true" if the current item is the item we're looking for and "false"
otherwise.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-16 14:51:45 -04:00
Bryan Schumaker
8b56659b1c libsaria: Created a list for_each_item()
Useful for accessing each item in the list sequentially without having
to write a lot of loops.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-16 14:04:55 -04:00
Bryan Schumaker
311e404af9 libsaria: Give Lists a size()
Return the "count" variable and hope we don't have more than
MAX_UNSIGNED_INT objects in the list...

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-16 13:37:38 -04:00
Bryan Schumaker
bf0e340a53 libsaria: Rename ListNode -> ListItem
I like ListItem better.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-14 17:48:44 -04:00
Bryan Schumaker
34c13bc93e libsaria: Add items to a List
I free the memory in the destructor, too!  Be careful, though, the copy
constructor isn't actually a copy constructor.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-14 17:18:22 -04:00
Bryan Schumaker
da776eeebf libsaria: Initialize list objects
I point the list head towards itself.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-14 08:11:16 -04:00
Bryan Schumaker
4aac603b85 libsaria: Begin a custom List class
I'm going to gradually replace the stl list with my own implementation.
This should make everything more efficient and I won't have to deal with
those pesky iterators.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-13 21:34:45 -04:00
Bryan Schumaker
14fe5661a5 libsaria: Rename List -> Stack
I want to recycle the "class List" name, so I need to free it up from
the playlist code.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-13 21:34:44 -04:00
Bryan Schumaker
d12c5bac75 Begin Ocarina 5.10 2012-06-13 21:34:44 -04:00
Bryan Schumaker
a3e149e7c0 Ocarina 5.9 2012-06-02 13:21:22 -04:00
Bryan Schumaker
7390c65d63 scripts: Move ocarina -> %APP
It'll try to run a command passed through the shell, if the command
can't be found it'll run %APP-player.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
2012-06-02 13:21:22 -04:00