Commit Graph

3428 Commits

Author SHA1 Message Date
Bryan Schumaker 3ed0b10aab Only change play button when playing
If no song is playing and the play button is clicked we shouldn't switch
to the pause button.  This could confuse users.
2010-11-03 22:04:51 -04:00
Bryan Schumaker e67c8257c9 Makefile improvements
The makefile now installs, uninstalls and updates an installed version
of ocarina.  The default "all" will run the program.
2010-11-03 21:46:41 -04:00
Bryan Schumaker 22a72e66bd Added launcher
bin/ocarina will be symlinked to /usr/bin/ocarina, and used to launch
ocarina.
2010-11-03 21:41:36 -04:00
Bryan Schumaker 0c3acb92d2 Don't set album art from pixbuf if pixbuf is None 2010-11-03 20:44:18 -04:00
Bryan Schumaker ca46e8db4c remove unneeded whitespace 2010-11-03 08:15:36 -04:00
Bryan Schumaker 930834222a Reset page button
The reset page button will reset the library or playlist and then clear
the list on that page.
2010-11-03 08:13:23 -04:00
Bryan Schumaker 4c916f2fd3 Reset playlist and library functions
These functions should be called to reset the library and playlist,
which is better than deleting the old files and making a new one.
2010-11-03 08:11:15 -04:00
Bryan Schumaker 2624a1afe8 Made random icon a lighter color 2010-11-02 23:09:42 -04:00
Bryan Schumaker 7308ed8225 Web request error handling
Added a try / except block around placing a urllib2.urlopen().
Additionally, when there is an error I print it and return None.  This
will tell the cache to remove the opened file.
2010-11-02 21:08:37 -04:00
Bryan Schumaker 5803f74701 Button improvements
Changed the size of the random icon, and made the top row icons slightly
larger.
2010-11-02 20:49:48 -04:00
Bryan Schumaker 9eae107dee Added image for random 2010-11-02 20:28:12 -04:00
Bryan Schumaker 92b5de08ef Resizing image check
Check for a denominator of 0 before resizing an image.
2010-11-02 19:35:38 -04:00
Bryan Schumaker a97e82ef1c Up last played limit from 15 to 30 2010-11-02 19:20:11 -04:00
Bryan Schumaker 5599e3dbf1 Scale down ocarina.png 2010-11-02 17:08:08 -04:00
Bryan Schumaker ecbb6424af Don't keep calling show() whenever the album art changes. 2010-11-02 17:07:35 -04:00
Bryan Schumaker cbaa8753bd gdk thread locking for album art
use gdk.threads_enter() and gdk.threads_leave() to lock the album art
changing section of the AlbumArt class.
2010-11-02 17:06:49 -04:00
Bryan Schumaker cc8ea2d11f Import and initialize gtk.gdk threads for use in the image class (and
probably other places where there are gtk-related critical sections)
2010-11-02 17:04:56 -04:00
Bryan Schumaker 101e833690 wm_tweaks.py set title less often
Only set the title once when a song is loaded, using a default argument
if no title is provided.
2010-11-02 17:03:57 -04:00
Bryan Schumaker db939b57a5 Scale ocarina.png
I was getting x window errors when trying to set the window icon to a
512 x 512 image.  I scaled it down to 128 x 128, and saved the original
as ocarina512.png.
2010-11-02 07:56:34 -04:00
Bryan Schumaker 47f091b7ad collections should be saved as something.dl_tree, not somethingdl_tree 2010-11-01 11:56:07 -04:00
Bryan Schumaker 002af59c5f Old ocarina icon
I found the old ocarina icon that Andrew Hainen made for me.  I like it
better than my attempt...
2010-11-01 11:55:16 -04:00
Bryan Schumaker af7151a554 Lock when changing album art
If we lock, then we prevent the possibility that multiple threads will
attempt to change the art at the same time.  We hold the lock until
after the resize for the same reason.
2010-11-01 11:53:59 -04:00
Bryan Schumaker 5a6b321ffe Rework collection saving to work with -dev appending 2010-11-01 08:24:53 -04:00
Bryan Schumaker b408e4b727 Development and stable pickle files
When libsaria.__dev__ == True, we save data to a file with -dev appended
before the extention.
2010-11-01 08:22:38 -04:00
Bryan Schumaker 685bd54bcb Merge branch 'master' of file:///home/bjschuma/public_html/git/ocarina 2010-10-31 17:25:35 -04:00
Bryan Schumaker 6f2d064480 Don't make empty menus
make_menu should only pop up a menu if there are menu items to show.
2010-10-31 17:24:07 -04:00
Bryan Schumaker 025a118290 Fix get_rand_candidate crash
For some reason the loop in get_rand_candidate was exiting earlier than
I thought.  For now, I am returning the last ID looked at to fix the
problem.  I expect there is a better solution, but this seems to work
until I can clean up the collection system.
2010-10-31 17:21:12 -04:00
Bryan Schumaker aa9f517959 Walk filtered IDs
We already have a function for walking all song ids.  Collections should
be able to walk the filtered IDs too.
2010-10-31 17:20:20 -04:00
Bryan Schumaker 49328c5200 choose_next() already starts the NEXT event... 2010-10-31 17:19:46 -04:00
Bryan Schumaker 19d1f885cd Information pane remember position
The infopane will remember if it is currently up or down between
sessions.
2010-10-30 16:57:48 -04:00
Bryan Schumaker 81277d83b8 PLUGIN: Pause after current song
This plugin will wait for the NEXT event, and then check if playback
should be paused.
2010-10-30 13:53:18 -04:00
Bryan Schumaker 76eaa3eb16 NEXT event
Rather than call choose_next() directly, we should wrap this in a NEXT
event so that things can respond to it.
2010-10-30 13:52:38 -04:00
Bryan Schumaker 63ee87fa16 Menu direct function call
Menu callback functions should not go through a lambda layer.  Instead,
call the given function directly.
2010-10-30 13:51:48 -04:00
Bryan Schumaker b2c5ad96cb PLUGIN: wm_tweaks.py
This plugin will change the window title and icon whenever a song
changes.
2010-10-30 13:42:45 -04:00
Bryan Schumaker adc3af3779 Menu tweaks
Playlists and libraries now have a right click menu, and a generic
function for making the menus.
2010-10-30 13:40:56 -04:00
Bryan Schumaker 3087eb9954 init_var()
I made an init_var function that matches the init_pref function, only
for runtime variables.
2010-10-30 13:40:06 -04:00
Bryan Schumaker 3de6e94db1 Generic window icon function
I made a function to set the window icon, rather than doing it only when
the window is constructed.
2010-10-30 13:09:15 -04:00
Bryan Schumaker 1136e3f4af Cache path correction
If we look for a cache item that includes the directory seperator
character, then we should replace it with a different character.
2010-10-30 12:54:45 -04:00
Bryan Schumaker c5a606193a Cache dir setup
The cache should use path.saria_dir() to determine the correct path,
rather than setting it directly.
2010-10-30 12:47:41 -04:00
Bryan Schumaker 16e3aac2ed Tab ordering
Switch the order of the library and playlist tabs
2010-10-30 12:46:14 -04:00
Bryan Schumaker 4f771dd6e7 Default album art image
Use images/ocarina.png as the default album art image if none can be
found
2010-10-30 12:22:26 -04:00
Bryan Schumaker 2861e3d3b9 Window icon
The main window sets the image images/ocarina.png as the window manager
icon on startup.
2010-10-30 12:17:54 -04:00
Bryan Schumaker 356244e3be Gstreamer locking
Locking for gstreamer operations may help prevent a double free error I
was getting.
2010-10-30 12:09:28 -04:00
Bryan Schumaker b000bbf808 Basic playlist deduplication
Before adding songs to the playlist, check if the playlist already
contains the song id.
2010-10-28 08:30:46 -04:00
Bryan Schumaker a43bad029c added screenshots of the current ocarina state 2010-10-27 23:26:38 -04:00
Bryan Schumaker 75c7c77e32 ocarina.xcf
I added ocarina.xcf, which will eventually be used as the window icon.
2010-10-27 23:26:09 -04:00
Bryan Schumaker b1534f082d Clear image file
Whenever a song changes, we need to clear the path that we tell the
album art image to load.  Otherwise, it will show art from the previous
track if none can be found for the current track.
2010-10-27 09:44:44 -04:00
Bryan Schumaker 4f899c4834 Delete empty cache files
When a cache filler function returns without success, we need to delete
the empty file we create so that it doesn't trigger a false positive the
next time we access it.
2010-10-27 09:09:18 -04:00
Bryan Schumaker ba90106588 ocarina/image.py
This adds two new classes.  Image() inherits from a gtk.Image, and adds
set_height(x) to scale an image so it is x pixels high.  AlbumArt()
inherits from Image, and will display the album art of the currently
playing song.
2010-10-26 22:45:59 -04:00
Bryan Schumaker 3a81afdc92 last.fm for album art
Whenever a new song is loaded, we check the cache for album art.  If we
don't have art yet, then we place a request to the last.fm to find an
image.
2010-10-26 22:44:09 -04:00