Commit Graph

724 Commits

Author SHA1 Message Date
Bryan Schumaker
4a34ce51f1 Added uptime() to ocarina package
Calling this function will return an object representing the total
uptime of Ocarina.
2010-12-27 12:22:47 -05:00
Bryan Schumaker
bdd9c331e8 Track startup time in ocarina/__init__.py
The ocarina package can track the startup time better than the launcher
script.  Tracking it in the package will also make startup time
available to other callers.
2010-12-27 12:19:22 -05:00
Bryan Schumaker
0c636bfd56 Clean up universal_open()
The cleaned up version chooses what function to call based on file
extention.  I use map.get() to pick a function, and use the open_music()
function as the default.
2010-12-27 12:06:22 -05:00
Bryan Schumaker
961eacf3c4 Began new library browser
The new library browser will eventually morph into a web-based clone of
the desktop Ocarina application.
2010-12-26 22:51:18 -05:00
Bryan Schumaker
805db95d05 add html/images directory
I thought this was already added?  I guess it wasn't.  Oops...
2010-12-26 12:29:29 -05:00
Bryan Schumaker
bcdbd3dfc9 Rename web buttons
The stock_media-* style was too hard to work with.  The buttons have
been renamed in the following way:

stock_media-next.png  -> next.png
stock_media-pause.png -> pause.png
stock_media-play.png  -> play.png
stock_media-next.png  -> next.png
2010-12-26 12:27:52 -05:00
Bryan Schumaker
759342dc70 Attrs and icons
- Return improved attributes for artist / album / version
- Remove icons that were recently moved
2010-12-24 12:42:13 -05:00
Bryan Schumaker
3498c46130 Increase web get_attrs timeout
Every second was too much!  Do it every 3 seconds instead.
2010-12-24 12:41:26 -05:00
Bryan Schumaker
5a4aab5869 Change web server devel port
The development port is now 4243
2010-12-24 12:33:13 -05:00
Bryan Schumaker
b81ba094fd Added attributes to web page
The attributes update every second to check for the current song.
2010-12-24 12:31:55 -05:00
Bryan Schumaker
0b8bc2d7fc Fix choosing random song when playlist is filtered
I was setting cur_index based on the index into the visible set, rather
than the index into the entire song list.
2010-12-23 09:53:30 -05:00
Bryan Schumaker
1c4621a79a Set random directly
This makes much more sense than toggling it.  Toggling caused an
inconsistent state during testing.
2010-12-23 09:51:09 -05:00
Bryan Schumaker
3802d41b83 Reorder tabs
This changes the order to Playlist, Queue, Library rather than Playlist,
Library, Queue
2010-12-23 09:48:39 -05:00
Bryan Schumaker
270d33d5ec Reset playlist before loading xspf file
Loading an xspf file should replace the current playlist, rather than
add to it.
2010-12-18 16:45:48 -05:00
Bryan Schumaker
aa0f832356 Refresh the playlist after loading
After we load an xspf file, we should refresh the playlist to reflect
changes.
2010-12-18 16:44:18 -05:00
Bryan Schumaker
da99d4b349 Load xspf playlists
This patch adds loading of xspf playlists
2010-12-18 16:39:17 -05:00
Bryan Schumaker
77f065b703 Export playlist to xspf
This patch adds support for saving a playlist as an xspf xml file.  I
only use the <location> tag to keep it simple.
2010-12-18 16:22:06 -05:00
Bryan Schumaker
da1a5413a4 Library source subdirectory filtering
When we add a path to the sources list, we should remove all paths that
are a subdirectory of the new path.
2010-12-18 15:35:51 -05:00
Bryan Schumaker
8d423629be Add fewer library sources
If we are being asked to add a path that is a subdirectory of a current
library source then we shouldn't add it.
2010-12-18 15:28:53 -05:00
Bryan Schumaker
66a3344121 Controls pref initialization
The preferences variable should be initialized earlier to avoid an error
during startup.
2010-12-18 15:06:18 -05:00
Bryan Schumaker
3c2f40c69e Move backup.py -> export.py, import v1.3 library
The move was supposed to be in the previous patch ... oops.

