1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
/*! \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
*/
|