/*! \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
       - Move items within playlists

    \subsection urgentcode Code polishing
        - Generate HTML documentation using doxygen,
          - use dotty/gv for state machines of player

    \subsection urgentcontent Content handling    

    \subsection urgentplayer Player extensions
        - Possible to resume play instead of restarting list from the
	  beginning?
	- Init scale/level/normalize?
	  - The max. level should be recognized during play
	  - Store max. level in the database

  \section mid ToDo items of moderate importance
  
    \subsection midimport Import stuff
    
    - Album
      - Cover text

    - Tracks
      - Language (?) - encoded by what standard?
      - Rating?
      - Modified, created
      - Lyrics

    - Import playlist from m3u
    - define regexp per import field for things like s'/^The//'

    \subsection midcode Code issues
    
	\subsection midosd OSD-related issues
        - can mgMenu and mgMainMenu be combined into one class?	
	- can mgActions inherit from cOsdItem?
	- 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 and use it to influence rating

	\subsection midplayer Player issues
	
        - Use single CD files with cuesheets in metadata for FLAC
	- Handle recoding samplerate, limiter etc correctly
        - Let decoding run in a thread of its own
    
	\section vision Long term ideas and visions

	- 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?

  \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)
    - Flac player
    - Embedded mySQL backend
    - Postgres backend
    - SQLite backend
    - Incremental search
    - Cover display
      - from ID3 tags
      - from directory

*/