This one also adds in importing a v1.3 library xml file.
2010-12-18 15:03:24 -05:00
Bryan Schumaker
f869b17e2f Rename backup functions
Backup has been renamed to export
Restore has been renamed to import_xml
2010-12-18 14:52:31 -05:00
Bryan Schumaker
c08655c1fa More reformatting and comments 2010-12-18 14:49:35 -05:00
Bryan Schumaker
c49a39ad46 Encode v1.3 library
This patch changes the encode functions to export a v1.3 library
2010-12-18 14:46:31 -05:00
Bryan Schumaker
cafc19fbed Don't set score when importing library
The score system has been replaced with a like / dislike system.  Score
is no longer an attribute that can be set.
2010-12-18 14:36:21 -05:00
Bryan Schumaker
8349efe8c7 Library export formatting changes
This patch rearranges the decode functions to put decoders for a single
version together.  I also removed some extra whitespace and clearly
labeled the decoding sections.
2010-12-18 14:33:17 -05:00
Bryan Schumaker
29152aca1d ToggleButton generic toggled signal
The ToggleButton should automatically respond to the toggled signal
2010-12-18 11:19:55 -05:00
Bryan Schumaker
d8c5814f5a ToggleButton tooltip 2010-12-18 11:17:58 -05:00
Bryan Schumaker
e1a709b6c3 Create ToggleButton class
The ToggleButton class is a base class for buttons to inherit from.  So
far, this is only the RandomButton, LikeButton, and DislikeButton
2010-12-18 11:15:12 -05:00
Bryan Schumaker
44ee38dd91 Remove pointless whitespace 2010-12-18 11:10:45 -05:00
Bryan Schumaker
a0d231e964 Move RandomButton()
This puts it closer to the like / dislike buttons, since they are all
toggle buttons
2010-12-18 11:09:41 -05:00
Bryan Schumaker
05297d850c Remove unused code from like / dislike buttons 2010-12-18 11:08:37 -05:00
Bryan Schumaker
a1293fb351 Draw like / dislike buttons
This patch adds the like and dislike buttons to the gui.
2010-12-18 11:05:53 -05:00
Bryan Schumaker
47dbd200ab Add like / dislike buttons
This patch adds buttons for liking and disliking a song.  I also use
this patch to add like / dislike icons.
2010-12-18 11:05:17 -05:00
Bryan Schumaker
0eb3a15783 Add functions for controlling "like"
This patch adds a function for getting the "like" status of the current
song.  It also changes the "set_like" function to use an event, rather
than just setting it.
2010-12-18 11:03:25 -05:00
Bryan Schumaker
f55cb44a64 Fix set_attr()
First, set_attr() needs to find the id of the current song.  Second, we
should save after changing attributes.
2010-12-18 11:02:32 -05:00
Bryan Schumaker
076e89783a Add save() to the Source class
This will allow us to save any changes made to the Source()
2010-12-18 11:01:44 -05:00
Bryan Schumaker
401241ac47 Track recent songs for sequential next too
Why was I only adding recent songs to the list when picking a random
song?  It really doesn't make any sense.  This patch tracks recent songs
any time next() is called in the playlist.
2010-12-18 09:36:01 -05:00
Bryan Schumaker
2d0643dd7b Just skip songs the user doesn't like
If the user doesn't like a song, we shouldn't have a 25% chance of
playing the song anyway.  We should just pick a different song.
2010-12-18 09:27:01 -05:00
Bryan Schumaker
0bcb444317 Remove score field
This patch removes the score field from the Track() class
2010-12-17 23:37:06 -05:00
Bryan Schumaker
7c2778614d Added control to set like value
First, this patch adds a function for setting attributes for the current
file.  Second, it adds a function for specifically setting the "like"
attribute.
2010-12-17 23:33:05 -05:00
Bryan Schumaker
d91c099723 Added set_attr to the Source() class
Having access to the set_attr function should allow us to change
attributes for the current track easily.
2010-12-17 23:28:55 -05:00
Bryan Schumaker
0c254aa957 Remove score changing code
I am switching to a like / dislike system, so I don't need to worry
about scores anymore.
2010-12-17 23:18:19 -05:00
Bryan Schumaker
6449b6badb Skip songs based on like, rather than score
I think I can get a better guess for what users like based on what they
tell me, rather than trying to analyze their playback habits.
2010-12-17 23:15:19 -05:00
Bryan Schumaker
da6b0fd3eb Add "like" field to the Track() class
This will allow the users to tell us if they do or don't like a song.
Songs default to None for unrated songs.
2010-12-17 23:06:46 -05:00
Bryan Schumaker
32e417e4b5 Remove the pause_after.py plugin
Pause after current song is now a built-in feature, so I don't need a
plugin too.
2010-12-17 23:02:35 -05:00
Bryan Schumaker
14a960372b Add pause after current song menu item 2010-12-17 23:02:16 -05:00
Bryan Schumaker
4e5995ec64 Added pause_after control to libsaria
This gives me a chance to remove it as a plugin.  I noticed that
sometimes I would hear a fraction of a second of music before the
pausing started.  This should fix that.
2010-12-17 23:00:45 -05:00
Bryan Schumaker
b5fef6ba3c Check if cur_source is None
We should do this before attempting to return an ID...
2010-12-17 08:31:22 -05:00
Bryan Schumaker
d380d0ec45 Use built-in selected_foreach
I also made a wrapper so I can do things with each selected ID.
2010-12-17 08:18:33 -05:00