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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
|
TODO File for Muggle
====================
Ogg/Vorbis decoder integration
------------------------------
- Think, whether type (mp3, ogg, flac) should be stored in database
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
----------------- publish_muggle.sh -----------------
# $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
-----------------------------------------------------
- How to track bugs and feature requests?
Testing/bugs
------------
- Test execution of playlist commands
- Keep this? Test mgPCMPlayer::getSourceFile() for GD case (find)
- Test saving/loading playlists to database
Import
------
- Album
- Cover text
- Cover images (based on filename or tag)
- Genre
- Modified
- Tracks
- Language (?)
- Genre1, 2
- Rating?
- Modified, created
- Lyrics
- Playlist from m3u
Code polishing
--------------
- Check for unnecessary log commands
- Generate HTML documentation using doxygen,
- use dotty/gv for state machines of player
- make available online
- Clean up mugglei
- Check for memory leaks
- Why do filters use pointers?
- Check for (reasonably) consistent usage of char*/string
- mgDatabase is not used?
- should handle a static object with a MySQL connection
- execute queries?
- mgPlayer used what for?
- Could save IP/host name and associate last playlist loaded
- Check compatibility for 1.3.12
Short term items
================
OSD in general
--------------
Content
-------
- Handle loop mode in mgPlaylist
- Handle shuffle mode in mgPlaylist
Player
------
- Determine max. framecount (needed for rewinding)?
- Init scale/level/normalize?
- Add ogg decoder
- Add a simple progress display (song title, artist, ...)
- DisplayTrackInfo (part of the player!)
- DisplayAlbumInfo (part of the player!)
Medium term items
=================
- really abstract from specific queries etc.
- mgDatabase should completely abstract database (mySQL) stuff!?
- read/write queries
- return results (needs a homogeneous representation of results?)
- Run import/update from within OSD?
OSD
---
- Type numbers to enter characters and jump to first title accordingly
- Check whether hierarchical menus are more suitable
Content
-------
- Save/load filter sets
- Apply filter set as dynamic playlist (i.e. show filters when loading playlists)
- Handle ratings (increase/decrease during replay)
Player
------
- Shuffle: toggle and loop keys. Shuffle only songs not already played, not easy though
- Display covers as still pictures
- Add flac decoder
- Set ratings
Import
------
- Handle updates
Web interface
-------------
- Look at PHP stuff from c't 11/04 and adapt to schema?
Long term ideas
===============
- daapd integration?
- netjuke integration?
- Display arbitrary images while playing music
Visions
=======
- handle off-line films (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)
- provide a stream (e.g. icecast) of the currently played music?
Already Done
============
- Check play speed (probably XINE related)
- Playlists starts with 2nd song (DONE)
- Export playlists
- Delete selected item
- Add command line option for top level directory
- prepended to filename in non-GD-mode
- searched in 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
- 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
************************************************************
*
* $Log: TODO,v $
* Revision 1.14 2004/08/30 14:31:43 LarsAC
* Documentation added
*
* Revision 1.13 2004/08/27 15:20:33 LarsAC
* Updated open issues w.r.t. import
*
* Revision 1.12 2004/08/26 11:11:42 LarsAC
* Import changed to use taglib
*
* Revision 1.11 2004/07/29 06:18:07 lvw
* Added todo entries
*
* Revision 1.10 2004/07/29 05:58:14 lvw
* TODO list changed
*
* Revision 1.9 2004/07/27 07:06:00 LarsAC
* Added file for doxygen documentation generation
*
* Revision 1.8 2004/07/09 13:47:07 LarsAC
* Updated next steps
*
* Revision 1.7 2004/05/28 15:29:18 lvw
* Merged player branch back on HEAD branch.
*
* Revision 1.1.2.12 2004/05/27 07:58:38 lvw
* Removed bugs in moving and removing tracks from playlists
*
* Revision 1.1.2.11 2004/05/25 21:57:58 lvw
* Updated TODO list
*
* Revision 1.1.2.10 2004/05/25 00:10:45 lvw
* Code cleanup and added use of real database source files
*
* Revision 1.1.2.9 2004/05/24 11:48:35 lvw
* Extended TODO list
*
* Revision 1.1.2.8 2004/05/13 06:48:00 lvw
* Updated TODO list
*
* Revision 1.1.2.7 2004/05/12 22:38:37 lvw
* Some cleanup
*
* Revision 1.1.2.6 2004/05/11 06:35:16 lvw
* Added debugging while hunting stop bug.
*
* Revision 1.1.2.5 2004/05/07 06:46:41 lvw
* Removed a bug in playlist deallocation. Added infrastructure to display information while playing.
*
***********************************************************/
|