1 2008-08-17 Zeeshan Ali Khattak <zeenix@gmail.com>
3 * src/media-providers/tracker/gupnp-media-tracker.vala:
4 * src/media-server/gupnp-content-directory.vala:
5 * src/media-server/gupnp-media-manager.vala:
6 * src/media-server/gupnp-media-provider.vala:
8 Use Exceptions rather than returning null.
10 2008-08-17 Zeeshan Ali Khattak <zeenix@gmail.com>
12 * src/media-server/gupnp-media-server.vala:
14 Use real name of the user rather than username in FriendlyName.
16 2008-08-17 Zeeshan Ali Khattak <zeenix@gmail.com>
18 * src/media-providers/tracker/gupnp-media-tracker.vala:
19 * src/media-server/gupnp-media-manager.vala:
20 * src/media-server/gupnp-media-provider.vala:
22 Make MediaProvider an abstract class rather than interface. We will have
23 to do this at some point anyway to put common functionality into this
24 module but the real reason to do this right now is that support for
25 constuct-only props in interfaces was recenlty dropped in Vala (for good
28 2008-08-17 Zeeshan Ali Khattak <zeenix@gmail.com>
30 * src/media-server/gupnp-media-provider.vala:
32 Put MediaProvider in GUPnP namespace.
34 2008-08-05 Zeeshan Ali Khattak <zeenix@gmail.com>
41 * src/gupnp-connection-manager.vala:
42 * src/gupnp-content-directory.vala:
43 * src/gupnp-media-manager.vala:
44 * src/gupnp-media-provider.vala:
45 * src/gupnp-media-receiver-registrar.vala:
46 * src/gupnp-media-server.vala:
47 * src/gupnp-metadata-extractor.vala:
48 * src/media-providers/tracker/Makefile.am:
49 * src/media-server/Makefile.am:
50 * src/media-server/cstuff.c:
51 * src/media-server/cstuff.h:
52 * src/media-server/cstuff.vapi:
53 * src/media-server/gupnp-connection-manager.vala:
54 * src/media-server/gupnp-content-directory.vala:
55 * src/media-server/gupnp-media-manager.vala:
56 * src/media-server/gupnp-media-provider.vala:
57 * src/media-server/gupnp-media-receiver-registrar.vala:
58 * src/media-server/gupnp-media-server.vala:
59 * src/media-server/gupnp-metadata-extractor.vala:
61 Move the core Media Server code into a separate subdirectory.
63 2008-08-05 Zeeshan Ali Khattak <zeenix@gmail.com>
65 * src/media-providers/Makefile.am:
67 Remove Makefile.in on 'make maintainer-clean'.
69 2008-08-05 Zeeshan Ali Khattak <zeenix@gmail.com>
71 * src/gupnp-media-manager.vala:
73 - Better/recursive GIO-based plugin loading.
74 - Replace random ID generation function by a GQuark-based (persistant)
77 2008-08-05 Zeeshan Ali Khattak <zeenix@gmail.com>
81 Disable generation of static libraries.
83 2008-08-05 Zeeshan Ali Khattak <zeenix@gmail.com>
87 * src/media-providers/Makefile.am:
88 * src/media-providers/tracker/Makefile.am:
89 * src/media-providers/tracker/gupnp-media-tracker.vala:
91 Re-introduce MediaTracker as a plugin.
93 2008-08-04 Zeeshan Ali Khattak <zeenix@gmail.com>
97 * src/gupnp-media-manager.vala:
98 * src/gupnp-media-tracker.vala:
100 - Introduce a plugins system. Ross should be happy now. :)
101 - Remove MediaTracker module.
103 2008-08-03 Zeeshan Ali Khattak <zeenix@gmail.com>
105 * src/gupnp-media-manager.vala:
106 * src/gupnp-media-provider.vala:
107 * src/gupnp-media-tracker.vala:
109 - Add "title" prop to MediaProvider interface.
110 - Add get_root_children_count() to MediaProvider interface.
112 2008-08-03 Zeeshan Ali Khattak <zeenix@gmail.com>
114 * src/gupnp-media-tracker.vala:
116 - Correct a typo. Now we export the ID of the container in the format we
117 need to export it in.
118 - No need for MediaManager to prefix IDs with root_id.
119 - Pass ID as is to browse() and get_metadata() of media providers.
120 - Get the root ID prefix from IDs rather than removing it.
121 - Don't add root ID prefix to root parent ID.
123 2008-08-03 Zeeshan Ali Khattak <zeenix@gmail.com>
125 * src/gupnp-content-directory.vala:
126 * src/gupnp-media-manager.vala:
127 * src/gupnp-media-provider.vala:
128 * src/gupnp-media-tracker.vala:
130 - MediaProviders now get the "root_parent_id" though a prop.
131 - MediaManager now decides the IDs to use on it's own.
133 2008-08-02 Zeeshan Ali Khattak <zeenix@gmail.com>
135 * src/gupnp-content-directory.vala:
137 Use MediaManager rather than MediaTracker. This also means that
138 system_update_id doesn't need to be handled by ContentDirectory
141 2008-08-02 Zeeshan Ali Khattak <zeenix@gmail.com>
144 * src/gupnp-media-manager.vala:
146 Introduce MediaManager. It implements MediaProvider interface and will
147 be responsible to manage all MediaProviders. Currently it uses
148 MediaTracker directly since it currently doesn't have a plugin system.
150 2008-07-31 Zeeshan Ali Khattak <zeenix@gmail.com>
152 * src/gupnp-media-tracker.vala:
154 Each MediaProvider prefixes each objectid with "root-id:". This will
155 allow the ContentDirectory to redirect the Browse requests to the
156 appropriate MediaProvider in a simple/efficient way.
158 2008-07-30 Zeeshan Ali Khattak <zeenix@gmail.com>
161 * src/gupnp-media-provider.vala:
162 * src/gupnp-media-tracker.vala:
164 Introduce MediaProvider interface that MediaTracker
167 2008-07-18 Zeeshan Ali Khattak <zeenix@gmail.com>
169 * src/gupnp-connection-manager.vala:
171 No need to list all supported mimetypes in SourceProtocolInfo.
173 2008-07-04 Zeeshan Ali Khattak <zeenix@gmail.com>
178 - Declared all built sources in BUILT_SOURCES.
180 2008-07-04 Zeeshan Ali Khattak <zeenix@gmail.com>
184 Prepare NEWS file for initial (0.1) release.
186 2008-07-04 Zeeshan Ali Khattak <zeenix@gmail.com>
191 Update design doc and TODO files.
193 2008-07-04 Zeeshan Ali Khattak <zeenix@gmail.com>
195 * src/gupnp-connection-manager.vala:
197 - Swap the sink and source ProtocolInfo.
198 - Use Vala's syntax for connecting signals with details.
199 - Remove the unused commented-out code.
200 - Initialize the variables in the constructor.
201 - Put my name/copyright in the header.
203 2008-07-04 Zeeshan Ali Khattak <zeenix@gmail.com>
205 * data/xml/Makefile.am:
206 * data/xml/description.xml:
207 * src/gupnp-media-server.vala:
209 Enable the ConnectionManager service.
211 2008-07-04 Zeeshan Ali Khattak <zeenix@gmail.com>
214 * src/gupnp-connection-manager.vala:
216 Copy the ConnectionManager code from gupnp-media-renderer.
218 2008-07-04 Zeeshan Ali Khattak <zeenix@gmail.com>
222 Put some description in README file.
224 2008-07-03 Zeeshan Ali Khattak <zeenix@gmail.com>
226 * src/gupnp-content-directory.vala:
228 Return an error on getting invalid arguments for 'Browse'.
230 2008-07-03 Zeeshan Ali Khattak <zeenix@gmail.com>
232 * src/gupnp-content-directory.vala:
234 Argument 'value' of query_variable signal should now be declared 'ref'.
236 2008-07-03 Zeeshan Ali Khattak <zeenix@gmail.com>
238 * src/gupnp-media-tracker.vala:
240 Provide the 'creator' tag in DIDL xml for all items. The same value is
241 provided in 'author' and 'artist' tags for music and video items
244 2008-07-02 Zeeshan Ali Khattak <zeenix@gmail.com>
246 * data/xml/ContentDirectory.xml:
248 Hide the optional "GetSortExtensionCapabilities" action as well.
250 2008-07-02 Zeeshan Ali Khattak <zeenix@gmail.com>
252 * src/gupnp-content-directory.vala:
254 - Initialize "SystemUpdateID" variable and implement related query and
256 - Implement "SearchCapabilities" and "SortCapabilities" related
258 - Implement "FeatureList" related queries and actions.
260 2008-07-02 Zeeshan Ali Khattak <zeenix@gmail.com>
262 * data/xml/ContentDirectory.xml:
264 - List the required actions/variable before the optional.
265 - Comment out the optional actions and variables.
267 2008-07-02 Zeeshan Ali Khattak <zeenix@gmail.com>
269 * data/xml/Makefile.am:
270 * data/xml/description-xbox360.xml:
271 * data/xml/description.xml:
273 Disable the distribution and advertisement of the yet unimplemented
274 ConnectionManager service.
276 2008-07-02 Zeeshan Ali Khattak <zeenix@gmail.com>
278 * src/gupnp-media-tracker.vala:
280 A temporary hack to make Vala compiler free string in structs. We need
281 this untill GB#526552 is fixed.
283 2008-07-01 Zeeshan Ali Khattak <zeenix@gmail.com>
285 * src/gupnp-media-tracker.vala:
287 - Refactor: separate functions for adding music, image and video items
289 - Put the actual "album" in the DIDL when available.
290 - Put "dc:date" in the DIDL when available.
291 - No need to check for null on values returned from tracker.
293 2008-07-01 Zeeshan Ali Khattak <zeenix@gmail.com>
295 * src/gupnp-media-tracker.vala:
297 - Include the author, creator or artist in the DIDL when available.
298 - Include "originalTrackNumber" in the DIDL for Music track objects.
301 2008-06-30 Zeeshan Ali Khattak <zeenix@gmail.com>
305 Export the "abs_top_builddir" explicitly. Some installations need it.
307 2008-06-30 Zeeshan Ali Khattak <zeenix@gmail.com>
309 * src/gupnp-media-tracker.vala:
311 - Include the title instead of filename in the DIDL when it's available.
312 - tracker gives us empty string rather than null for each unavailable
315 2008-06-29 Zeeshan Ali Khattak <zeenix@gmail.com>
317 * src/gupnp-metadata-extractor.vala:
319 Put some more more comments and Refactor.
321 2008-06-27 Zeeshan Ali Khattak <zeenix@gmail.com>
323 * src/gupnp-metadata-extractor.vala:
325 Extract the mime-type using GIO.
327 2008-06-27 Zeeshan Ali Khattak <zeenix@gmail.com>
332 Require gio-2.0 (>= 2.16) and include it in the build.
334 2008-06-27 Zeeshan Ali Khattak <zeenix@gmail.com>
336 * src/gupnp-metadata-extractor.vala:
338 Implement extraction of audio and video specific metadata.
340 2008-06-26 Zeeshan Ali Khattak <zeenix@gmail.com>
342 * src/gupnp-media-server.vala:
344 Correct the logic in MediaServer.set_friendly_name_and_udn (). The
345 values for UDN and FriendlyName were not set in the description doc if
346 not already present in the corresponding gconf keys.
348 2008-06-25 Zeeshan Ali Khattak <zeenix@gmail.com>
352 Reduce the gstreamer dependency to 0.10.18.
354 2008-06-25 Zeeshan Ali Khattak <zeenix@gmail.com>
356 * src/gupnp-metadata-extractor.vala:
358 - Use 'this' keyword wherever possible. This makes code much more
360 - Only react to PAUSED state-change if the previous state was READY.
361 - Refactor: A separate function for extraction of 'duration'.
362 - Gst.TagList.copy_value.value is 'out' rather than 'ref'.
364 2008-06-25 Zeeshan Ali Khattak <zeenix@gmail.com>
367 * src/gupnp-metadata-extractor.vala:
369 Add a gstreamer-based metadata extractor.
371 2008-06-25 Zeeshan Ali Khattak <zeenix@gmail.com>
376 Add dependency to gstreamer >= 0.10.19.
378 2008-06-24 Zeeshan Ali Khattak <zeenix@gmail.com>
380 * src/gupnp-content-directory.vala:
381 * src/gupnp-media-receiver-registrar.vala:
382 * src/gupnp-media-server.vala:
383 * src/gupnp-media-tracker.vala:
385 Remove the now redundant 'using GLib' from all sources.
387 2008-06-24 Zeeshan Ali Khattak <zeenix@gmail.com>
389 * src/gupnp-content-directory.vala:
390 * src/gupnp-media-receiver-registrar.vala:
392 Start using the new Vala syntax for connecting signals with details.
394 2008-06-23 Zeeshan Ali Khattak <zeenix@gmail.com>
396 * src/gupnp-media-tracker.vala:
398 A small fix to setisfy the latest Vala compiler.
400 2008-06-16 Zeeshan Ali Khattak <zeenix@gmail.com>
402 * src/gupnp-media-tracker.vala:
404 Make all constants all CAPS.
406 2008-06-15 Zeeshan Ali Khattak <zeenix@gmail.com>
410 Check for gupnp-media-server.vala file rather than now removed main.c
413 2008-06-15 Zeeshan Ali Khattak <zeenix@gmail.com>
417 Add the vala stamp file to CLEANFILES.
419 2008-06-15 Zeeshan Ali Khattak <zeenix@gmail.com>
422 * src/gupnp-media-server.vala:
425 Re-write the main module in Vala. The main module's code now resides
426 in MediaServer class as static methods. This marks the completion of
427 re-write of code in Vala. Yay!
429 2008-06-15 Zeeshan Ali Khattak <zeenix@gmail.com>
436 Put all low-level stuff into a separate module. This module will be
437 the only one kept in C and all the code that currently can't be
438 written (easily) in Vala, will go there.
440 2008-06-13 Zeeshan Ali Khattak <zeenix@gmail.com>
445 Check for gconf-2.0 Vala bindings and add it to the Vala compiler
448 2008-06-13 Zeeshan Ali Khattak <zeenix@gmail.com>
452 Introduce a separate configure option for a strict C compiler.
454 2008-06-13 Zeeshan Ali Khattak <zeenix@gmail.com>
457 * src/gupnp-media-server.c:
458 * src/gupnp-media-server.h:
459 * src/gupnp-media-server.vala:
461 Re-write the MediaServer class in Vala.
463 2008-06-12 Zeeshan Ali Khattak <zeenix@gmail.com>
465 * src/gupnp-media-receiver-registrar.vala:
467 Add the copyright header.
469 2008-06-12 Zeeshan Ali Khattak <zeenix@gmail.com>
471 * src/gupnp-media-tracker.vala:
473 - Use the nice and clean DBus API that Vala provides us.
474 - Enable the commented out code of get_container_children_count() now
475 that it's working against the latest Vala (svn trunk). MediaTracker
476 is fully functional again, yay!
477 - Correct a warning message (copy&paste mistake).
479 2008-06-12 Zeeshan Ali Khattak <zeenix@gmail.com>
481 * src/gupnp-media-tracker.vala:
483 Correct the types of two parameters of MediaTracker.browse().
485 2008-06-12 Zeeshan Ali Khattak <zeenix@gmail.com>
488 * src/gupnp-content-directory.c:
489 * src/gupnp-content-directory.h:
490 * src/gupnp-content-directory.vala:
492 Re-write ContentDirectory implementation in Vala.
494 2008-06-11 Zeeshan Ali Khattak <zeenix@gmail.com>
498 Require Vala >= 0.3.4.
500 2008-06-11 Zeeshan Ali Khattak <zeenix@gmail.com>
504 * src/gupnp-content-directory.c:
505 * src/gupnp-media-tracker.c:
506 * src/gupnp-media-tracker.h:
507 * src/gupnp-media-tracker.vala:
509 Re-write MediaTracker in Vala. Doesn't really work. Thanks to
510 dbus-glib bindings for Vala and tracker API.
512 2008-06-07 Zeeshan Ali Khattak <zeenix@gmail.com>
515 * src/gupnp-media-receiver-registrar.c:
516 * src/gupnp-media-receiver-registrar.h:
517 * src/gupnp-media-receiver-registrar.vala:
519 Re-write X_MS_MediaReceiverRegistrar implementation in Vala.
521 2008-06-07 Zeeshan Ali Khattak <zeenix@gmail.com>
525 Check for Vala and GUPnP bindings.
527 2008-05-14 Zeeshan Ali Khattak <zeenix@gmail.com>
530 * src/gupnp-content-directory.c:
531 * src/gupnp-content-directory.h:
532 * src/gupnp-media-receiver-registrar.c:
533 * src/gupnp-media-receiver-registrar.h:
534 * src/gupnp-media-server.c:
536 Put the services implementations into separate objects.
538 2008-05-08 Zeeshan Ali Khattak <zeenix@gmail.com>
540 * src/gupnp-media-tracker.c:
542 - Report the correct UPnP class of the items.
543 - Xbox wants Images container to have ID of '16'.
544 - Provide 'res@resultion' in DIDL XML for audio and video items.
546 2008-05-08 Zeeshan Ali Khattak <zeenix@gmail.com>
548 * src/gupnp-media-tracker.c:
550 Quick security fix: only host the user's home dir. This should be OK
551 with most tracker setups since by default tracker only indexes user's
554 2008-05-08 Zeeshan Ali Khattak <zeenix@gmail.com>
556 * src/gupnp-media-tracker.c:
558 - Introduce a structure to hold container info: ID, title and
559 associated tracker category.
560 - Don't escape '/' in the path before putting it in HTTP URI.
562 2008-05-08 Zeeshan Ali Khattak <zeenix@gmail.com>
564 * src/gupnp-media-server.c:
566 Xbox 360 uses 'ContainerID' instead of 'ObjectID' for cotainers.
568 2008-05-07 Zeeshan Ali Khattak <zeenix@gmail.com>
570 * data/xml/Makefile.am:
572 Add the newly added xbox 360 specific xml files to build.
574 2008-05-07 Zeeshan Ali Khattak <zeenix@gmail.com>
576 * data/xml/description-xbox360.xml:
579 Use a separate description document for Xbox 360 to keep the code
582 2008-05-07 Zeeshan Ali Khattak <zeenix@gmail.com>
584 * src/gupnp-media-server.c:
586 Retrieve the services in version agnostic way.
588 2008-05-06 Zeeshan Ali Khattak <zeenix@gmail.com>
590 * data/xml/X_MS_MediaReceiverRegistrar1.xml:
591 * data/xml/description.xml:
592 * src/gupnp-media-server.c:
595 Add basic support for Xbox.
597 2008-05-05 Zeeshan Ali Khattak <zeenix@gmail.com>
599 * data/xml/description.xml:
601 Steal some more DLNA bits from rhythmbox GUPnP plugin.
603 2008-05-03 Zeeshan Ali Khattak <zeenix@gmail.com>
605 * src/gupnp-media-tracker.c:
607 Adapt to latest didl writer API. We put a fake 'MP3' for all items in
608 the DLNA's PN field for each item. This should fix the playback of mp3
609 contents on DLNA-compliant MRs and CPs without breaking the playback of
610 non-mp3 contents on non-DLNA compliant MRs/CPs.
612 2008-05-02 Zeeshan Ali Khattak <zeenix@gmail.com>
614 * src/gupnp-media-tracker.c:
616 In Browse() implementation,
617 - respect 'StartingIndex' and 'RequestedCount' params.
618 - Never return more than 128 items in a single reply.
620 2008-05-02 Zeeshan Ali Khattak <zeenix@gmail.com>
622 * src/gupnp-media-tracker.c:
624 - Use tracker to get the number of items in a category.
625 - offset param to Files.GetByServiceType method is zero-based.
627 2008-05-02 Zeeshan Ali Khattak <zeenix@gmail.com>
629 * src/gupnp-media-tracker.c:
631 - Host the root directory rather than user's home directory since the
632 tracker URI's are absolute file paths and it could be tracking other
634 - Escape the path before making a URI from it.
635 - Remove an unneeded param from a function.
637 2008-05-02 Zeeshan Ali Khattak <zeenix@gmail.com>
639 * src/gupnp-media-tracker.c:
641 Start using tracker for fetching the list of media files.
643 2008-04-29 Zeeshan Ali Khattak <zeenix@gmail.com>
645 * src/gupnp-media-tracker.c:
649 2008-04-29 Zeeshan Ali Khattak <zeenix@gmail.com>
653 * src/gupnp-media-tracker.c:
655 Start using tracker for fetching the metadata.
657 2008-04-28 Zeeshan Ali Khattak <zeenix@gmail.com>
660 * src/gupnp-media-server.c:
661 * src/gupnp-media-tracker.c:
662 * src/gupnp-media-tracker.h:
664 Add skeleton for tracker-based media provider.
666 2008-04-23 Zeeshan Ali Khattak <zeenix@gmail.com>
671 Remove first goal from TODO and update the design/plan.
673 2008-04-23 Zeeshan Ali Khattak <zeenix@gmail.com>
677 - Fetch the UDN and friendlyname from gconf and set them to default
678 values if gconf keys aren't already set.
679 - No need to load the modified description document anymore.
681 2008-04-22 Zeeshan Ali Khattak <zeenix@gmail.com>
685 Let the context choose the hostname/IP and port for us if not
688 2008-04-21 Zeeshan Ali Khattak <zeenix@gmail.com>
690 * src/gupnp-media-server.c:
692 - Implement 'BrowseMetadata'.
693 - Mime-type of mp3 files should be 'audio/mpeg' rather than
695 - Host user's home directory as '/media' and update paths accordingly.
697 2008-04-21 Zeeshan Ali Khattak <zeenix@gmail.com>
701 * data/xml/Makefile.am:
704 Update/fix the build system for our dummy MS.
706 2008-04-21 Zeeshan Ali Khattak <zeenix@gmail.com>
708 * src/gupnp-media-server.c:
709 * src/gupnp-media-server.h:
712 Implement a dummy MS.
714 2008-04-21 Zeeshan Ali Khattak <zeenix@gmail.com>
716 * src/gupnp-media-server.c:
717 * src/gupnp-media-server.h:
719 Update the copyright/licence header.
721 2008-04-21 Zeeshan Ali Khattak <zeenix@gmail.com>
723 * data/xml/ConnectionManager.xml:
724 * data/xml/ContentDirectory.xml:
725 * data/xml/description.xml:
727 - Advertise version 2 of MS and AV services.
728 - Some minor updates.
730 2008-04-13 Zeeshan Ali Khattak <zeenix@gmail.com>
735 - Rename MediaDb to MediaProvider.
736 - Replace MediaDbGroup and MediaDbPlugin by a single MediaDb.
740 Add TODO file and put the general plan in there.
742 2008-04-13 Zeeshan Ali Khattak <zeenix@gmail.com>
746 Add some more objects and description to design doc.