Commit Graph

3428 Commits

Author SHA1 Message Date
Bryan Schumaker 5a02227e99 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-11-15 08:17:31 -05:00
Bryan Schumaker 38026a43c5 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-11-14 19:32:47 -05:00
Bryan Schumaker 654cd9c418 pause_after.py undefined do_pause error 2010-11-14 19:32:05 -05:00
Bryan Schumaker 56ffa217e5 Tree prefs test persistance 2010-11-14 17:50:57 -05:00
Bryan Schumaker a53f2740c3 Correctly get the preference tree when initializing 2010-11-14 17:50:37 -05:00
Bryan Schumaker a95e94936d Load preference trees
Preference trees should be able to load from disk if associated with a
file.
2010-11-14 17:49:23 -05:00
Bryan Schumaker 133a5eb63d Tree prefs test
This was used for developing the preferences tree.
2010-11-14 17:33:08 -05:00
Bryan Schumaker 63211fb1c8 Libsaria initialization
I now initialize libsaria during import, rather than as a separate step
afterwards.
2010-11-14 17:32:09 -05:00
Bryan Schumaker b8d6d918a1 libsaria.collection cleanup
I found more places using libsaria.collection instead of
libsaria.sources
2010-11-14 17:31:32 -05:00
Bryan Schumaker 8fb2b45ac8 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-11-14 17:29:31 -05:00
Bryan Schumaker 5594825502 Preference trees
Preference trees are used to store various preferences.  Each component
can have its own set of preferences that use overlapping names.
2010-11-14 17:26:52 -05:00
Bryan Schumaker edd5d2b39b Pause after in local variable
The pause after current track plugin should store its variables in
something local to the plugin and not in the libsaria.vars map.
2010-11-14 17:24:54 -05:00
Bryan Schumaker 6124296f70 libsaria sources change
Change files to reflect the rename of libsaria.collection to
libsaria.sources
2010-11-14 13:50:35 -05:00
Bryan Schumaker fe787dfd6b Rename libsaria.collection to libsaria.sources 2010-11-14 13:50:10 -05:00
Bryan Schumaker ee8106e373 Bind remote server by ip address
This should worke better than binding by hostname or 'localhost'
2010-11-13 22:12:37 -05:00
Bryan Schumaker d6d1c5f56c Make remote visible to outside world
I have to use socket.gethostname() to make the remote server available
to the outside world.
2010-11-13 21:57:20 -05:00
Bryan Schumaker 77e9cf13ee Added remote plugin
This plugin will allow me to control Ocarina using an app on another
computer.
2010-11-13 21:40:55 -05:00
Bryan Schumaker dcdbab8e55 Began working on a web remote plugin
This plugin will eventually allow me to control ocarina through a web
interface.  So far, it can serve up web pages located in
current_working_directory/HTML.
2010-11-13 21:39:27 -05:00
Bryan Schumaker 9167e6441c Quit plugins on exit
Plugins should have a chance to clean up after themselves when we are
shutting down.
2010-11-13 21:38:16 -05:00
Bryan Schumaker a31f4b609f current working directory function
This has been added to libsaria.path as libsaria.path.cwd()
2010-11-13 21:37:38 -05:00
Bryan Schumaker b4f2295c52 Add export button to gui
The button doesn't do much unless one is created and displayed
somewhere...
2010-11-12 20:49:00 -05:00
Bryan Schumaker 9e72389e49 Export button
Clicking this button will convert the library from the in-memory Tree
based form to xml.
2010-11-12 20:48:20 -05:00
Bryan Schumaker 68bad792dc Library backup
I can now backup the library to an xml file.  This will be useful for
library updates in the future.  The plan is to eventually backport this
feature to Ocarina 4.1 (To make the 4.1 -> 4.2 transition easier)
2010-11-12 20:47:14 -05:00
Bryan Schumaker d35468ba19 Added xml creation functions
These functions are designed to help create an xml document.
2010-11-12 20:46:19 -05:00
Bryan Schumaker 2b2cd7e805 Remove old collection code and files 2010-11-12 19:40:42 -05:00
Bryan Schumaker 3cb1959a7f Random song from playlist
I can once again play random songs from the playlist.
2010-11-12 19:24:13 -05:00
Bryan Schumaker ed2e5b882b Playlist next()
The playlist can play the next song in the playlist.
2010-11-12 08:04:26 -05:00
Bryan Schumaker 2c4d42920e 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-11-11 22:51:31 -05:00
Bryan Schumaker 1f7d6538c4 Tree lookup
Lookup will follow a path and return whatever node it is pointing to.
2010-11-11 22:49:58 -05:00
Bryan Schumaker bcacfafa36 find attr filepath correctly
The attribute filepath is easier now that I can walk a fs_tree backwards
and get a path back.
2010-11-11 22:47:53 -05:00
Bryan Schumaker 0af81adbcd 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-11-11 22:46:17 -05:00
Bryan Schumaker b8eb1817b7 Library indexing
I can now add artist / album / title of each song to an index in the
library.
2010-11-11 08:21:01 -05:00
Bryan Schumaker 6ac2abda27 Library get_attr values
We should walk the tag values bacwards, rather than using the normal
walk_backwards function.
2010-11-10 22:52:50 -05:00
Bryan Schumaker cd78355b74 Tags in DLValTree
I store the tags in a doubly-linked value tree from now on.
2010-11-10 22:47:01 -05:00
Bryan Schumaker 88ca239a53 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-11-10 22:45:43 -05:00
Bryan Schumaker e2a0dacd58 Value Trees
Value trees store a value in addition to the path.  They come in normal
and doubly-linked flavors.
2010-11-10 21:59:24 -05:00
Bryan Schumaker e7d9ff897d 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-11-10 21:33:15 -05:00
Bryan Schumaker 1d95aeeaf2 DLFSTrees
Doubly linked filesystem trees are both a doubly linked tree and a
filesystem tree.  They can walk paths backwards.
2010-11-10 08:24:02 -05:00
Bryan Schumaker a45d18552b Find child id once
Rather than computing the child id for every iteration of walking
backwards, we do it once.
2010-11-10 08:22:33 -05:00
Bryan Schumaker 52da8984c3 Add track fields
Tracks need a playcount and a score in addition to all other fields.
2010-11-10 08:21:03 -05:00
Bryan Schumaker afd145efd7 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-11-09 23:26:13 -05:00
Bryan Schumaker 0e2898a0f6 Add Track class
This class will be used to store metadata about each song (year, length,
genre ...)
2010-11-09 23:24:49 -05:00
Bryan Schumaker 6ad263d712 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-11-09 23:22:52 -05:00
Bryan Schumaker 946e6b19da Remove value from tree displaying
Displaying a tree should not use the old tree.value variable.  This
variable doesn't exist anymore.
2010-11-09 23:21:57 -05:00
Bryan Schumaker efa680af19 Library scanning work
I have continued work on library scanning.
2010-11-09 20:08:44 -05:00
Bryan Schumaker dbc2d767d3 FSTree() correct insert
Correctly insert a split path into a FSTree()
2010-11-09 20:08:17 -05:00
Bryan Schumaker 019cded563 Tree() length
I made Tree().__len__() to use for finding the number of leafs that
exist on a tree.
2010-11-09 20:07:35 -05:00
Bryan Schumaker 99ea5fd3ed libsaria.path FSTree()
path should use an FSTree() instead of a Tree()
2010-11-09 20:06:46 -05:00
Bryan Schumaker 27d3baef27 FSTrees shouldn't have a value
If a Tree() doesn't have a value, then the FSTree() shouldn't either...
2010-11-09 19:44:58 -05:00
Bryan Schumaker d15a4e2967 Trees don't have values
Trees don't actually need a value.  I can make a subclass later if I
find it's important.
2010-11-09 19:41:47 -05:00