diff options
Diffstat (limited to 'muggle-plugin/TODO')
-rw-r--r-- | muggle-plugin/TODO | 237 |
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) + +*/ |