summaryrefslogtreecommitdiff
path: root/muggle-plugin/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'muggle-plugin/TODO')
-rw-r--r--muggle-plugin/TODO237
1 files changed, 237 insertions, 0 deletions
diff --git a/muggle-plugin/TODO b/muggle-plugin/TODO
new file mode 100644
index 0000000..6594daf
--- /dev/null
+++ b/muggle-plugin/TODO
@@ -0,0 +1,237 @@
+/*! \page issues Muggle Issue List
+
+ The page lists a number of open issues and possible ideas for improvement.
+ It can be seen as a notepad for the developers or as an entry point for
+ volunteers. There is no real order among those things and even the occurrence
+ of an issue does not mean that it will be implemented/resolved at some time.
+
+ If you feel, something is really urgent, go ahead. We'll help you.
+
+ \section urgent Urgent/Short-term issues
+
+ \subsection bugs Bugs and testing needed
+
+ \subsection urgentosd OSD-related Issues
+
+ \subsection urgentcode Code polishing
+
+ - Clean up coding style and documentation in general
+ - Logging
+ - extend mgLog with static logging methods
+ - in DEBUG mode, issue logs, warnings, errors to stderr
+ - otherwise issue errors only to syslog
+ - Check for unnecessary log commands
+ - Generate HTML documentation using doxygen,
+ - use dotty/gv for state machines of player
+ - make available online
+ - Clean up mugglei (abstract code where possible)
+ - extend mgSelection with all SQL code needed by mugglei.c, maybe something like mgSelection.SyncWithPath(const char *path, options)
+ - then remove all SQL code from mugglei.c
+ - Check for memory leaks
+ - Check for (reasonably) consistent usage of char pointers and strings
+ - mgPlayer used what for?
+ - Could save IP/host name and associate last playlist/index loaded
+
+ \subsection urgentcontent Content handling
+ - Save on exit
+ - Think, whether type (mp3, ogg, flac) should be stored in database
+ - could be used in searching/structuring as well
+ - Party mode (see iTunes)
+ - initialization
+ - find 15 titles according to the scheme below
+ - playing
+ - before entering next title perform track selection
+ - do not increment the playcount
+ - if more than 5 titles are found, make sure the same title is not directly repeated
+ - track selection
+ - generate a random uid
+ - if file exists:
+ - determine maximum playcount of all tracks
+ - generate a random number n
+ - if n < playcount / max. playcount
+ - add the file to the end of the list
+
+ \subsection urgentplayer Player extensions
+ - Possible to resume play instead of restarting list from the beginning?
+ - Display covers
+ - Import filename
+ - Show image during replay
+ - Add FLAC decoder
+ - Determine max. framecount (needed for rewinding?)
+ - Init scale/level/normalize?
+ - The max. level should be recognized during play
+ - Store max. level in the database
+ - Display covers
+
+ \subsection deploy Deployment
+
+ - Script to publish a version
+ - make dist
+ - copy .tgz, README, CHANGES, HISTORY into web directory
+ - generate documentation
+ - copy into web directory
+ - sync with web
+ - How to track bugs and feature requests?
+
+ \verbatim
+ # $1: version name (e.g. 0.0.5-BETA)
+ # how to determine current path?
+ svn copy ... http://.../svn/muggle/tags/$1
+
+ make dist
+ # obtain name from output? or copy commands and make correctly
+ mv vdr-muggle-0.0.1.tgz ~/Web/current/htpc/muggle/vdr-muggle-$1.tgz
+
+ cp README ...
+ cp TODO ...
+ cp CHANGES ...
+
+ doxygen muggle.doxygen
+ cp -R doc ~/Web/current/htpc/muggle/
+
+ sitecopy --update htpctech
+ \endverbatim
+
+ \section mid ToDo items of moderate importance
+
+ \subsection midimport Import stuff
+
+ - Handle updates in both directions
+ - Check modification date in DB/fstat
+ - if file is newer: update tags into db
+ - if DB is newer: update db into tags
+ - Second pass: check for all tracks, whether files do exist
+ - delete DB entry if not
+
+ - Album
+ - Cover images (based on filename or tag)
+ - Genre
+ - Modified
+ - Cover text
+
+ - Tracks
+ - Language (?) - encoded by what standard?
+ - Rating?
+ - Modified, created
+ - Lyrics
+
+ - Import playlist from m3u
+ - Run import/update from within OSD?
+
+ \subsection midcode Code issues
+
+ \subsection midosd OSD-related issues
+ - can mgMenu and mgMainMenu be combined into one class?
+ - can mgActions inherit from cOsdItem?
+ - Incremental search
+ - Type numbers to enter characters and jump to first title accordingly
+ - Check whether submenus (as implemented in VDR) are more suitable
+ - do not permit jumping to arbitrary menus though
+
+ \subsection midcontent filter issues
+
+ - new OSD list for filters. Only ONE filter can be active at any time
+ - filters can be defined recursively, different filters can share subfilters
+ - Save/load filter set
+ - table filters and filterrules
+ - filters: id, name, created, author. Uses id 0 from filterrules.
+ - filterrules: PRIMARY(filterid, id), negate, operator, op1, op2,
+ - if operator is AND or OR, op1 and op2 are filterrule ids
+ - filters are always applied, even to "instant play" and "now playing"
+
+ \subsection midcontent Content issues
+
+ - Handle ratings (increase/decrease during replay)
+ - Keys to directly increase
+ - handle a playcounter
+ - when playfrequency reaches lower level x from above: decrease rating
+ - when playfrequency reaches lower level x from below: increase rating
+ - when playfrequency reaches upper level y from above: decrease rating
+ - when playfrequency reaches upper level y from below: increase rating
+
+ \subsection midplayer Player issues
+
+ - Use single CD files with cuesheets in metadata for FLAC
+ - Handle recoding samplerate, limiter etc correctly
+
+ \section vision Long term ideas and visions
+
+ - daapd integration?
+ - netjuke integration?
+ - Display arbitrary images while playing music
+
+ - handle off-line media (CDs, DVDs, recordings)
+ - handle streams (live TV with channel list, MP3 radio,..., EPG)
+
+ - handle images (possibly in sync with music/radio)
+ - muggle content syndication (e.g. via DAAPD)
+ - access media on someone elses computer
+ - provide a stream (e.g. icecast) of the currently played music?
+ - allow remote stations to attach to this
+
+ \section done Done
+
+ - BUG: Check play speed (was XINE related)
+ - BUG: Playlists starts with 2nd song (DONE)
+ - Export playlists
+ - Delete selected item
+ - Add command line option for top level directory
+ - Prepend top level dir to filename in non-GD-mode
+ - Edit playlist (move tracks like channels in VDR channel list)
+ (OK in playlist view)
+ - Instant play = empty current playlist, append tracks of current node and play
+ (easy, in submenu of browser)
+ - Clear playlist (submenu action)
+ - Find files from database entry based on GD compatibility flag
+ - Handle Next/PrevFile in mgPlaylist (vdr_player.c)
+ - Add plugin parameters for database name/host/user/pass
+ - Add plugin parameter for GD filename compatibility
+ - handle filters:
+ - create tracklist from filter
+ - create tree from filter
+ - i18n (english and german)
+ - Album import
+ - Various artists import (assorted)
+ - Ogg/Vorbis decoder integration
+ - cOggFile kept
+ - cOggInfo dismissed in favor of obtaining info from DB
+ - coding conventions adapted
+ - Schema extended to keep audio properties
+ - Import (mugglei) extended to store audio properties in DB
+ (most notably samplerate, no. channels)
+ - Extended mgContentItem with audio properties
+ - Extended mgGdTrack with audio properties (bitrate, samplerate, channels)
+ - in mgPCMPlayer/vdr_player.c:
+ - pass m_playing to mp3/ogg decoder (instead of filename)
+ - mgOggDecoder: obtain audio properties from DB (channels, sampling rate via mgContentItem)
+ - mgPCMPlayer::getSourceFile moved to abstract data layer (mgContentItem)
+ and made concrete in subclasses (mgGdTrack)
+ - mgDecoders::findDecoder: extend decoder detection
+ - BUG: Check compatibility for 1.3.12 (DONE)
+ - BUG: Plugin crashes when deleting playlist while playing
+ - should stop playing immediately or not permit this
+ - BUG: Check deletion of entries while playing
+ - only allowed, if item is not currently played
+ - adapt index in playlist
+ - BUG: Playlist indexing not correct
+ - Player jumps e.g. from track 1 to track 3
+ - Make sure jumping beyond the end of the list is not permitted
+ - BUG: Plugin crashes when selecting entries with special characters
+ - Escape query strings correctly
+ - should go into gd_content_interface.c (row[] in lines 1175,1179,1882)?
+ - Simple progress indicator for 1.3.12
+ - Attach to graphlcd plugin via replay string
+ - Test Instant play from browser view
+ - Displaying the menu while progress display is shown makes VDR crash (DONE)
+ - Check int/unsigned stuff in mg_playlist
+ - mgPCMPlayer::GetIndex: obtain track length from database (DONE)
+ - Import (mugglei) now checks for duplicate entries based on filenames
+ - Playlist view: start at selected on Ok
+ - Toggle Track view/playlist view (red)
+ - For playlist view show playlist name, total time
+ - For track view show name, artist, time
+ - Toggle detail/progress view (green)
+ - Track view: all metadata
+ - Playlist view: all tracks (past three, upcoming ones)
+
+*/