Re-introduce MediaTracker as a plugin.
[profile/ivi/rygel.git] / ChangeLog
1 2008-08-05  Zeeshan Ali Khattak  <zeenix@gmail.com>
2
3         * configure.ac:
4         * src/Makefile.am:
5         * src/media-providers/Makefile.am:
6         * src/media-providers/tracker/Makefile.am:
7         * src/media-providers/tracker/gupnp-media-tracker.vala:
8
9         Re-introduce MediaTracker as a plugin.
10
11 2008-08-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
12
13         * src/Makefile.am:
14         * src/cstuff.vapi:
15         * src/gupnp-media-manager.vala:
16         * src/gupnp-media-tracker.vala:
17
18         - Introduce a plugins system. Ross should be happy now. :)
19         - Remove MediaTracker module.
20
21 2008-08-03  Zeeshan Ali Khattak  <zeenix@gmail.com>
22
23         * src/gupnp-media-manager.vala:
24         * src/gupnp-media-provider.vala:
25         * src/gupnp-media-tracker.vala:
26
27         - Add "title" prop to MediaProvider interface.
28         - Add get_root_children_count() to MediaProvider interface.
29
30 2008-08-03  Zeeshan Ali Khattak  <zeenix@gmail.com>
31
32         * src/gupnp-media-tracker.vala:
33
34         - Correct a typo. Now we export the ID of the container in the format we
35           need to export it in.
36         - No need for MediaManager to prefix IDs with root_id.
37         - Pass ID as is to browse() and get_metadata() of media providers.
38         - Get the root ID prefix from IDs rather than removing it.
39         - Don't add root ID prefix to root parent ID.
40
41 2008-08-03  Zeeshan Ali Khattak  <zeenix@gmail.com>
42
43         * src/gupnp-content-directory.vala:
44         * src/gupnp-media-manager.vala:
45         * src/gupnp-media-provider.vala:
46         * src/gupnp-media-tracker.vala:
47
48         - MediaProviders now get the "root_parent_id" though a prop.
49         - MediaManager now decides the IDs to use on it's own.
50
51 2008-08-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
52
53         * src/gupnp-content-directory.vala:
54
55         Use MediaManager rather than MediaTracker. This also means that
56         system_update_id doesn't need to be handled by ContentDirectory
57         anymore.
58
59 2008-08-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
60
61         * src/Makefile.am:
62         * src/gupnp-media-manager.vala:
63
64         Introduce MediaManager. It implements MediaProvider interface and will
65         be responsible to manage all MediaProviders. Currently it uses
66         MediaTracker directly since it currently doesn't have a plugin system.
67
68 2008-07-31  Zeeshan Ali Khattak  <zeenix@gmail.com>
69
70         * src/gupnp-media-tracker.vala:
71
72         Each MediaProvider prefixes each objectid with "root-id:". This will
73         allow the ContentDirectory to redirect the Browse requests to the
74         appropriate MediaProvider in a simple/efficient way.
75
76 2008-07-30  Zeeshan Ali Khattak  <zeenix@gmail.com>
77
78         * src/Makefile.am:
79         * src/gupnp-media-provider.vala:
80         * src/gupnp-media-tracker.vala:
81
82         Introduce MediaProvider interface that MediaTracker
83         implements.
84
85 2008-07-18  Zeeshan Ali Khattak  <zeenix@gmail.com>
86
87         * src/gupnp-connection-manager.vala:
88
89         No need to list all supported mimetypes in SourceProtocolInfo.
90
91 2008-07-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
92
93         * src/Makefile.am:
94
95         - Fix a typo.
96         - Declared all built sources in BUILT_SOURCES.
97
98 2008-07-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
99
100         * NEWS:
101
102         Prepare NEWS file for initial (0.1) release.
103
104 2008-07-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
105
106         * TODO:
107         * doc/design.txt:
108
109         Update design doc and TODO files.
110
111 2008-07-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
112
113         * src/gupnp-connection-manager.vala:
114
115         - Swap the sink and source ProtocolInfo.
116         - Use Vala's syntax for connecting signals with details.
117         - Remove the unused commented-out code.
118         - Initialize the variables in the constructor.
119         - Put my name/copyright in the header.
120
121 2008-07-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
122
123         * data/xml/Makefile.am:
124         * data/xml/description.xml:
125         * src/gupnp-media-server.vala:
126
127         Enable the ConnectionManager service.
128
129 2008-07-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
130
131         * src/Makefile.am:
132         * src/gupnp-connection-manager.vala:
133
134         Copy the ConnectionManager code from gupnp-media-renderer.
135
136 2008-07-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
137
138         * README:
139
140         Put some description in README file.
141
142 2008-07-03  Zeeshan Ali Khattak  <zeenix@gmail.com>
143
144         * src/gupnp-content-directory.vala:
145
146         Return an error on getting invalid arguments for 'Browse'.
147
148 2008-07-03  Zeeshan Ali Khattak  <zeenix@gmail.com>
149
150         * src/gupnp-content-directory.vala:
151
152         Argument 'value' of query_variable signal should now be declared 'ref'.
153
154 2008-07-03  Zeeshan Ali Khattak  <zeenix@gmail.com>
155
156         * src/gupnp-media-tracker.vala:
157
158         Provide the 'creator' tag in DIDL xml for all items. The same value is
159         provided in 'author' and 'artist' tags for music and video items
160         respectively.
161
162 2008-07-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
163
164         * data/xml/ContentDirectory.xml:
165
166         Hide the optional "GetSortExtensionCapabilities" action as well.
167
168 2008-07-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
169
170         * src/gupnp-content-directory.vala:
171
172         - Initialize "SystemUpdateID" variable and implement related query and
173           action.
174         - Implement "SearchCapabilities" and "SortCapabilities" related
175           queries and actions.
176         - Implement "FeatureList" related queries and actions.
177
178 2008-07-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
179
180         * data/xml/ContentDirectory.xml:
181
182         - List the required actions/variable before the optional.
183         - Comment out the optional actions and variables.
184
185 2008-07-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
186
187         * data/xml/Makefile.am:
188         * data/xml/description-xbox360.xml:
189         * data/xml/description.xml:
190
191         Disable the distribution and advertisement of the yet unimplemented
192         ConnectionManager service.
193
194 2008-07-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
195
196         * src/gupnp-media-tracker.vala:
197
198         A temporary hack to make Vala compiler free string in structs. We need
199         this untill GB#526552 is fixed.
200
201 2008-07-01  Zeeshan Ali Khattak  <zeenix@gmail.com>
202
203         * src/gupnp-media-tracker.vala:
204
205         - Refactor: separate functions for adding music, image and video items
206           to DIDL.
207         - Put the actual "album" in the DIDL when available.
208         - Put "dc:date" in the DIDL when available.
209         - No need to check for null on values returned from tracker.
210
211 2008-07-01  Zeeshan Ali Khattak  <zeenix@gmail.com>
212
213         * src/gupnp-media-tracker.vala:
214
215         - Include the author, creator or artist in the DIDL when available.
216         - Include "originalTrackNumber" in the DIDL for Music track objects.
217         - Indentation fix.
218
219 2008-06-30  Zeeshan Ali Khattak  <zeenix@gmail.com>
220
221         * configure.ac:
222
223         Export the "abs_top_builddir" explicitly. Some installations need it.
224
225 2008-06-30  Zeeshan Ali Khattak  <zeenix@gmail.com>
226
227         * src/gupnp-media-tracker.vala:
228
229         - Include the title instead of filename in the DIDL when it's available.
230         - tracker gives us empty string rather than null for each unavailable
231           metadata.
232
233 2008-06-29  Zeeshan Ali Khattak  <zeenix@gmail.com>
234
235         * src/gupnp-metadata-extractor.vala:
236
237         Put some more more comments and Refactor.
238
239 2008-06-27  Zeeshan Ali Khattak  <zeenix@gmail.com>
240
241         * src/gupnp-metadata-extractor.vala:
242
243         Extract the mime-type using GIO.
244
245 2008-06-27  Zeeshan Ali Khattak  <zeenix@gmail.com>
246
247         * configure.ac:
248         * src/Makefile.am:
249
250         Require gio-2.0 (>= 2.16) and include it in the build.
251
252 2008-06-27  Zeeshan Ali Khattak  <zeenix@gmail.com>
253
254         * src/gupnp-metadata-extractor.vala:
255
256         Implement extraction of audio and video specific metadata.
257
258 2008-06-26  Zeeshan Ali Khattak  <zeenix@gmail.com>
259
260         * src/gupnp-media-server.vala:
261
262         Correct the logic in MediaServer.set_friendly_name_and_udn (). The
263         values for UDN and FriendlyName were not set in the description doc if
264         not already present in the corresponding gconf keys.
265
266 2008-06-25  Zeeshan Ali Khattak  <zeenix@gmail.com>
267
268         * configure.ac:
269
270         Reduce the gstreamer dependency to 0.10.18.
271
272 2008-06-25  Zeeshan Ali Khattak  <zeenix@gmail.com>
273
274         * src/gupnp-metadata-extractor.vala:
275
276         - Use 'this' keyword wherever possible. This makes code much more
277           cleaner.
278         - Only react to PAUSED state-change if the previous state was READY.
279         - Refactor: A separate function for extraction of 'duration'.
280         - Gst.TagList.copy_value.value is 'out' rather than 'ref'.
281
282 2008-06-25  Zeeshan Ali Khattak  <zeenix@gmail.com>
283
284         * src/Makefile.am:
285         * src/gupnp-metadata-extractor.vala:
286
287         Add a gstreamer-based metadata extractor.
288
289 2008-06-25  Zeeshan Ali Khattak  <zeenix@gmail.com>
290
291         * configure.ac:
292         * src/Makefile.am:
293
294         Add dependency to gstreamer >= 0.10.19.
295
296 2008-06-24  Zeeshan Ali Khattak  <zeenix@gmail.com>
297
298         * src/gupnp-content-directory.vala:
299         * src/gupnp-media-receiver-registrar.vala:
300         * src/gupnp-media-server.vala:
301         * src/gupnp-media-tracker.vala:
302
303         Remove the now redundant 'using GLib' from all sources.
304
305 2008-06-24  Zeeshan Ali Khattak  <zeenix@gmail.com>
306
307         * src/gupnp-content-directory.vala:
308         * src/gupnp-media-receiver-registrar.vala:
309
310         Start using the new Vala syntax for connecting signals with details.
311
312 2008-06-23  Zeeshan Ali Khattak  <zeenix@gmail.com>
313
314         * src/gupnp-media-tracker.vala:
315
316         A small fix to setisfy the latest Vala compiler.
317
318 2008-06-16  Zeeshan Ali Khattak  <zeenix@gmail.com>
319
320         * src/gupnp-media-tracker.vala:
321
322         Make all constants all CAPS.
323
324 2008-06-15  Zeeshan Ali Khattak  <zeenix@gmail.com>
325
326         * configure.ac:
327
328         Check for gupnp-media-server.vala file rather than now removed main.c
329         file.
330
331 2008-06-15  Zeeshan Ali Khattak  <zeenix@gmail.com>
332
333         * src/Makefile.am:
334
335         Add the vala stamp file to CLEANFILES.
336
337 2008-06-15  Zeeshan Ali Khattak  <zeenix@gmail.com>
338
339         * src/Makefile.am:
340         * src/gupnp-media-server.vala:
341         * src/main.c:
342
343         Re-write the main module in Vala. The main module's code now resides
344         in MediaServer class as static methods. This marks the completion of
345         re-write of code in Vala. Yay!
346
347 2008-06-15  Zeeshan Ali Khattak  <zeenix@gmail.com>
348
349         * src/Makefile.am:
350         * src/cstuff.c:
351         * src/cstuff.h:
352         * src/cstuff.vapi:
353
354         Put all low-level stuff into a separate module. This module will be
355         the only one kept in C and all the code that currently can't be
356         written (easily) in Vala, will go there.
357
358 2008-06-13  Zeeshan Ali Khattak  <zeenix@gmail.com>
359
360         * configure.ac:
361         * src/Makefile.am:
362
363         Check for gconf-2.0 Vala bindings and add it to the Vala compiler
364         flags.
365
366 2008-06-13  Zeeshan Ali Khattak  <zeenix@gmail.com>
367
368         * configure.ac:
369
370         Introduce a separate configure option for a strict C compiler.
371
372 2008-06-13  Zeeshan Ali Khattak  <zeenix@gmail.com>
373
374         * src/Makefile.am:
375         * src/gupnp-media-server.c:
376         * src/gupnp-media-server.h:
377         * src/gupnp-media-server.vala:
378
379         Re-write the MediaServer class in Vala.
380
381 2008-06-12  Zeeshan Ali Khattak  <zeenix@gmail.com>
382
383         * src/gupnp-media-receiver-registrar.vala:
384
385         Add the copyright header.
386
387 2008-06-12  Zeeshan Ali Khattak  <zeenix@gmail.com>
388
389         * src/gupnp-media-tracker.vala:
390
391         - Use the nice and clean DBus API that Vala provides us.
392         - Enable the commented out code of get_container_children_count() now
393           that it's working against the latest Vala (svn trunk). MediaTracker
394           is fully functional again, yay!
395         - Correct a warning message (copy&paste mistake).
396
397 2008-06-12  Zeeshan Ali Khattak  <zeenix@gmail.com>
398
399         * src/gupnp-media-tracker.vala:
400
401         Correct the types of two parameters of MediaTracker.browse().
402
403 2008-06-12  Zeeshan Ali Khattak  <zeenix@gmail.com>
404
405         * src/Makefile.am:
406         * src/gupnp-content-directory.c:
407         * src/gupnp-content-directory.h:
408         * src/gupnp-content-directory.vala:
409
410         Re-write ContentDirectory implementation in Vala.
411
412 2008-06-11  Zeeshan Ali Khattak  <zeenix@gmail.com>
413
414         * configure.ac:
415
416         Require Vala >= 0.3.4.
417
418 2008-06-11  Zeeshan Ali Khattak  <zeenix@gmail.com>
419
420         * configure.ac:
421         * src/Makefile.am:
422         * src/gupnp-content-directory.c:
423         * src/gupnp-media-tracker.c:
424         * src/gupnp-media-tracker.h:
425         * src/gupnp-media-tracker.vala:
426
427         Re-write MediaTracker in Vala. Doesn't really work. Thanks to
428         dbus-glib bindings for Vala and tracker API.
429
430 2008-06-07  Zeeshan Ali Khattak  <zeenix@gmail.com>
431
432         * src/Makefile.am:
433         * src/gupnp-media-receiver-registrar.c:
434         * src/gupnp-media-receiver-registrar.h:
435         * src/gupnp-media-receiver-registrar.vala:
436
437         Re-write X_MS_MediaReceiverRegistrar implementation in Vala.
438
439 2008-06-07  Zeeshan Ali Khattak  <zeenix@gmail.com>
440
441         * configure.ac:
442
443         Check for Vala and GUPnP bindings.
444
445 2008-05-14  Zeeshan Ali Khattak  <zeenix@gmail.com>
446
447         * src/Makefile.am:
448         * src/gupnp-content-directory.c:
449         * src/gupnp-content-directory.h:
450         * src/gupnp-media-receiver-registrar.c:
451         * src/gupnp-media-receiver-registrar.h:
452         * src/gupnp-media-server.c:
453
454         Put the services implementations into separate objects.
455
456 2008-05-08  Zeeshan Ali Khattak  <zeenix@gmail.com>
457
458         * src/gupnp-media-tracker.c:
459
460         - Report the correct UPnP class of the items.
461         - Xbox wants Images container to have ID of '16'.
462         - Provide 'res@resultion' in DIDL XML for audio and video items.
463
464 2008-05-08  Zeeshan Ali Khattak  <zeenix@gmail.com>
465
466         * src/gupnp-media-tracker.c:
467
468         Quick security fix: only host the user's home dir. This should be OK
469         with most tracker setups since by default tracker only indexes user's
470         home dir.
471
472 2008-05-08  Zeeshan Ali Khattak  <zeenix@gmail.com>
473
474         * src/gupnp-media-tracker.c:
475
476         - Introduce a structure to hold container info: ID, title and
477           associated tracker category.
478         - Don't escape '/' in the path before putting it in HTTP URI.
479
480 2008-05-08  Zeeshan Ali Khattak  <zeenix@gmail.com>
481
482         * src/gupnp-media-server.c:
483
484         Xbox 360 uses 'ContainerID' instead of 'ObjectID' for cotainers.
485
486 2008-05-07  Zeeshan Ali Khattak  <zeenix@gmail.com>
487
488         * data/xml/Makefile.am:
489
490         Add the newly added xbox 360 specific xml files to build.
491
492 2008-05-07  Zeeshan Ali Khattak  <zeenix@gmail.com>
493
494         * data/xml/description-xbox360.xml:
495         * src/main.c:
496
497         Use a separate description document for Xbox 360 to keep the code
498         simple.
499
500 2008-05-07  Zeeshan Ali Khattak  <zeenix@gmail.com>
501
502         * src/gupnp-media-server.c:
503
504         Retrieve the services in version agnostic way.
505
506 2008-05-06  Zeeshan Ali Khattak  <zeenix@gmail.com>
507
508         * data/xml/X_MS_MediaReceiverRegistrar1.xml:
509         * data/xml/description.xml:
510         * src/gupnp-media-server.c:
511         * src/main.c:
512
513         Add basic support for Xbox.
514
515 2008-05-05  Zeeshan Ali Khattak  <zeenix@gmail.com>
516
517         * data/xml/description.xml:
518
519         Steal some more DLNA bits from rhythmbox GUPnP plugin.
520
521 2008-05-03  Zeeshan Ali Khattak  <zeenix@gmail.com>
522
523         * src/gupnp-media-tracker.c:
524
525         Adapt to latest didl writer API. We put a fake 'MP3' for all items in
526         the DLNA's PN field for each item. This should fix the playback of mp3
527         contents on DLNA-compliant MRs and CPs without breaking the playback of
528         non-mp3 contents on non-DLNA compliant MRs/CPs.
529
530 2008-05-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
531
532         * src/gupnp-media-tracker.c:
533
534         In Browse() implementation,
535         - respect 'StartingIndex' and 'RequestedCount' params.
536         - Never return more than 128 items in a single reply.
537
538 2008-05-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
539
540         * src/gupnp-media-tracker.c:
541
542         - Use tracker to get the number of items in a category.
543         - offset param to Files.GetByServiceType method is zero-based.
544
545 2008-05-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
546
547         * src/gupnp-media-tracker.c:
548
549         - Host the root directory rather than user's home directory since the
550           tracker URI's are absolute file paths and it could be tracking other
551           directories as well.
552         - Escape the path before making a URI from it.
553         - Remove an unneeded param from a function.
554
555 2008-05-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
556
557         * src/gupnp-media-tracker.c:
558
559         Start using tracker for fetching the list of media files.
560
561 2008-04-29  Zeeshan Ali Khattak  <zeenix@gmail.com>
562
563         * src/gupnp-media-tracker.c:
564
565         Fix a small typo.
566
567 2008-04-29  Zeeshan Ali Khattak  <zeenix@gmail.com>
568
569         * configure.ac:
570         * src/Makefile.am:
571         * src/gupnp-media-tracker.c:
572
573         Start using tracker for fetching the metadata.
574
575 2008-04-28  Zeeshan Ali Khattak  <zeenix@gmail.com>
576
577         * src/Makefile.am:
578         * src/gupnp-media-server.c:
579         * src/gupnp-media-tracker.c:
580         * src/gupnp-media-tracker.h:
581
582         Add skeleton for tracker-based media provider.
583
584 2008-04-23  Zeeshan Ali Khattak  <zeenix@gmail.com>
585
586         * TODO:
587         * doc/design.txt:
588
589         Remove first goal from TODO and update the design/plan.
590
591 2008-04-23  Zeeshan Ali Khattak  <zeenix@gmail.com>
592
593         * src/main.c:
594
595         - Fetch the UDN and friendlyname from gconf and set them to default
596           values if gconf keys aren't already set.
597         - No need to load the modified description document anymore.
598
599 2008-04-22  Zeeshan Ali Khattak  <zeenix@gmail.com>
600
601         * src/main.c:
602
603         Let the context choose the hostname/IP and port for us if not
604         specified in gconf.
605
606 2008-04-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
607
608         * src/gupnp-media-server.c:
609
610         - Implement 'BrowseMetadata'.
611         - Mime-type of mp3 files should be 'audio/mpeg' rather than
612         'audio/mp3'.
613         - Host user's home directory as '/media' and update paths accordingly.
614
615 2008-04-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
616
617         * configure.ac:
618         * data/Makefile.am:
619         * data/xml/Makefile.am:
620         * src/Makefile.am:
621
622         Update/fix the build system for our dummy MS.
623
624 2008-04-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
625
626         * src/gupnp-media-server.c:
627         * src/gupnp-media-server.h:
628         * src/main.c:
629
630         Implement a dummy MS.
631
632 2008-04-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
633
634         * src/gupnp-media-server.c:
635         * src/gupnp-media-server.h:
636
637         Update the copyright/licence header.
638
639 2008-04-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
640
641         * data/xml/ConnectionManager.xml:
642         * data/xml/ContentDirectory.xml:
643         * data/xml/description.xml:
644
645         - Advertise version 2 of MS and AV services.
646         - Some minor updates.
647
648 2008-04-13  Zeeshan Ali Khattak  <zeenix@gmail.com>
649
650         * doc/design.txt:
651
652         Simpler design:
653         - Rename MediaDb to MediaProvider.
654         - Replace MediaDbGroup and MediaDbPlugin by a single MediaDb.
655
656         * TODO:
657
658         Add TODO file and put the general plan in there.
659
660 2008-04-13  Zeeshan Ali Khattak  <zeenix@gmail.com>
661
662         * doc/design.txt:
663
664         Add some more objects and description to design doc.
665