Don't hide GUPnP context and D-Bus proxy objects.
[profile/ivi/rygel.git] / ChangeLog
1 2008-11-11  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
2
3         * src/media-providers/tracker/rygel-tracker-container.vala:
4
5         Don't hide GUPnP context and D-Bus proxy objects.
6
7 2008-11-11  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
8
9         * src/media-providers/tracker/rygel-media-tracker.vala:
10         * src/media-providers/tracker/rygel-tracker-container.vala:
11         * src/media-providers/tracker/rygel-tracker-image-item.vala:
12         * src/media-providers/tracker/rygel-tracker-music-item.vala:
13         * src/media-providers/tracker/rygel-tracker-video-item.vala:
14
15         Rename field/variable "tracker_category" to "category".
16
17 2008-11-11  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
18
19         * src/media-providers/tracker/Makefile.am:
20         * src/media-providers/tracker/rygel-tracker-image-item.vala:
21         * src/media-providers/tracker/rygel-tracker-item.vala:
22         * src/media-providers/tracker/rygel-tracker-music-item.vala:
23         * src/media-providers/tracker/rygel-tracker-video-item.vala:
24
25         Refactor: Put common Tracker item code into a separate abstract class.
26         All Tracker item classes now inherit from this class.
27
28 2008-11-11  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
29
30         * src/media-providers/tracker/Makefile.am:
31         * src/media-providers/tracker/rygel-tracker-container.vala:
32         * src/media-providers/tracker/rygel-tracker-image-item.vala:
33         * src/media-providers/tracker/rygel-tracker-music-item.vala:
34         * src/media-providers/tracker/rygel-tracker-video-item.vala:
35
36         Refactor: Separate classes for each item type. These tracker-specific
37         item classes are responsible for fetching their metadata and serializing
38         it.
39
40 2008-11-11  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
41
42         * src/media-providers/tracker/rygel-tracker-container.vala:
43
44         Declare private fields as private.
45
46 2008-11-11  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
47
48         * src/media-providers/tracker/rygel-media-tracker.vala:
49         * src/media-providers/tracker/rygel-tracker-container.vala:
50
51         Refactor: Add TrackerContainer.get_file_category(). Now MediaTracker
52         doesn't talk to tracker directly.
53
54 2008-11-11  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
55
56         * data/xml/ConnectionManager.xml:
57         * data/xml/ContentDirectory.xml:
58         * data/xml/X_MS_MediaReceiverRegistrar1.xml:
59
60         More standard-compliant SCPDs. Based on a patch by Ross Burton
61         <ross@opennedhand.com>
62
63 2008-11-11  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
64
65         * src/media-providers/tracker/rygel-media-tracker.vala:
66
67         Create root container after it's children. This is to pass the correct
68         number of children to the constructor of the root container.
69
70 2008-11-10  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
71
72         * src/media-providers/tracker/rygel-media-tracker.vala:
73         * src/media-providers/tracker/rygel-tracker-container.vala:
74
75         Refactor: A more intelligent TrackerContainer. As a result, MediaTracker
76         class is now very slim.
77
78 2008-11-10  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
79
80         * AUTHORS:
81         * src/media-server/cstuff.c:
82         * src/media-server/cstuff.h:
83
84         Replace my non-working "@gstreamer.net" email with "@gnome.org" one.
85
86 2008-10-29  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
87
88         * src/media-server/rygel-media-manager.vala:
89         * src/media-server/rygel-metadata-extractor.vala:
90
91         File.query_info () doesn't return a weak anymore.
92
93 2008-10-26  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
94
95         * MAINTAINERS:
96
97         Add MAINTAINERS file.
98
99 2008-10-26  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
100
101         * README:
102         * configure.ac:
103         * data/xml/Makefile.am:
104         * data/xml/description-xbox360.xml:
105         * data/xml/description.xml:
106         * doc/design.txt:
107         * src/media-providers/tracker/Makefile.am:
108         * src/media-providers/tracker/gupnp-media-tracker.vala:
109         * src/media-providers/tracker/gupnp-tracker-container.vala:
110         * src/media-providers/tracker/gupnp-tracker-plugin.vala:
111         * src/media-providers/tracker/rygel-media-tracker.vala:
112         * src/media-providers/tracker/rygel-tracker-container.vala:
113         * src/media-providers/tracker/rygel-tracker-plugin.vala:
114         * src/media-server/Makefile.am:
115         * src/media-server/gupnp-connection-manager.vala:
116         * src/media-server/gupnp-content-directory.vala:
117         * src/media-server/gupnp-media-container.vala:
118         * src/media-server/gupnp-media-item.vala:
119         * src/media-server/gupnp-media-manager.vala:
120         * src/media-server/gupnp-media-object.vala:
121         * src/media-server/gupnp-media-provider.vala:
122         * src/media-server/gupnp-media-receiver-registrar.vala:
123         * src/media-server/gupnp-media-server.vala:
124         * src/media-server/gupnp-metadata-extractor.vala:
125         * src/media-server/rygel-connection-manager.vala:
126         * src/media-server/rygel-content-directory.vala:
127         * src/media-server/rygel-media-container.vala:
128         * src/media-server/rygel-media-item.vala:
129         * src/media-server/rygel-media-manager.vala:
130         * src/media-server/rygel-media-object.vala:
131         * src/media-server/rygel-media-provider.vala:
132         * src/media-server/rygel-media-receiver-registrar.vala:
133         * src/media-server/rygel-media-server.vala:
134         * src/media-server/rygel-metadata-extractor.vala:
135
136         Project renamed to "Rygel" to be moved to GNOME SVN.
137
138 2008-09-08  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
139
140         * src/media-providers/tracker/Makefile.am:
141         * src/media-providers/tracker/gupnp-media-tracker.vala:
142         * src/media-providers/tracker/gupnp-tracker-plugin.vala:
143
144         Refactor: Put plugin stuff into a separate module.
145
146 2008-09-08  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
147
148         * src/media-providers/tracker/Makefile.am:
149         * src/media-providers/tracker/gupnp-media-tracker.vala:
150         * src/media-providers/tracker/gupnp-tracker-container.vala:
151
152         Refactor: Put TrackerContainer class into a separate module.
153
154 2008-09-08  Zeeshan Ali (Khattak)  <zeeshanak@gnome.org>
155
156         * src/media-providers/tracker/gupnp-media-tracker.vala:
157
158         Rename Tracker.Container to GUPnP.TrackerContainer.
159
160 2008-08-31  Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
161
162         * src/media-providers/tracker/gupnp-media-tracker.vala:
163         * src/media-server/gupnp-media-manager.vala:
164
165         Create the root container in the contructor of the media providers.
166
167 2008-08-30  Zeeshan Ali Khattak  <zeenix@gmail.com>
168
169         * src/media-providers/tracker/gupnp-media-tracker.vala:
170
171         Remove the redundant 'title' field from the Tracker.Container class.
172
173 2008-08-29  Zeeshan Ali Khattak  <zeenix@gmail.com>
174
175         * src/media-server/gupnp-media-item.vala:
176
177         Introduce a class for media items.
178
179         * src/media-server/Makefile.am:
180
181         Add MediaItem to vapi file and build.
182
183         * src/media-providers/tracker/gupnp-media-tracker.vala:
184
185         Start utilizing the MediaContainer class in MediaTracker.
186
187 2008-08-29  Zeeshan Ali Khattak  <zeenix@gmail.com>
188
189         * src/media-server/gupnp-media-object.vala:
190
191         Introduce a new abstract class for media objects. It will be the
192         responsibility of derived classes to implement serializing to
193         DIDLLiteWriter.
194
195         * src/media-server/gupnp-media-container.vala:
196
197         Introduce a class for media containers.
198
199         * src/media-server/Makefile.am:
200
201         Add MediaObject and MediaContainer to vapi file and build.
202
203         * src/media-providers/tracker/gupnp-media-tracker.vala:
204         * src/media-server/gupnp-media-manager.vala:
205
206         Start utilizing the MediaContainer class in media providers.
207
208 2008-08-29  Zeeshan Ali Khattak  <zeenix@gmail.com>
209
210         * src/media-providers/tracker/gupnp-media-tracker.vala:
211
212         - Keep the parent_id of the container in the Tracker.Container class.
213         - Add the root_id prefix to container's id at object creation time.
214
215 2008-08-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
216
217         * src/media-providers/tracker/gupnp-media-tracker.vala:
218         * src/media-server/gupnp-media-manager.vala:
219         * src/media-server/gupnp-media-provider.vala:
220
221         Remove MediaProvider.get_root_children_count() and allow each provider
222         to add metadata of it's root container to DIDL instead.
223
224 2008-08-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
225
226         * src/media-server/gupnp-media-manager.vala:
227
228         Rename MediaManger's get_root_container_metadata() to
229         add_root_container_metadata().
230
231 2008-08-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
232
233         * src/media-server/gupnp-content-directory.vala:
234
235         Put the code and message from exception caught on the action error.
236
237 2008-08-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
238
239         * src/media-server/gupnp-media-provider.vala:
240
241         Assign a specific code (701) to "No such object" error.
242
243 2008-08-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
244
245         * src/media-server/gupnp-media-manager.vala:
246
247         Rename MediaManager's browse_root_container() to add_root_children().
248
249 2008-08-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
250
251         * src/media-providers/tracker/gupnp-media-tracker.vala:
252         * src/media-server/gupnp-content-directory.vala:
253         * src/media-server/gupnp-media-manager.vala:
254         * src/media-server/gupnp-media-provider.vala:
255
256         - Rename MediaProvider's get_metadata() to add_metadata().
257         - Rename MediaProvider's browse() to add_children_metadata().
258
259 2008-08-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
260
261         * src/media-providers/tracker/gupnp-media-tracker.vala:
262         * src/media-server/gupnp-content-directory.vala:
263         * src/media-server/gupnp-media-manager.vala:
264         * src/media-server/gupnp-media-provider.vala:
265
266         MediaProviders now get a DIDLiteWriter to add metadata to and no longer
267         return didl strings.
268
269 2008-08-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
270
271         * src/media-server/gupnp-media-manager.vala:
272
273         Remove an unneeded try&catch block.
274
275 2008-08-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
276
277         * src/media-server/Makefile.am:
278
279         MediaProvider class now requires gupnp-av package.
280
281 2008-08-17  Zeeshan Ali Khattak  <zeenix@gmail.com>
282
283         * src/media-providers/tracker/gupnp-media-tracker.vala:
284         * src/media-server/gupnp-content-directory.vala:
285         * src/media-server/gupnp-media-manager.vala:
286         * src/media-server/gupnp-media-provider.vala:
287
288         Use Exceptions rather than returning null.
289
290 2008-08-17  Zeeshan Ali Khattak  <zeenix@gmail.com>
291
292         * src/media-server/gupnp-media-server.vala:
293
294         Use real name of the user rather than username in FriendlyName.
295
296 2008-08-17  Zeeshan Ali Khattak  <zeenix@gmail.com>
297
298         * src/media-providers/tracker/gupnp-media-tracker.vala:
299         * src/media-server/gupnp-media-manager.vala:
300         * src/media-server/gupnp-media-provider.vala:
301
302         Make MediaProvider an abstract class rather than interface. We will have
303         to do this at some point anyway to put common functionality into this
304         module but the real reason to do this right now is that support for
305         constuct-only props in interfaces was recenlty dropped in Vala (for good
306         reasons).
307
308 2008-08-17  Zeeshan Ali Khattak  <zeenix@gmail.com>
309
310         * src/media-server/gupnp-media-provider.vala:
311
312         Put MediaProvider in GUPnP namespace.
313
314 2008-08-05  Zeeshan Ali Khattak  <zeenix@gmail.com>
315
316         * configure.ac:
317         * src/Makefile.am:
318         * src/cstuff.c:
319         * src/cstuff.h:
320         * src/cstuff.vapi:
321         * src/gupnp-connection-manager.vala:
322         * src/gupnp-content-directory.vala:
323         * src/gupnp-media-manager.vala:
324         * src/gupnp-media-provider.vala:
325         * src/gupnp-media-receiver-registrar.vala:
326         * src/gupnp-media-server.vala:
327         * src/gupnp-metadata-extractor.vala:
328         * src/media-providers/tracker/Makefile.am:
329         * src/media-server/Makefile.am:
330         * src/media-server/cstuff.c:
331         * src/media-server/cstuff.h:
332         * src/media-server/cstuff.vapi:
333         * src/media-server/gupnp-connection-manager.vala:
334         * src/media-server/gupnp-content-directory.vala:
335         * src/media-server/gupnp-media-manager.vala:
336         * src/media-server/gupnp-media-provider.vala:
337         * src/media-server/gupnp-media-receiver-registrar.vala:
338         * src/media-server/gupnp-media-server.vala:
339         * src/media-server/gupnp-metadata-extractor.vala:
340
341         Move the core Media Server code into a separate subdirectory.
342
343 2008-08-05  Zeeshan Ali Khattak  <zeenix@gmail.com>
344
345         * src/media-providers/Makefile.am:
346
347         Remove Makefile.in on 'make maintainer-clean'.
348
349 2008-08-05  Zeeshan Ali Khattak  <zeenix@gmail.com>
350
351         * src/gupnp-media-manager.vala:
352
353         - Better/recursive GIO-based plugin loading.
354         - Replace random ID generation function by a GQuark-based (persistant)
355           one.
356
357 2008-08-05  Zeeshan Ali Khattak  <zeenix@gmail.com>
358
359         * configure.ac:
360
361         Disable generation of static libraries.
362
363 2008-08-05  Zeeshan Ali Khattak  <zeenix@gmail.com>
364
365         * configure.ac:
366         * src/Makefile.am:
367         * src/media-providers/Makefile.am:
368         * src/media-providers/tracker/Makefile.am:
369         * src/media-providers/tracker/gupnp-media-tracker.vala:
370
371         Re-introduce MediaTracker as a plugin.
372
373 2008-08-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
374
375         * src/Makefile.am:
376         * src/cstuff.vapi:
377         * src/gupnp-media-manager.vala:
378         * src/gupnp-media-tracker.vala:
379
380         - Introduce a plugins system. Ross should be happy now. :)
381         - Remove MediaTracker module.
382
383 2008-08-03  Zeeshan Ali Khattak  <zeenix@gmail.com>
384
385         * src/gupnp-media-manager.vala:
386         * src/gupnp-media-provider.vala:
387         * src/gupnp-media-tracker.vala:
388
389         - Add "title" prop to MediaProvider interface.
390         - Add get_root_children_count() to MediaProvider interface.
391
392 2008-08-03  Zeeshan Ali Khattak  <zeenix@gmail.com>
393
394         * src/gupnp-media-tracker.vala:
395
396         - Correct a typo. Now we export the ID of the container in the format we
397           need to export it in.
398         - No need for MediaManager to prefix IDs with root_id.
399         - Pass ID as is to browse() and get_metadata() of media providers.
400         - Get the root ID prefix from IDs rather than removing it.
401         - Don't add root ID prefix to root parent ID.
402
403 2008-08-03  Zeeshan Ali Khattak  <zeenix@gmail.com>
404
405         * src/gupnp-content-directory.vala:
406         * src/gupnp-media-manager.vala:
407         * src/gupnp-media-provider.vala:
408         * src/gupnp-media-tracker.vala:
409
410         - MediaProviders now get the "root_parent_id" though a prop.
411         - MediaManager now decides the IDs to use on it's own.
412
413 2008-08-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
414
415         * src/gupnp-content-directory.vala:
416
417         Use MediaManager rather than MediaTracker. This also means that
418         system_update_id doesn't need to be handled by ContentDirectory
419         anymore.
420
421 2008-08-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
422
423         * src/Makefile.am:
424         * src/gupnp-media-manager.vala:
425
426         Introduce MediaManager. It implements MediaProvider interface and will
427         be responsible to manage all MediaProviders. Currently it uses
428         MediaTracker directly since it currently doesn't have a plugin system.
429
430 2008-07-31  Zeeshan Ali Khattak  <zeenix@gmail.com>
431
432         * src/gupnp-media-tracker.vala:
433
434         Each MediaProvider prefixes each objectid with "root-id:". This will
435         allow the ContentDirectory to redirect the Browse requests to the
436         appropriate MediaProvider in a simple/efficient way.
437
438 2008-07-30  Zeeshan Ali Khattak  <zeenix@gmail.com>
439
440         * src/Makefile.am:
441         * src/gupnp-media-provider.vala:
442         * src/gupnp-media-tracker.vala:
443
444         Introduce MediaProvider interface that MediaTracker
445         implements.
446
447 2008-07-18  Zeeshan Ali Khattak  <zeenix@gmail.com>
448
449         * src/gupnp-connection-manager.vala:
450
451         No need to list all supported mimetypes in SourceProtocolInfo.
452
453 2008-07-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
454
455         * src/Makefile.am:
456
457         - Fix a typo.
458         - Declared all built sources in BUILT_SOURCES.
459
460 2008-07-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
461
462         * NEWS:
463
464         Prepare NEWS file for initial (0.1) release.
465
466 2008-07-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
467
468         * TODO:
469         * doc/design.txt:
470
471         Update design doc and TODO files.
472
473 2008-07-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
474
475         * src/gupnp-connection-manager.vala:
476
477         - Swap the sink and source ProtocolInfo.
478         - Use Vala's syntax for connecting signals with details.
479         - Remove the unused commented-out code.
480         - Initialize the variables in the constructor.
481         - Put my name/copyright in the header.
482
483 2008-07-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
484
485         * data/xml/Makefile.am:
486         * data/xml/description.xml:
487         * src/gupnp-media-server.vala:
488
489         Enable the ConnectionManager service.
490
491 2008-07-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
492
493         * src/Makefile.am:
494         * src/gupnp-connection-manager.vala:
495
496         Copy the ConnectionManager code from gupnp-media-renderer.
497
498 2008-07-04  Zeeshan Ali Khattak  <zeenix@gmail.com>
499
500         * README:
501
502         Put some description in README file.
503
504 2008-07-03  Zeeshan Ali Khattak  <zeenix@gmail.com>
505
506         * src/gupnp-content-directory.vala:
507
508         Return an error on getting invalid arguments for 'Browse'.
509
510 2008-07-03  Zeeshan Ali Khattak  <zeenix@gmail.com>
511
512         * src/gupnp-content-directory.vala:
513
514         Argument 'value' of query_variable signal should now be declared 'ref'.
515
516 2008-07-03  Zeeshan Ali Khattak  <zeenix@gmail.com>
517
518         * src/gupnp-media-tracker.vala:
519
520         Provide the 'creator' tag in DIDL xml for all items. The same value is
521         provided in 'author' and 'artist' tags for music and video items
522         respectively.
523
524 2008-07-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
525
526         * data/xml/ContentDirectory.xml:
527
528         Hide the optional "GetSortExtensionCapabilities" action as well.
529
530 2008-07-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
531
532         * src/gupnp-content-directory.vala:
533
534         - Initialize "SystemUpdateID" variable and implement related query and
535           action.
536         - Implement "SearchCapabilities" and "SortCapabilities" related
537           queries and actions.
538         - Implement "FeatureList" related queries and actions.
539
540 2008-07-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
541
542         * data/xml/ContentDirectory.xml:
543
544         - List the required actions/variable before the optional.
545         - Comment out the optional actions and variables.
546
547 2008-07-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
548
549         * data/xml/Makefile.am:
550         * data/xml/description-xbox360.xml:
551         * data/xml/description.xml:
552
553         Disable the distribution and advertisement of the yet unimplemented
554         ConnectionManager service.
555
556 2008-07-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
557
558         * src/gupnp-media-tracker.vala:
559
560         A temporary hack to make Vala compiler free string in structs. We need
561         this untill GB#526552 is fixed.
562
563 2008-07-01  Zeeshan Ali Khattak  <zeenix@gmail.com>
564
565         * src/gupnp-media-tracker.vala:
566
567         - Refactor: separate functions for adding music, image and video items
568           to DIDL.
569         - Put the actual "album" in the DIDL when available.
570         - Put "dc:date" in the DIDL when available.
571         - No need to check for null on values returned from tracker.
572
573 2008-07-01  Zeeshan Ali Khattak  <zeenix@gmail.com>
574
575         * src/gupnp-media-tracker.vala:
576
577         - Include the author, creator or artist in the DIDL when available.
578         - Include "originalTrackNumber" in the DIDL for Music track objects.
579         - Indentation fix.
580
581 2008-06-30  Zeeshan Ali Khattak  <zeenix@gmail.com>
582
583         * configure.ac:
584
585         Export the "abs_top_builddir" explicitly. Some installations need it.
586
587 2008-06-30  Zeeshan Ali Khattak  <zeenix@gmail.com>
588
589         * src/gupnp-media-tracker.vala:
590
591         - Include the title instead of filename in the DIDL when it's available.
592         - tracker gives us empty string rather than null for each unavailable
593           metadata.
594
595 2008-06-29  Zeeshan Ali Khattak  <zeenix@gmail.com>
596
597         * src/gupnp-metadata-extractor.vala:
598
599         Put some more more comments and Refactor.
600
601 2008-06-27  Zeeshan Ali Khattak  <zeenix@gmail.com>
602
603         * src/gupnp-metadata-extractor.vala:
604
605         Extract the mime-type using GIO.
606
607 2008-06-27  Zeeshan Ali Khattak  <zeenix@gmail.com>
608
609         * configure.ac:
610         * src/Makefile.am:
611
612         Require gio-2.0 (>= 2.16) and include it in the build.
613
614 2008-06-27  Zeeshan Ali Khattak  <zeenix@gmail.com>
615
616         * src/gupnp-metadata-extractor.vala:
617
618         Implement extraction of audio and video specific metadata.
619
620 2008-06-26  Zeeshan Ali Khattak  <zeenix@gmail.com>
621
622         * src/gupnp-media-server.vala:
623
624         Correct the logic in MediaServer.set_friendly_name_and_udn (). The
625         values for UDN and FriendlyName were not set in the description doc if
626         not already present in the corresponding gconf keys.
627
628 2008-06-25  Zeeshan Ali Khattak  <zeenix@gmail.com>
629
630         * configure.ac:
631
632         Reduce the gstreamer dependency to 0.10.18.
633
634 2008-06-25  Zeeshan Ali Khattak  <zeenix@gmail.com>
635
636         * src/gupnp-metadata-extractor.vala:
637
638         - Use 'this' keyword wherever possible. This makes code much more
639           cleaner.
640         - Only react to PAUSED state-change if the previous state was READY.
641         - Refactor: A separate function for extraction of 'duration'.
642         - Gst.TagList.copy_value.value is 'out' rather than 'ref'.
643
644 2008-06-25  Zeeshan Ali Khattak  <zeenix@gmail.com>
645
646         * src/Makefile.am:
647         * src/gupnp-metadata-extractor.vala:
648
649         Add a gstreamer-based metadata extractor.
650
651 2008-06-25  Zeeshan Ali Khattak  <zeenix@gmail.com>
652
653         * configure.ac:
654         * src/Makefile.am:
655
656         Add dependency to gstreamer >= 0.10.19.
657
658 2008-06-24  Zeeshan Ali Khattak  <zeenix@gmail.com>
659
660         * src/gupnp-content-directory.vala:
661         * src/gupnp-media-receiver-registrar.vala:
662         * src/gupnp-media-server.vala:
663         * src/gupnp-media-tracker.vala:
664
665         Remove the now redundant 'using GLib' from all sources.
666
667 2008-06-24  Zeeshan Ali Khattak  <zeenix@gmail.com>
668
669         * src/gupnp-content-directory.vala:
670         * src/gupnp-media-receiver-registrar.vala:
671
672         Start using the new Vala syntax for connecting signals with details.
673
674 2008-06-23  Zeeshan Ali Khattak  <zeenix@gmail.com>
675
676         * src/gupnp-media-tracker.vala:
677
678         A small fix to setisfy the latest Vala compiler.
679
680 2008-06-16  Zeeshan Ali Khattak  <zeenix@gmail.com>
681
682         * src/gupnp-media-tracker.vala:
683
684         Make all constants all CAPS.
685
686 2008-06-15  Zeeshan Ali Khattak  <zeenix@gmail.com>
687
688         * configure.ac:
689
690         Check for gupnp-media-server.vala file rather than now removed main.c
691         file.
692
693 2008-06-15  Zeeshan Ali Khattak  <zeenix@gmail.com>
694
695         * src/Makefile.am:
696
697         Add the vala stamp file to CLEANFILES.
698
699 2008-06-15  Zeeshan Ali Khattak  <zeenix@gmail.com>
700
701         * src/Makefile.am:
702         * src/gupnp-media-server.vala:
703         * src/main.c:
704
705         Re-write the main module in Vala. The main module's code now resides
706         in MediaServer class as static methods. This marks the completion of
707         re-write of code in Vala. Yay!
708
709 2008-06-15  Zeeshan Ali Khattak  <zeenix@gmail.com>
710
711         * src/Makefile.am:
712         * src/cstuff.c:
713         * src/cstuff.h:
714         * src/cstuff.vapi:
715
716         Put all low-level stuff into a separate module. This module will be
717         the only one kept in C and all the code that currently can't be
718         written (easily) in Vala, will go there.
719
720 2008-06-13  Zeeshan Ali Khattak  <zeenix@gmail.com>
721
722         * configure.ac:
723         * src/Makefile.am:
724
725         Check for gconf-2.0 Vala bindings and add it to the Vala compiler
726         flags.
727
728 2008-06-13  Zeeshan Ali Khattak  <zeenix@gmail.com>
729
730         * configure.ac:
731
732         Introduce a separate configure option for a strict C compiler.
733
734 2008-06-13  Zeeshan Ali Khattak  <zeenix@gmail.com>
735
736         * src/Makefile.am:
737         * src/gupnp-media-server.c:
738         * src/gupnp-media-server.h:
739         * src/gupnp-media-server.vala:
740
741         Re-write the MediaServer class in Vala.
742
743 2008-06-12  Zeeshan Ali Khattak  <zeenix@gmail.com>
744
745         * src/gupnp-media-receiver-registrar.vala:
746
747         Add the copyright header.
748
749 2008-06-12  Zeeshan Ali Khattak  <zeenix@gmail.com>
750
751         * src/gupnp-media-tracker.vala:
752
753         - Use the nice and clean DBus API that Vala provides us.
754         - Enable the commented out code of get_container_children_count() now
755           that it's working against the latest Vala (svn trunk). MediaTracker
756           is fully functional again, yay!
757         - Correct a warning message (copy&paste mistake).
758
759 2008-06-12  Zeeshan Ali Khattak  <zeenix@gmail.com>
760
761         * src/gupnp-media-tracker.vala:
762
763         Correct the types of two parameters of MediaTracker.browse().
764
765 2008-06-12  Zeeshan Ali Khattak  <zeenix@gmail.com>
766
767         * src/Makefile.am:
768         * src/gupnp-content-directory.c:
769         * src/gupnp-content-directory.h:
770         * src/gupnp-content-directory.vala:
771
772         Re-write ContentDirectory implementation in Vala.
773
774 2008-06-11  Zeeshan Ali Khattak  <zeenix@gmail.com>
775
776         * configure.ac:
777
778         Require Vala >= 0.3.4.
779
780 2008-06-11  Zeeshan Ali Khattak  <zeenix@gmail.com>
781
782         * configure.ac:
783         * src/Makefile.am:
784         * src/gupnp-content-directory.c:
785         * src/gupnp-media-tracker.c:
786         * src/gupnp-media-tracker.h:
787         * src/gupnp-media-tracker.vala:
788
789         Re-write MediaTracker in Vala. Doesn't really work. Thanks to
790         dbus-glib bindings for Vala and tracker API.
791
792 2008-06-07  Zeeshan Ali Khattak  <zeenix@gmail.com>
793
794         * src/Makefile.am:
795         * src/gupnp-media-receiver-registrar.c:
796         * src/gupnp-media-receiver-registrar.h:
797         * src/gupnp-media-receiver-registrar.vala:
798
799         Re-write X_MS_MediaReceiverRegistrar implementation in Vala.
800
801 2008-06-07  Zeeshan Ali Khattak  <zeenix@gmail.com>
802
803         * configure.ac:
804
805         Check for Vala and GUPnP bindings.
806
807 2008-05-14  Zeeshan Ali Khattak  <zeenix@gmail.com>
808
809         * src/Makefile.am:
810         * src/gupnp-content-directory.c:
811         * src/gupnp-content-directory.h:
812         * src/gupnp-media-receiver-registrar.c:
813         * src/gupnp-media-receiver-registrar.h:
814         * src/gupnp-media-server.c:
815
816         Put the services implementations into separate objects.
817
818 2008-05-08  Zeeshan Ali Khattak  <zeenix@gmail.com>
819
820         * src/gupnp-media-tracker.c:
821
822         - Report the correct UPnP class of the items.
823         - Xbox wants Images container to have ID of '16'.
824         - Provide 'res@resultion' in DIDL XML for audio and video items.
825
826 2008-05-08  Zeeshan Ali Khattak  <zeenix@gmail.com>
827
828         * src/gupnp-media-tracker.c:
829
830         Quick security fix: only host the user's home dir. This should be OK
831         with most tracker setups since by default tracker only indexes user's
832         home dir.
833
834 2008-05-08  Zeeshan Ali Khattak  <zeenix@gmail.com>
835
836         * src/gupnp-media-tracker.c:
837
838         - Introduce a structure to hold container info: ID, title and
839           associated tracker category.
840         - Don't escape '/' in the path before putting it in HTTP URI.
841
842 2008-05-08  Zeeshan Ali Khattak  <zeenix@gmail.com>
843
844         * src/gupnp-media-server.c:
845
846         Xbox 360 uses 'ContainerID' instead of 'ObjectID' for cotainers.
847
848 2008-05-07  Zeeshan Ali Khattak  <zeenix@gmail.com>
849
850         * data/xml/Makefile.am:
851
852         Add the newly added xbox 360 specific xml files to build.
853
854 2008-05-07  Zeeshan Ali Khattak  <zeenix@gmail.com>
855
856         * data/xml/description-xbox360.xml:
857         * src/main.c:
858
859         Use a separate description document for Xbox 360 to keep the code
860         simple.
861
862 2008-05-07  Zeeshan Ali Khattak  <zeenix@gmail.com>
863
864         * src/gupnp-media-server.c:
865
866         Retrieve the services in version agnostic way.
867
868 2008-05-06  Zeeshan Ali Khattak  <zeenix@gmail.com>
869
870         * data/xml/X_MS_MediaReceiverRegistrar1.xml:
871         * data/xml/description.xml:
872         * src/gupnp-media-server.c:
873         * src/main.c:
874
875         Add basic support for Xbox.
876
877 2008-05-05  Zeeshan Ali Khattak  <zeenix@gmail.com>
878
879         * data/xml/description.xml:
880
881         Steal some more DLNA bits from rhythmbox GUPnP plugin.
882
883 2008-05-03  Zeeshan Ali Khattak  <zeenix@gmail.com>
884
885         * src/gupnp-media-tracker.c:
886
887         Adapt to latest didl writer API. We put a fake 'MP3' for all items in
888         the DLNA's PN field for each item. This should fix the playback of mp3
889         contents on DLNA-compliant MRs and CPs without breaking the playback of
890         non-mp3 contents on non-DLNA compliant MRs/CPs.
891
892 2008-05-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
893
894         * src/gupnp-media-tracker.c:
895
896         In Browse() implementation,
897         - respect 'StartingIndex' and 'RequestedCount' params.
898         - Never return more than 128 items in a single reply.
899
900 2008-05-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
901
902         * src/gupnp-media-tracker.c:
903
904         - Use tracker to get the number of items in a category.
905         - offset param to Files.GetByServiceType method is zero-based.
906
907 2008-05-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
908
909         * src/gupnp-media-tracker.c:
910
911         - Host the root directory rather than user's home directory since the
912           tracker URI's are absolute file paths and it could be tracking other
913           directories as well.
914         - Escape the path before making a URI from it.
915         - Remove an unneeded param from a function.
916
917 2008-05-02  Zeeshan Ali Khattak  <zeenix@gmail.com>
918
919         * src/gupnp-media-tracker.c:
920
921         Start using tracker for fetching the list of media files.
922
923 2008-04-29  Zeeshan Ali Khattak  <zeenix@gmail.com>
924
925         * src/gupnp-media-tracker.c:
926
927         Fix a small typo.
928
929 2008-04-29  Zeeshan Ali Khattak  <zeenix@gmail.com>
930
931         * configure.ac:
932         * src/Makefile.am:
933         * src/gupnp-media-tracker.c:
934
935         Start using tracker for fetching the metadata.
936
937 2008-04-28  Zeeshan Ali Khattak  <zeenix@gmail.com>
938
939         * src/Makefile.am:
940         * src/gupnp-media-server.c:
941         * src/gupnp-media-tracker.c:
942         * src/gupnp-media-tracker.h:
943
944         Add skeleton for tracker-based media provider.
945
946 2008-04-23  Zeeshan Ali Khattak  <zeenix@gmail.com>
947
948         * TODO:
949         * doc/design.txt:
950
951         Remove first goal from TODO and update the design/plan.
952
953 2008-04-23  Zeeshan Ali Khattak  <zeenix@gmail.com>
954
955         * src/main.c:
956
957         - Fetch the UDN and friendlyname from gconf and set them to default
958           values if gconf keys aren't already set.
959         - No need to load the modified description document anymore.
960
961 2008-04-22  Zeeshan Ali Khattak  <zeenix@gmail.com>
962
963         * src/main.c:
964
965         Let the context choose the hostname/IP and port for us if not
966         specified in gconf.
967
968 2008-04-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
969
970         * src/gupnp-media-server.c:
971
972         - Implement 'BrowseMetadata'.
973         - Mime-type of mp3 files should be 'audio/mpeg' rather than
974         'audio/mp3'.
975         - Host user's home directory as '/media' and update paths accordingly.
976
977 2008-04-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
978
979         * configure.ac:
980         * data/Makefile.am:
981         * data/xml/Makefile.am:
982         * src/Makefile.am:
983
984         Update/fix the build system for our dummy MS.
985
986 2008-04-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
987
988         * src/gupnp-media-server.c:
989         * src/gupnp-media-server.h:
990         * src/main.c:
991
992         Implement a dummy MS.
993
994 2008-04-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
995
996         * src/gupnp-media-server.c:
997         * src/gupnp-media-server.h:
998
999         Update the copyright/licence header.
1000
1001 2008-04-21  Zeeshan Ali Khattak  <zeenix@gmail.com>
1002
1003         * data/xml/ConnectionManager.xml:
1004         * data/xml/ContentDirectory.xml:
1005         * data/xml/description.xml:
1006
1007         - Advertise version 2 of MS and AV services.
1008         - Some minor updates.
1009
1010 2008-04-13  Zeeshan Ali Khattak  <zeenix@gmail.com>
1011
1012         * doc/design.txt:
1013
1014         Simpler design:
1015         - Rename MediaDb to MediaProvider.
1016         - Replace MediaDbGroup and MediaDbPlugin by a single MediaDb.
1017
1018         * TODO:
1019
1020         Add TODO file and put the general plan in there.
1021
1022 2008-04-13  Zeeshan Ali Khattak  <zeenix@gmail.com>
1023
1024         * doc/design.txt:
1025
1026         Add some more objects and description to design doc.
1027