Commit Graph

1028 Commits

Author SHA1 Message Date
Bryan Schumaker a4988a0b28 libsaria: Add new songs to the library
I scan a directory and collect fileids for each file.  If the fileid
doesn't exist in the library yet, I'll find the tags and add to the
dictionary.
2011-05-21 07:44:11 -04:00
Bryan Schumaker a1722eafb3 libsaria: Find list of files to add to library
I put them all into a dictionary for use later.
2011-05-21 07:26:30 -04:00
Bryan Schumaker 8debb4a508 libsaria: Began library scanning routines
I can add a new path to a dictionary, but I don't do any actual scanning
yet.  Instead, I just print out each path in the library.
2011-05-21 07:16:00 -04:00
Bryan Schumaker 39c9a7cca8 libsaria: Added new library directory
I'm going to let everything expand across several directories.  It'll be
neater this way.
2011-05-20 21:43:35 -04:00
Bryan Schumaker e3450d31ff ocarina: Add new library page
Right now, it just adds a new page to the window.  I'll add more as I
go.
2011-05-20 21:42:57 -04:00
Bryan Schumaker c3dbd8167d ocarina: Rename library.py -> oldlibrary.py
This reflects my recent libsaria change.  I'm keeping around my old
library code for now.  The new library will gradually be introduced
through several patches ending with the removal of the old library.
2011-05-20 21:29:30 -04:00
Bryan Schumaker 531ceb2c17 libsaria: Rename library.py to oldlibrary.py
I want to preserve the old library as I slowly introduce the new one.
This should help.
2011-05-20 21:22:21 -04:00
Bryan Schumaker 0d75d4f7d9 Began Ocarina 4.8 2011-05-20 20:50:30 -04:00
Bryan Schumaker dd040252a4 Ocarina 4.7 2011-05-20 08:24:13 -04:00
Bryan Schumaker 6d01a1cbc8 libsaria: Fix playlist filtering
The variables "filtered" and "visible" are global, so we need to tell
the function that it shouldn't create local variables.
2011-05-16 12:04:28 -04:00
Bryan Schumaker 3301439e88 ocarina: Get gtk lock around gtk.main()
The internet suggests that this may help with the random crashes I
sometimes get.  We'll see.
2011-05-15 15:58:37 -04:00
Bryan Schumaker e0dd940671 libsaria: Don't write empty text to client 2011-05-15 15:58:21 -04:00
Bryan Schumaker c02bffb652 libsaria: Web server controls playback
I can choose songs to play by clicking rows in an html table.  I also
write text to the client as it becomes available, rather than doing it
all at once.
2011-05-15 15:39:14 -04:00
Bryan Schumaker 7ffd4e14fd libsaria: Added RPC pages
For now, I can play and pause.  I'll eventually add more operations to
the list.
2011-05-15 13:49:02 -04:00
Bryan Schumaker 2a6b04e328 libsaria: Began new web server
The new web server will be built in to libsaria, rather than existing as
a plugin.  This allows me to break it into multiple files for easier
use.  For now, the server is only active when version.__dev__ == True.
2011-05-15 13:41:47 -04:00
Bryan Schumaker b373a88618 ocarina: Page showing and hiding improvements
When hiding a page I want to switch to page n - 1, but gtk was moving me
to n + 1.  I also added a function to show, and optionally switch to, a
page.
2011-05-15 11:36:26 -04:00
Bryan Schumaker 93a785dafa libsaria: list_source() takes a function pointer
I was taking a flag that I used to determine which list func to call.  I
think it is simpler to take a function pointer passed from either
list_playlist() or list_queue()
2011-05-15 11:36:07 -04:00
Bryan Schumaker 76975ecead libsaria: Fix spacing in playlist 2011-05-15 11:02:14 -04:00
Bryan Schumaker 32a1e96af0 libsaria: Remove unused global statements and imports
With my recent cleanups, I don't need these statements anymore.  To do
this, I also had to move tracking recent songs to next.py
2011-05-15 10:59:31 -04:00
Bryan Schumaker 6d5ca5d416 libsaria: Rename queue and playlist list functions
I rename them from list() to list_ids() so that it doesn't clobbel the
list constructor.
2011-05-15 10:53:31 -04:00
Bryan Schumaker b4eb7c15c5 libsaria: Remove unused playlist functions
I have more generic play_id() and load_id() functions now, so the
playlist specific implementations haven't been used in a long time.  I
don't think I need them anymore.
2011-05-15 10:50:39 -04:00
Bryan Schumaker b56fb6768f libsaria: Track current file in audio
I use this for determining the pipeline state.  get_property() wasn't
working as well as I hoped it would.
2011-05-15 10:43:57 -04:00
Bryan Schumaker 5a781479cd libsaria: Move rand_next() to playlist's next.py
This keeps code for picking the next song in one place.  I also cleaned
up rand_next() while I was at it.
2011-05-15 10:30:22 -04:00
Bryan Schumaker 898f843ee0 libsaria: Check that sources have an id before looking up a file
If next() in libsaria.sources doesn't get an id from the queue or
playlist, then we shouldn't try to look up a filepath.  We return None
instead.
2011-05-15 10:28:24 -04:00
Bryan Schumaker e3af5800b0 libsaria: Check that next() returns a file
If next doesn't return a file, we shouldn't try to load something.  That
would just be silly.
2011-05-15 10:26:38 -04:00
Bryan Schumaker 67369e88a7 libsaria: Don't change audio pipeline state if no file loaded
I only want to change to gst.STATE_PLAYING or gst.STATE_PAUSED if the
pipeline currently has a file loaded.  Not doing this can cause an
exception in position() when get_state() returns gst.STATE_READY instead
of gst.STATE_NULL.
2011-05-15 10:23:24 -04:00
Bryan Schumaker 0f78c7b80c libsaria: Add idea to playlist
I want one file to grab the lock and another with functions to call with
the lock held.
2011-05-14 08:29:55 -04:00
Bryan Schumaker a3af3d053d libsaria: New sequential next function for playlist
The new function exists in its own file to keep things simpler.  Based
on the current song id, it finds the index in the playlist and returns
the next visible song.
2011-05-14 08:15:05 -04:00
Bryan Schumaker 0a1160f618 libsaria: Rename playlist's next() function
This is to prepare for creating a new file "next.py" dedicated to
choosing the next song.  I also use this as an opportunity to pass the
current song id to the next function.
2011-05-14 07:48:11 -04:00
Bryan Schumaker a950f06e10 libsaria: Don't always keep a set of visible songs
If the playlist isn't filtered there isn't much of a point in keeping
around a set of visible songs.
2011-05-13 22:54:27 -04:00
Bryan Schumaker 9056daae93 libsaria: Remove playlist startup() function
I should be able to do this on import, so it doesn't need its own
function.
2011-05-13 08:27:59 -04:00
Bryan Schumaker 202e75430e libsaria: Add comment to playlist save()
The lock should be held while saving.  Save should normally be called by
a function that already holds the lock, though.
2011-05-13 08:19:50 -04:00
Bryan Schumaker ad7f780671 libsaria: Load playlist on import
I was doing this during startup already, so I might as well do it here.
2011-05-13 08:07:47 -04:00
Bryan Schumaker 194b436886 libsaria: Clean up playlist init
I removed some code that really didn't need to be used.  I also moved
around some of the imports to make the file easier to follow.
2011-05-13 08:03:00 -04:00
Bryan Schumaker e6a7b94c57 libsaria: Always get attributes from library
Attributes are stored in the library, so it makes sense to get them
there.
2011-05-13 08:00:00 -04:00
Bryan Schumaker 25f4410970 ocarina: I don't need to call save after resetting playlist
Saving is done automatically as part of the reset now, so there is no
need to call save() here any more.
2011-05-12 22:36:17 -04:00
Bryan Schumaker 132a66271c libsaria: Move playlist load, save, and reset functions
I moved them to playlist.py so they can grab the lock and safely do
stuff.  I save after adding or removing song ids.  I also save after
resetting the playlist.
2011-05-12 22:34:36 -04:00
Bryan Schumaker 64c6677263 ocarina: Use new list_playlist() function 2011-05-12 08:26:17 -04:00
Bryan Schumaker 8b51871225 libsaria: Playlist uses new list functions
They were built in to the sources/ layer in 4.6.  It makes sense to use
them for the playlist.
2011-05-12 08:25:44 -04:00
Bryan Schumaker 2afabfcf21 libsaria: remove ids from playlist (improved!)
I moved this to my new file.  I grab the lock, remove each id, and then
unlock.
2011-05-12 08:11:35 -04:00
Bryan Schumaker 8bd914802e libsaria: Move playlist's list to new file
It will be easier to work with from a new file, especially after I put
in functions for doing basic operations on it.
2011-05-11 23:05:47 -04:00
Bryan Schumaker e2be97165e libsaria: Move playlist to new directory
This will help me manage it better.  My next task is to explode it into
multiple files.
2011-05-11 22:43:32 -04:00
Bryan Schumaker a973ef196f makefile: Remove ocarina.py as part of clean
It's automatically generated during the make process, so it should be
removed during `make clean`.  I also want to run a `make clean` before
doing an update.
2011-05-11 22:34:31 -04:00
Bryan Schumaker 1ed7e58c99 libsaria: Remove old tests
These files were created for developing small components during initial
design.  I haven't used them in a long time, and most are probably
obsolete by now.
2011-05-11 22:31:28 -04:00
Bryan Schumaker 43b162d007 libsaria: Bump version
I am now developing Ocarina 4.7
2011-05-11 22:31:28 -04:00
Bryan Schumaker 4e3d98ab61 Ocarina 4.6 2011-05-11 22:19:00 -04:00
Bryan Schumaker 412153013b ocarina: Remove reference to thread.py
I removed the file a while ago, so this shouldn't be here.
2011-05-11 22:18:22 -04:00
Bryan Schumaker 83d8c18772 libsaria: I missed some references to thread.py
These should be removed.  I don't know how I missed this up until this
point
2011-05-11 22:18:01 -04:00
Bryan Schumaker 7a26110750 ocarina: Set and resize images atomically
Doing this all in one step prevents multiple threads from clashing with
each other.  I also add in clearing the old image before setting a new
one.
2011-05-11 21:46:15 -04:00
Bryan Schumaker 86f4aca8f3 libsaria: Remove old threads.py module
Everything in here can easily be duplicated with one line of python
code.  Keeping this file does a good job at increasing complexity.
2011-05-08 10:58:41 -04:00