Commit Graph

164 Commits

Author SHA1 Message Date
Bryan Schumaker
487e8c39be Move generic saving / loading functions
These belong under path/
2010-12-03 08:31:03 -05:00
Bryan Schumaker
80deb45a3e Move cache into path/
The cache modifies files, so it can be part of path/
2010-12-03 08:31:03 -05:00
Bryan Schumaker
1e7f63aa2d Moved backup.py to path/
This moves the backup functions to a more reasonable place.
2010-12-03 08:31:03 -05:00
Bryan Schumaker
d768e65a4f Web remote controls
I can play, pause, stop, and advance to the next song through the web
interface.
2010-12-03 08:30:15 -05:00
Bryan Schumaker
adbac1c245 url formatting: don't escape the quote
We don't need to do this.  It causes problems with last.fm
2010-12-03 08:30:14 -05:00
Bryan Schumaker
f723d35eea library tag accessor functions
I have created functions to make it easy to get at titles and song ids
from known tags.
2010-12-03 08:30:14 -05:00
Bryan Schumaker
fe2b5970b4 lastfm return None on error
lastfm album art fetching should return None if there is a problem
opening the image url.
2010-12-03 08:30:14 -05:00
Bryan Schumaker
5118829e78 Get artist and album lists from the library
This patch makes it easy to get an artist or album list out of the
library.
2010-12-03 08:30:14 -05:00
Bryan Schumaker
36cf384cf2 Import trees from libsaria.trees 2010-12-03 08:30:14 -05:00
Bryan Schumaker
6d789fe070 Get artwork by (artist, album)
This makes it easier to find artwork using (artist, album) as a key.
This will probably be the best way to use artwork in the web interface.
2010-12-03 08:30:14 -05:00
Bryan Schumaker
dcc5a937ae Added basename() to path
This will be useful for finding the file referred to by a path.
2010-12-03 08:30:13 -05:00
Bryan Schumaker
0719a57270 Moved libsaria.path to a package
This is the beginning of moving file related code into a single package
and out of the main libsaria directory.
2010-12-03 08:30:13 -05:00
Bryan Schumaker
bbcc87e518 Make sure playlist is initialized properly
This stops an error when ocarina is run with an empty library.  Because
the library is empty, the playlist was never being initialized.
2010-12-03 08:30:13 -05:00
Bryan Schumaker
bf8092e621 Removed Table() class
I don't know why this wasn't removed earlier.  It hasn't been used since
Ocarina 4.0
2010-12-03 08:30:13 -05:00
Bryan Schumaker
3798efd007 Removed Map()
I don't need the Map() class anymore
2010-12-03 08:30:13 -05:00
Bryan Schumaker
c80dfcdf27 Finish new prefrences moveover
I have renamed libsaria.prefs2 to libsaria.prefs
2010-12-03 08:30:13 -05:00
Bryan Schumaker
a051d5ac41 Volume through new preferences tree
The volume is now controlled through the preferences tree.
2010-12-03 08:30:13 -05:00
Bryan Schumaker
3f3d111fba Random new preferences
The random feature uses the new preferences tree, rather than the
preferences map.
2010-12-03 08:30:13 -05:00
Bryan Schumaker
7f82a08a3a Ocarina window new preferences tree
The main window will set its size based on the new preferences tree,
instead of the old preferences map.
2010-12-03 08:30:12 -05:00
Bryan Schumaker
de31941af1 Optimize rand_candidate
The set of searchable songs shouldn't change while selecting songs.  We
can determine which list of songs to look at up front and always use
that as an argument to rand_candidate()
2010-12-03 08:30:12 -05:00
Bryan Schumaker
0b8223d224 Correctly get the preference tree when initializing 2010-12-03 08:30:12 -05:00
Bryan Schumaker
80d91c3b60 Load preference trees
Preference trees should be able to load from disk if associated with a
file.
2010-12-03 08:30:12 -05:00
Bryan Schumaker
e7fc59a877 Libsaria initialization
I now initialize libsaria during import, rather than as a separate step
afterwards.
2010-12-03 08:30:12 -05:00
Bryan Schumaker
1c5b1b85ba libsaria.collection cleanup
I found more places using libsaria.collection instead of
libsaria.sources
2010-12-03 08:30:12 -05:00
Bryan Schumaker
fcae32cec0 Add prefs2 variable / remove vars
The prefs2 structure is where I will store my new tree-based
preferences.  I'll use this for now until everything gets moved over.  I
also remove the vars variable since nothing uses it.
2010-12-03 08:30:12 -05:00
Bryan Schumaker
0716c7a79c Preference trees
Preference trees are used to store various preferences.  Each component
can have its own set of preferences that use overlapping names.
2010-12-03 08:30:12 -05:00
Bryan Schumaker
701306fef6 libsaria sources change
Change files to reflect the rename of libsaria.collection to
libsaria.sources
2010-12-03 08:30:12 -05:00
Bryan Schumaker
caeb77e58c Rename libsaria.collection to libsaria.sources 2010-12-03 08:29:16 -05:00
Bryan Schumaker
53908f3b1e Quit plugins on exit
Plugins should have a chance to clean up after themselves when we are
shutting down.
2010-12-03 08:29:16 -05:00
Bryan Schumaker
eae86f2dae current working directory function
This has been added to libsaria.path as libsaria.path.cwd()
2010-12-03 08:29:16 -05:00
Bryan Schumaker
c4738482b7 Remove old collection code and files 2010-12-03 08:29:16 -05:00
Bryan Schumaker
11e1caefe2 Random song from playlist
I can once again play random songs from the playlist.
2010-12-03 08:29:16 -05:00
Bryan Schumaker
1190fd45cc Playlist next()
The playlist can play the next song in the playlist.
2010-12-03 08:29:16 -05:00
Bryan Schumaker
587844cb4e libsaria.music doesn't exist anymore
It has been renamed libsaria.audio, so the end-of-song function should
be changed to reflect this.
2010-12-03 08:29:16 -05:00
Bryan Schumaker
f8dd01a54c Tree lookup
Lookup will follow a path and return whatever node it is pointing to.
2010-12-03 08:29:16 -05:00
Bryan Schumaker
263cfde85d find attr filepath correctly
The attribute filepath is easier now that I can walk a fs_tree backwards
and get a path back.
2010-12-03 08:29:16 -05:00
Bryan Schumaker
f7a963cab1 Easy file_to_id()
file_to_id() can stat the filepath to find the inode number (aka the
song id).  This is much easier than doing a bunch of lookups.  What I
really want to do eventually is get rid of file_to_id()...
2010-12-03 08:29:15 -05:00
Bryan Schumaker
18e9c7e135 Library indexing
I can now add artist / album / title of each song to an index in the
library.
2010-12-03 08:29:15 -05:00
Bryan Schumaker
d5d97e502a Library get_attr values
We should walk the tag values bacwards, rather than using the normal
walk_backwards function.
2010-12-03 08:29:15 -05:00
Bryan Schumaker
8aaeffaa7e Tags in DLValTree
I store the tags in a doubly-linked value tree from now on.
2010-12-03 08:29:15 -05:00
Bryan Schumaker
2949535aba Val trees walk values
Val trees can walk through their values in addition to their paths.  A
doubly-linked val tree can also walk values backwards.
2010-12-03 08:29:15 -05:00
Bryan Schumaker
fe449ffea4 Value Trees
Value trees store a value in addition to the path.  They come in normal
and doubly-linked flavors.
2010-12-03 08:29:15 -05:00
Bryan Schumaker
f29c57992a Library FSTrees and unique ids
I now make a filesystem tree to store the library.  In addition, I am
using inode number to track songs.  This should make it easier to detect
moved files (inode number matches but path doesn't).
2010-12-03 08:29:15 -05:00
Bryan Schumaker
5dbbeb7dcb DLFSTrees
Doubly linked filesystem trees are both a doubly linked tree and a
filesystem tree.  They can walk paths backwards.
2010-12-03 08:29:15 -05:00
Bryan Schumaker
ffd38ec9fa Find child id once
Rather than computing the child id for every iteration of walking
backwards, we do it once.
2010-12-03 08:29:15 -05:00
Bryan Schumaker
60aa99ad84 Add track fields
Tracks need a playcount and a score in addition to all other fields.
2010-12-03 08:29:15 -05:00
Bryan Schumaker
5a21e63e3f Add tracks to libray
I now attempt to add every file in the filesystem to the library as a
Track().  Errors are logged and bad extentions are saved (so we know not
to scan them in the future).
2010-12-03 08:29:15 -05:00
Bryan Schumaker
b720519043 Add Track class
This class will be used to store metadata about each song (year, length,
genre ...)
2010-12-03 08:29:15 -05:00
Bryan Schumaker
825a8b8346 Add DLTree()
This patch adds a double-linked tree class for use in storing the
library.  This class can walk backwards from a leaf node when
walk_backwards is called.
2010-12-03 08:29:15 -05:00
Bryan Schumaker
4a33a2f0fd Remove value from tree displaying
Displaying a tree should not use the old tree.value variable.  This
variable doesn't exist anymore.
2010-12-03 08:29:15 -05:00