119 lines
4.1 KiB
Plaintext
119 lines
4.1 KiB
Plaintext
Future work:
|
|
I want to set reasonable expectations for Ocarina 6 so that I don't
|
|
have to spend a large amount of time coding before releasing something
|
|
to the wild. This section will be a list of features that I want, but
|
|
should be deferred to a future release so basic support can be coded.
|
|
|
|
Hint: If feature B depends on A, implement A in 6.x and B in 6.x+1
|
|
|
|
- New default groups:
|
|
Unplayed tracks
|
|
|
|
- Categories:
|
|
Use these to make "groups of groups" for better organization.
|
|
Different categories can include Album, Artist and Genere
|
|
dynamic groups in addition to user created groups (see below)
|
|
|
|
The Artist, Album and Genre "tables" can be used to populate
|
|
these categories.
|
|
|
|
- User created song groups:
|
|
Basic add and remove features can be implemented using the
|
|
Library and Banned Songs groups. This will give me a chance
|
|
to test saving groups on a small scale before letting users
|
|
create anything they want.
|
|
|
|
- Save a user's playlist as a group:
|
|
|
|
- Library defragment:
|
|
Ocarina 6.0 will leave holes in the library when tracks are
|
|
deleted, potentially leading to fragmentation and larger-than-
|
|
needed file sizes. A "defragment" utility can be created to
|
|
clean up unused slots.
|
|
|
|
To help with fixing groups, a mapping of (old values) ->
|
|
(new values) should be kept.
|
|
|
|
- Fix track durations:
|
|
Some tracks in my library are tagged with the wrong duration,
|
|
so fix them as they are played.
|
|
|
|
- Track tag editor:
|
|
Make a pop-up window for editing the tags of a track. Be sure
|
|
to update the library information and the on-disk file.
|
|
|
|
- Album art:
|
|
(easy) Start with album art fetching script
|
|
(hard) Build in to Ocarina
|
|
|
|
- Playlist custom sorting:
|
|
Click column headers to choos sort order
|
|
Keep a list of fields that the user has selected and place new
|
|
fields in the front of this list. Use a recursive stable sort
|
|
to do the sorting.
|
|
|
|
- Better design file format:
|
|
Todo list in each document instead of all at once in the footer.
|
|
Leave the Todo list out of the official "design document" and
|
|
keep it in each individual section instead.
|
|
XML?
|
|
Code formatting?
|
|
Checkbox for when features are done? (reference commit)
|
|
|
|
- Copy a song group to a different directory:
|
|
This can be useful for keeping an external device (like an
|
|
Android phone) updated with the music you want to listen to.
|
|
Complications: I have an mp3 mirror of all my music, and I
|
|
want the mp3s to be synced. Perhaps track mirrors in Ocarina?
|
|
|
|
- Mirror directory:
|
|
I rip music to .flac, but keep an mp3 mirror directory to sync
|
|
to other computers and phones. An Ocarina tool to manage a
|
|
COMPLETE library mirror might be a good idea so I no longer
|
|
need to manage it externally. This can still be done with a
|
|
script, a cron job, and maybe a "mirror this track" option in
|
|
the library? Perhaps create a mirror group?
|
|
|
|
- Extra testing ideas:
|
|
- Run tests through valgrind to help find memory leaks
|
|
- Some way to enable / disable tests during development
|
|
- Run tests based on dependencies
|
|
- Fix tests that will only work on my computer
|
|
- Double check that all inputs and outputs are tested
|
|
- Simple testing library?
|
|
- Stop tests on failure
|
|
- Test callbacks
|
|
|
|
- Preferences:
|
|
- Set default sort
|
|
- Save window size
|
|
- Set album art size
|
|
|
|
- Rip out Ocarina 5.x importing and legacy file support
|
|
|
|
- AirPlay / remote audio support
|
|
|
|
- Media keys
|
|
|
|
- Replaygain support
|
|
External script to calculate values?
|
|
Calculate value after first playback?
|
|
Store in library :: Track structure
|
|
|
|
- Autosave databases
|
|
Artist, album, genere and library path don't change often so
|
|
saving on every add / remove won't be a huge performance hit
|
|
and may actually be more efficient in the long run.
|
|
|
|
- Scons improvements:
|
|
Why does everything compile with the same CONFIG_* parameters?
|
|
Cleanups to tests/Sconscript
|
|
Global dependency resolution (rather than having multiple ways
|
|
in lib/ design/ and tests/)
|
|
|
|
- Playqueue and database inherit from common class
|
|
- "About" dialog
|
|
- Investigate "Bulk insert" callbacks for performance
|
|
- Initialize PQs with multiple flags
|
|
- Prefill Song structures in each library :: Track
|