1 2008-08-05 Zeeshan Ali Khattak <zeenix@gmail.com>
5 * src/media-providers/Makefile.am:
6 * src/media-providers/tracker/Makefile.am:
7 * src/media-providers/tracker/gupnp-media-tracker.vala:
9 Re-introduce MediaTracker as a plugin.
11 2008-08-04 Zeeshan Ali Khattak <zeenix@gmail.com>
15 * src/gupnp-media-manager.vala:
16 * src/gupnp-media-tracker.vala:
18 - Introduce a plugins system. Ross should be happy now. :)
19 - Remove MediaTracker module.
21 2008-08-03 Zeeshan Ali Khattak <zeenix@gmail.com>
23 * src/gupnp-media-manager.vala:
24 * src/gupnp-media-provider.vala:
25 * src/gupnp-media-tracker.vala:
27 - Add "title" prop to MediaProvider interface.
28 - Add get_root_children_count() to MediaProvider interface.
30 2008-08-03 Zeeshan Ali Khattak <zeenix@gmail.com>
32 * src/gupnp-media-tracker.vala:
34 - Correct a typo. Now we export the ID of the container in the format we
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.
41 2008-08-03 Zeeshan Ali Khattak <zeenix@gmail.com>
43 * src/gupnp-content-directory.vala:
44 * src/gupnp-media-manager.vala:
45 * src/gupnp-media-provider.vala:
46 * src/gupnp-media-tracker.vala:
48 - MediaProviders now get the "root_parent_id" though a prop.
49 - MediaManager now decides the IDs to use on it's own.
51 2008-08-02 Zeeshan Ali Khattak <zeenix@gmail.com>
53 * src/gupnp-content-directory.vala:
55 Use MediaManager rather than MediaTracker. This also means that
56 system_update_id doesn't need to be handled by ContentDirectory
59 2008-08-02 Zeeshan Ali Khattak <zeenix@gmail.com>
62 * src/gupnp-media-manager.vala:
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.
68 2008-07-31 Zeeshan Ali Khattak <zeenix@gmail.com>
70 * src/gupnp-media-tracker.vala:
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.
76 2008-07-30 Zeeshan Ali Khattak <zeenix@gmail.com>
79 * src/gupnp-media-provider.vala:
80 * src/gupnp-media-tracker.vala:
82 Introduce MediaProvider interface that MediaTracker
85 2008-07-18 Zeeshan Ali Khattak <zeenix@gmail.com>
87 * src/gupnp-connection-manager.vala:
89 No need to list all supported mimetypes in SourceProtocolInfo.
91 2008-07-04 Zeeshan Ali Khattak <zeenix@gmail.com>
96 - Declared all built sources in BUILT_SOURCES.
98 2008-07-04 Zeeshan Ali Khattak <zeenix@gmail.com>
102 Prepare NEWS file for initial (0.1) release.
104 2008-07-04 Zeeshan Ali Khattak <zeenix@gmail.com>
109 Update design doc and TODO files.
111 2008-07-04 Zeeshan Ali Khattak <zeenix@gmail.com>
113 * src/gupnp-connection-manager.vala:
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.
121 2008-07-04 Zeeshan Ali Khattak <zeenix@gmail.com>
123 * data/xml/Makefile.am:
124 * data/xml/description.xml:
125 * src/gupnp-media-server.vala:
127 Enable the ConnectionManager service.
129 2008-07-04 Zeeshan Ali Khattak <zeenix@gmail.com>
132 * src/gupnp-connection-manager.vala:
134 Copy the ConnectionManager code from gupnp-media-renderer.
136 2008-07-04 Zeeshan Ali Khattak <zeenix@gmail.com>
140 Put some description in README file.
142 2008-07-03 Zeeshan Ali Khattak <zeenix@gmail.com>
144 * src/gupnp-content-directory.vala:
146 Return an error on getting invalid arguments for 'Browse'.
148 2008-07-03 Zeeshan Ali Khattak <zeenix@gmail.com>
150 * src/gupnp-content-directory.vala:
152 Argument 'value' of query_variable signal should now be declared 'ref'.
154 2008-07-03 Zeeshan Ali Khattak <zeenix@gmail.com>
156 * src/gupnp-media-tracker.vala:
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
162 2008-07-02 Zeeshan Ali Khattak <zeenix@gmail.com>
164 * data/xml/ContentDirectory.xml:
166 Hide the optional "GetSortExtensionCapabilities" action as well.
168 2008-07-02 Zeeshan Ali Khattak <zeenix@gmail.com>
170 * src/gupnp-content-directory.vala:
172 - Initialize "SystemUpdateID" variable and implement related query and
174 - Implement "SearchCapabilities" and "SortCapabilities" related
176 - Implement "FeatureList" related queries and actions.
178 2008-07-02 Zeeshan Ali Khattak <zeenix@gmail.com>
180 * data/xml/ContentDirectory.xml:
182 - List the required actions/variable before the optional.
183 - Comment out the optional actions and variables.
185 2008-07-02 Zeeshan Ali Khattak <zeenix@gmail.com>
187 * data/xml/Makefile.am:
188 * data/xml/description-xbox360.xml:
189 * data/xml/description.xml:
191 Disable the distribution and advertisement of the yet unimplemented
192 ConnectionManager service.
194 2008-07-02 Zeeshan Ali Khattak <zeenix@gmail.com>
196 * src/gupnp-media-tracker.vala:
198 A temporary hack to make Vala compiler free string in structs. We need
199 this untill GB#526552 is fixed.
201 2008-07-01 Zeeshan Ali Khattak <zeenix@gmail.com>
203 * src/gupnp-media-tracker.vala:
205 - Refactor: separate functions for adding music, image and video items
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.
211 2008-07-01 Zeeshan Ali Khattak <zeenix@gmail.com>
213 * src/gupnp-media-tracker.vala:
215 - Include the author, creator or artist in the DIDL when available.
216 - Include "originalTrackNumber" in the DIDL for Music track objects.
219 2008-06-30 Zeeshan Ali Khattak <zeenix@gmail.com>
223 Export the "abs_top_builddir" explicitly. Some installations need it.
225 2008-06-30 Zeeshan Ali Khattak <zeenix@gmail.com>
227 * src/gupnp-media-tracker.vala:
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
233 2008-06-29 Zeeshan Ali Khattak <zeenix@gmail.com>
235 * src/gupnp-metadata-extractor.vala:
237 Put some more more comments and Refactor.
239 2008-06-27 Zeeshan Ali Khattak <zeenix@gmail.com>
241 * src/gupnp-metadata-extractor.vala:
243 Extract the mime-type using GIO.
245 2008-06-27 Zeeshan Ali Khattak <zeenix@gmail.com>
250 Require gio-2.0 (>= 2.16) and include it in the build.
252 2008-06-27 Zeeshan Ali Khattak <zeenix@gmail.com>
254 * src/gupnp-metadata-extractor.vala:
256 Implement extraction of audio and video specific metadata.
258 2008-06-26 Zeeshan Ali Khattak <zeenix@gmail.com>
260 * src/gupnp-media-server.vala:
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.
266 2008-06-25 Zeeshan Ali Khattak <zeenix@gmail.com>
270 Reduce the gstreamer dependency to 0.10.18.
272 2008-06-25 Zeeshan Ali Khattak <zeenix@gmail.com>
274 * src/gupnp-metadata-extractor.vala:
276 - Use 'this' keyword wherever possible. This makes code much more
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'.
282 2008-06-25 Zeeshan Ali Khattak <zeenix@gmail.com>
285 * src/gupnp-metadata-extractor.vala:
287 Add a gstreamer-based metadata extractor.
289 2008-06-25 Zeeshan Ali Khattak <zeenix@gmail.com>
294 Add dependency to gstreamer >= 0.10.19.
296 2008-06-24 Zeeshan Ali Khattak <zeenix@gmail.com>
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:
303 Remove the now redundant 'using GLib' from all sources.
305 2008-06-24 Zeeshan Ali Khattak <zeenix@gmail.com>
307 * src/gupnp-content-directory.vala:
308 * src/gupnp-media-receiver-registrar.vala:
310 Start using the new Vala syntax for connecting signals with details.
312 2008-06-23 Zeeshan Ali Khattak <zeenix@gmail.com>
314 * src/gupnp-media-tracker.vala:
316 A small fix to setisfy the latest Vala compiler.
318 2008-06-16 Zeeshan Ali Khattak <zeenix@gmail.com>
320 * src/gupnp-media-tracker.vala:
322 Make all constants all CAPS.
324 2008-06-15 Zeeshan Ali Khattak <zeenix@gmail.com>
328 Check for gupnp-media-server.vala file rather than now removed main.c
331 2008-06-15 Zeeshan Ali Khattak <zeenix@gmail.com>
335 Add the vala stamp file to CLEANFILES.
337 2008-06-15 Zeeshan Ali Khattak <zeenix@gmail.com>
340 * src/gupnp-media-server.vala:
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!
347 2008-06-15 Zeeshan Ali Khattak <zeenix@gmail.com>
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.
358 2008-06-13 Zeeshan Ali Khattak <zeenix@gmail.com>
363 Check for gconf-2.0 Vala bindings and add it to the Vala compiler
366 2008-06-13 Zeeshan Ali Khattak <zeenix@gmail.com>
370 Introduce a separate configure option for a strict C compiler.
372 2008-06-13 Zeeshan Ali Khattak <zeenix@gmail.com>
375 * src/gupnp-media-server.c:
376 * src/gupnp-media-server.h:
377 * src/gupnp-media-server.vala:
379 Re-write the MediaServer class in Vala.
381 2008-06-12 Zeeshan Ali Khattak <zeenix@gmail.com>
383 * src/gupnp-media-receiver-registrar.vala:
385 Add the copyright header.
387 2008-06-12 Zeeshan Ali Khattak <zeenix@gmail.com>
389 * src/gupnp-media-tracker.vala:
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).
397 2008-06-12 Zeeshan Ali Khattak <zeenix@gmail.com>
399 * src/gupnp-media-tracker.vala:
401 Correct the types of two parameters of MediaTracker.browse().
403 2008-06-12 Zeeshan Ali Khattak <zeenix@gmail.com>
406 * src/gupnp-content-directory.c:
407 * src/gupnp-content-directory.h:
408 * src/gupnp-content-directory.vala:
410 Re-write ContentDirectory implementation in Vala.
412 2008-06-11 Zeeshan Ali Khattak <zeenix@gmail.com>
416 Require Vala >= 0.3.4.
418 2008-06-11 Zeeshan Ali Khattak <zeenix@gmail.com>
422 * src/gupnp-content-directory.c:
423 * src/gupnp-media-tracker.c:
424 * src/gupnp-media-tracker.h:
425 * src/gupnp-media-tracker.vala:
427 Re-write MediaTracker in Vala. Doesn't really work. Thanks to
428 dbus-glib bindings for Vala and tracker API.
430 2008-06-07 Zeeshan Ali Khattak <zeenix@gmail.com>
433 * src/gupnp-media-receiver-registrar.c:
434 * src/gupnp-media-receiver-registrar.h:
435 * src/gupnp-media-receiver-registrar.vala:
437 Re-write X_MS_MediaReceiverRegistrar implementation in Vala.
439 2008-06-07 Zeeshan Ali Khattak <zeenix@gmail.com>
443 Check for Vala and GUPnP bindings.
445 2008-05-14 Zeeshan Ali Khattak <zeenix@gmail.com>
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:
454 Put the services implementations into separate objects.
456 2008-05-08 Zeeshan Ali Khattak <zeenix@gmail.com>
458 * src/gupnp-media-tracker.c:
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.
464 2008-05-08 Zeeshan Ali Khattak <zeenix@gmail.com>
466 * src/gupnp-media-tracker.c:
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
472 2008-05-08 Zeeshan Ali Khattak <zeenix@gmail.com>
474 * src/gupnp-media-tracker.c:
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.
480 2008-05-08 Zeeshan Ali Khattak <zeenix@gmail.com>
482 * src/gupnp-media-server.c:
484 Xbox 360 uses 'ContainerID' instead of 'ObjectID' for cotainers.
486 2008-05-07 Zeeshan Ali Khattak <zeenix@gmail.com>
488 * data/xml/Makefile.am:
490 Add the newly added xbox 360 specific xml files to build.
492 2008-05-07 Zeeshan Ali Khattak <zeenix@gmail.com>
494 * data/xml/description-xbox360.xml:
497 Use a separate description document for Xbox 360 to keep the code
500 2008-05-07 Zeeshan Ali Khattak <zeenix@gmail.com>
502 * src/gupnp-media-server.c:
504 Retrieve the services in version agnostic way.
506 2008-05-06 Zeeshan Ali Khattak <zeenix@gmail.com>
508 * data/xml/X_MS_MediaReceiverRegistrar1.xml:
509 * data/xml/description.xml:
510 * src/gupnp-media-server.c:
513 Add basic support for Xbox.
515 2008-05-05 Zeeshan Ali Khattak <zeenix@gmail.com>
517 * data/xml/description.xml:
519 Steal some more DLNA bits from rhythmbox GUPnP plugin.
521 2008-05-03 Zeeshan Ali Khattak <zeenix@gmail.com>
523 * src/gupnp-media-tracker.c:
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.
530 2008-05-02 Zeeshan Ali Khattak <zeenix@gmail.com>
532 * src/gupnp-media-tracker.c:
534 In Browse() implementation,
535 - respect 'StartingIndex' and 'RequestedCount' params.
536 - Never return more than 128 items in a single reply.
538 2008-05-02 Zeeshan Ali Khattak <zeenix@gmail.com>
540 * src/gupnp-media-tracker.c:
542 - Use tracker to get the number of items in a category.
543 - offset param to Files.GetByServiceType method is zero-based.
545 2008-05-02 Zeeshan Ali Khattak <zeenix@gmail.com>
547 * src/gupnp-media-tracker.c:
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
552 - Escape the path before making a URI from it.
553 - Remove an unneeded param from a function.
555 2008-05-02 Zeeshan Ali Khattak <zeenix@gmail.com>
557 * src/gupnp-media-tracker.c:
559 Start using tracker for fetching the list of media files.
561 2008-04-29 Zeeshan Ali Khattak <zeenix@gmail.com>
563 * src/gupnp-media-tracker.c:
567 2008-04-29 Zeeshan Ali Khattak <zeenix@gmail.com>
571 * src/gupnp-media-tracker.c:
573 Start using tracker for fetching the metadata.
575 2008-04-28 Zeeshan Ali Khattak <zeenix@gmail.com>
578 * src/gupnp-media-server.c:
579 * src/gupnp-media-tracker.c:
580 * src/gupnp-media-tracker.h:
582 Add skeleton for tracker-based media provider.
584 2008-04-23 Zeeshan Ali Khattak <zeenix@gmail.com>
589 Remove first goal from TODO and update the design/plan.
591 2008-04-23 Zeeshan Ali Khattak <zeenix@gmail.com>
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.
599 2008-04-22 Zeeshan Ali Khattak <zeenix@gmail.com>
603 Let the context choose the hostname/IP and port for us if not
606 2008-04-21 Zeeshan Ali Khattak <zeenix@gmail.com>
608 * src/gupnp-media-server.c:
610 - Implement 'BrowseMetadata'.
611 - Mime-type of mp3 files should be 'audio/mpeg' rather than
613 - Host user's home directory as '/media' and update paths accordingly.
615 2008-04-21 Zeeshan Ali Khattak <zeenix@gmail.com>
619 * data/xml/Makefile.am:
622 Update/fix the build system for our dummy MS.
624 2008-04-21 Zeeshan Ali Khattak <zeenix@gmail.com>
626 * src/gupnp-media-server.c:
627 * src/gupnp-media-server.h:
630 Implement a dummy MS.
632 2008-04-21 Zeeshan Ali Khattak <zeenix@gmail.com>
634 * src/gupnp-media-server.c:
635 * src/gupnp-media-server.h:
637 Update the copyright/licence header.
639 2008-04-21 Zeeshan Ali Khattak <zeenix@gmail.com>
641 * data/xml/ConnectionManager.xml:
642 * data/xml/ContentDirectory.xml:
643 * data/xml/description.xml:
645 - Advertise version 2 of MS and AV services.
646 - Some minor updates.
648 2008-04-13 Zeeshan Ali Khattak <zeenix@gmail.com>
653 - Rename MediaDb to MediaProvider.
654 - Replace MediaDbGroup and MediaDbPlugin by a single MediaDb.
658 Add TODO file and put the general plan in there.
660 2008-04-13 Zeeshan Ali Khattak <zeenix@gmail.com>
664 Add some more objects and description to design doc.