3
* ChangeLog, coherence/__init__.py,
4
coherence/backends/flickr_storage.py, coherence/base.py,
5
coherence/upnp/core/event.py, coherence/upnp/core/service.py,
6
coherence/upnp/devices/control_point.py,
7
coherence/upnp/devices/media_renderer.py,
8
coherence/upnp/devices/media_server.py,
9
coherence/upnp/services/servers/connection_manager_server.py,
10
coherence/web/ui.py, docs/coherence.conf.example, setup.py:
11
Preparations for the 0.4.0 release.
15
* integration of a new logging module
16
logging can now be configured via the config file or through an
17
environment variable COHERENCE_DEBUG, which overrides the config
21
COHERENCE_DEBUG=*:3 emit INFO level messages from all modules
22
COHERENCE_DEBUG=*:2,ssdp:4 WARNING level messages from all
24
plus debug level for the ssdp module
26
* removed the dependency for SOAPpy, now using own methods and
28
* start reworking the client API, to make things there easier
31
https://coherence.beebits.net/wiki/CoherenceMediaRenderer
32
* serving cover art now to DLNA MediaRenderers
33
* refinements on the object creation and the import into the
35
* an installable package for the Nokia Maemo platform on the
37
complete with all dependecies, thanks to Rob Tylor of
38
http://codethink.co.uk
39
* and a lot more of the usual bugfixes and enhancements
41
2007-07-31 08:51 philn
43
* coherence/extern/inotify.py: don't set _instance_ too early
47
* coherence/upnp/core/device.py, coherence/upnp/core/service.py:
48
more log level rearrangements
50
2007-07-30 16:42 philn
52
* coherence/extern/inotify.py: check self._fd existence before
57
* coherence/backends/flickr_storage.py, coherence/base.py,
58
coherence/log.py, coherence/upnp/core/service.py: * added
59
disabling of any log output again, with 'none' as logmode in the
61
* rearranging the levels of some log messages
65
* coherence/upnp/core/soap_proxy.py: return the failure from the
66
errback of a soap call, so the upstream errback is called too
70
* coherence/upnp/core/service.py: removed some debug noise
74
* coherence/upnp/core/event.py: catch errors when sending
75
UNSUBSCRIBE messages after the socket is gone
79
* coherence/upnp/services/servers/connection_manager_server.py:
80
fixed a wrong indentation
82
2007-07-26 16:10 philn
84
* coherence/log.py: woo colored log output
88
* coherence/__init__.py, coherence/base.py,
89
coherence/upnp/core/device.py, coherence/upnp/core/event.py,
90
coherence/upnp/core/service.py,
91
coherence/upnp/devices/media_renderer_client.py,
92
coherence/upnp/devices/media_server_client.py,
93
coherence/upnp/services/clients/av_transport_client.py,
94
coherence/upnp/services/clients/connection_manager_client.py,
95
coherence/upnp/services/clients/content_directory_client.py,
96
coherence/upnp/services/clients/rendering_control_client.py:
97
event UNSUBSCRIBE messages haven't been send out on device
100
Using the proper write method to send out the request and
101
rearrangement of the deferred cascade during the shutdown of
102
Coherence solves that issue.
106
* coherence/upnp/services/servers/connection_manager_server.py:
107
react upon a malformed RemoteProtocolInfo with an error
111
* coherence/upnp/core/DIDLLite.py: remove the '''optional'''
112
preamble from the DIDLLite fragment, as some older
113
ContentDirectory clients - notably the NOXON-2 software - can't
118
* coherence/upnp/devices/media_renderer.py,
119
coherence/upnp/devices/media_server.py: follow-up to [585], do
120
not suppress a lower-version number service announcement
124
* coherence/upnp/core/msearch.py, coherence/upnp/core/ssdp.py: * do
125
not send out ssdp notifications for ''silent'' devices and
126
services on a '''ssdp:all''' request, only answer when exactly
127
irthe type is queried
128
* some log level adjustments
132
* coherence/backends/mediadb_storage.py, coherence/log.py: * handle
133
already existing cover art in the MediaDB store
134
* forgotten argument passing at the log.critical convenience
139
* coherence/upnp/core/ssdp.py: do not append ''SILENT'' to the
144
* coherence/upnp/core/service.py: added a namespace identifier to
145
the event notification xml elements, closes #93
149
* coherence/upnp/core/event.py, coherence/upnp/core/ssdp.py: a
150
follow-up to [586], this time with the right files checked in :-(
154
* coherence/upnp/core/event.py: have a proper event notification
155
sequence number rollover - finally, after all these years ;-)
159
* coherence/upnp/core/event.py, coherence/upnp/core/ssdp.py: added
160
Date header to MSEARCH responses and event subscription messages
161
to make the test-tool (and micxer) happy
165
* coherence/upnp/devices/media_renderer.py,
166
coherence/upnp/devices/media_server.py,
167
coherence/upnp/services/servers/media_receiver_registrar_server.py:
168
do not just register services in relation to the devices version
169
number, react appropriate to version 1 only services like the
170
MediaReceiverRegistrar and the ScheduledRecording one - this
175
* coherence/upnp/core/DIDLLite.py: added ''originalTrackNumber'' to
176
DIDLLite and be bit more tolerant to attributes with integer
181
* coherence/base.py: rearrange log-system initialization - a
182
COHERENCE_DEBUG environment variable has always precedence over
183
the log-level definitions in the config file
187
* coherence/base.py, coherence/log.py: enable logging and level
188
definition per subsystem via configuration file again
192
* coherence/base.py, coherence/log.py: enable logging into a file
193
via configuration again
197
* coherence/base.py: be a bit more informative why a plugin import
202
* coherence/backends/fs_storage.py, coherence/extern/inotify.py:
203
append content of a directory if that directory was '''moved'''
208
* coherence/upnp/core/DIDLLite.py,
209
coherence/upnp/services/clients/content_directory_client.py: *
210
moved upnp:artist into the root class
211
* return more info from the browse request
215
* coherence/backends/fs_storage.py, coherence/upnp/core/service.py,
216
coherence/upnp/core/utils.py,
217
coherence/upnp/services/clients/content_directory_client.py:
218
refinements of the CreateObject and ImportResource methods in the
219
FSStore MediaServer, works fine now with our MediaRenderer
223
* coherence/upnp/core/action.py, coherence/upnp/core/soap_proxy.py:
224
adapt the handling of a single value result to the changes from
225
the move from SOAPpy to our own ElementTree based parser
229
* coherence/__init__.py, coherence/base.py: one more step in the
230
''we get the interface detection right'' direction
234
* coherence/upnp/services/servers/av_transport_server.py: removed
235
some lingering import of twisted.web.soap
239
* coherence/upnp/core/utils.py: a lame fix to get the interface
240
name on OSX, closes #88
244
* coherence/upnp/devices/media_renderer.py,
245
coherence/upnp/devices/media_server.py: fix the wrong if clause
250
* coherence/upnp/devices/media_renderer.py,
251
coherence/upnp/devices/media_server.py: added a keyword argument
252
''no_thread_needed'' (defaults to False) to initiate backends
253
that are Twisted-friendly or need to run in a non-thread
256
2007-07-04 17:03 philn
258
* coherence/extern/inotify.py: call reactor.removeReader when
259
instance release is requested
263
* coherence/__init__.py, coherence/base.py: some rearrangement of
264
the eggs plugin handling
266
* entrypoints are looked up only if there is at least one plugin
271
* coherence/extern/covers_by_amazon.py: now the proper doc string
276
* coherence/extern/covers_by_amazon.py: doc string adjustment
280
* coherence/extern/covers_by_amazon.py: some cosmetic changes re
283
2007-07-03 15:29 philn
285
* coherence/extern/covers_by_amazon.py: applied patch from
288
2007-07-03 15:03 philn
290
* coherence/backends/mediadb_storage.py,
291
coherence/extern/covers_by_amazon.py: API key is now a parameter
296
* MANIFEST.in, coherence/extern/covers_by_amazon.py,
297
coherence/extern/et.py, coherence/upnp/core/utils.py: * added
298
MANIFEST.in to be prepared for the exclusion of the debion
300
* moved parse_xml out of upnp.core.utils.py into
301
coherence.extern.et.py, to remove the dependency from
306
* coherence/backends/elisa_renderer.py: changed the check for a
309
2007-07-02 17:06 philn
311
* coherence/backends/elisa_renderer.py,
312
coherence/upnp/core/ssdp.py: various fixes
316
* coherence/base.py: do not '''print''' the tracebacks, return them
317
as string for the log system to handle them
321
* coherence/extern/et.py: we need that specific module import path
322
for the ElementTree module on the Python 2.5 version on the Maemo
325
2007-06-29 17:17 philn
327
* coherence/upnp/core/device.py, coherence/upnp/core/ssdp.py: don't
328
attempt to write on None transport
330
2007-06-27 19:17 philn
332
* coherence/backends/elisa_storage.py: ObjectIDs are not integers
337
* coherence/backends/fs_storage.py,
338
coherence/upnp/core/DIDLLite.py: small change to see if we can
339
support album art on the container level
343
* coherence/upnp/core/DIDLLite.py: DLNA attributes for
344
upnp:albumArtURI (testing)
348
* coherence/upnp/core/DIDLLite.py: disable DLNA decorator due to
353
* coherence/extern/et.py, coherence/upnp/core/utils.py: set proper
354
default encoding and handle data that is unicode already
358
* coherence/upnp/devices/media_server.py: reduce noise
362
* coherence/extern/et.py, coherence/upnp/core/DIDLLite.py,
363
coherence/upnp/core/soap_lite.py: changed some of the ElementTree
364
action to really send out utf-8 data (experimental and untested
365
with Python2.4), re #89
369
* coherence/upnp/devices/media_renderer_client.py,
370
coherence/upnp/devices/media_server_client.py: follow up to
371
[510], adjusting some debug helper methods
375
* coherence/upnp/core/DIDLLite.py, coherence/upnp/core/dlna.py: * a
376
beginning of a DLNA decorator module
377
* added xml preamble to the DIDLLite string
381
* coherence/upnp/core/variable.py: add the device usn as a
382
parameter to the StateVariable updated notification
386
* coherence/base.py, coherence/upnp/core/device.py,
387
coherence/upnp/core/ssdp.py: some modifications on the reaction
388
upon a SSDP device bye-bye message
392
* coherence/upnp/devices/media_server_client.py: adjusting to the
393
new ContentDirectoryService ''browse'' action
397
* coherence/backends/flickr_storage.py,
398
coherence/backends/fs_storage.py,
399
coherence/upnp/devices/media_server.py: some more fixed regarding
400
the unicode filenames
404
* coherence/upnp/services/clients/content_directory_client.py:
405
preserve backward compatibility, call new version of the UPnP
406
ContentDirectoryService client Browse action only if requested
411
* coherence/extern/inotify.py: some solution to handle unicode
412
pathnames, again this might work only on utf-8 encoded
417
* coherence/upnp/services/clients/content_directory_client.py: new
418
version of the UPnP ContentDirectoryService client Browse action,
419
returns a dict with the results of the query as another dict with
420
the key ''items'' included. Might maybe change once more.
424
* coherence/backends/fs_storage.py,
425
coherence/backends/gstreamer_audio_player.py: * add mp4 files to
426
the list of supported protocolType - closes #87, thx!
427
* store filenames within the FSStore MediaServer as unicode
429
This will probably still have issues with filesystems that don't
434
* coherence/upnp/devices/media_renderer.py,
435
coherence/upnp/devices/media_server.py: get around a missing
436
method in the new logging framework
440
* coherence/backends/flickr_storage.py: added missing Loggable
443
2007-06-22 14:47 philn
445
* coherence/upnp/core/service.py: ServiceServer should be a
450
* coherence/backends/fs_storage.py,
451
coherence/backends/gstreamer_audio_player.py: some protocolType
452
additions for a simple test of the video handling capabilities of
453
the MediaServer and the MediaRenderer
457
* coherence/upnp/devices/media_renderer.py: fixed missing import
458
that broke the MediaRenderer
462
* coherence/extern/covers_by_amazon.py: added usage restrictions
463
(by the Amazon Webservices license) to the doc string
465
2007-06-20 09:27 philn
467
* coherence/base.py, coherence/upnp/core/event.py,
468
coherence/upnp/devices/control_point.py: changed some warnings to
471
2007-06-20 09:01 philn
473
* ., coherence/log.py: forgot a file
475
2007-06-20 08:58 philn
477
* ChangeLog, coherence/backends/axiscam_storage.py,
478
coherence/backends/buzztard_control.py,
479
coherence/backends/elisa_renderer.py,
480
coherence/backends/flickr_storage.py,
481
coherence/backends/fs_storage.py,
482
coherence/backends/gstreamer_audio_player.py,
483
coherence/backends/mediadb_storage.py, coherence/base.py,
484
coherence/upnp/core/action.py, coherence/upnp/core/device.py,
485
coherence/upnp/core/event.py, coherence/upnp/core/msearch.py,
486
coherence/upnp/core/service.py,
487
coherence/upnp/core/soap_service.py, coherence/upnp/core/ssdp.py,
488
coherence/upnp/core/variable.py,
489
coherence/upnp/devices/control_point.py,
490
coherence/upnp/devices/media_renderer.py,
491
coherence/upnp/devices/media_renderer_client.py,
492
coherence/upnp/devices/media_server.py,
493
coherence/upnp/devices/media_server_client.py,
494
coherence/upnp/services/servers/connection_manager_server.py,
495
coherence/web/ui.py: * coherence/backends/axiscam_storage.py:
496
* coherence/backends/buzztard_control.py:
497
* coherence/backends/elisa_renderer.py:
498
* coherence/backends/flickr_storage.py:
499
* coherence/backends/fs_storage.py:
500
* coherence/backends/gstreamer_audio_player.py:
501
* coherence/backends/mediadb_storage.py:
503
* coherence/upnp/core/action.py:
504
* coherence/upnp/core/device.py:
505
* coherence/upnp/core/event.py:
506
* coherence/upnp/core/msearch.py:
507
* coherence/upnp/core/service.py:
508
* coherence/upnp/core/soap_service.py:
509
* coherence/upnp/core/ssdp.py:
510
* coherence/upnp/core/variable.py:
511
* coherence/upnp/devices/control_point.py:
512
* coherence/upnp/devices/media_renderer.py:
513
* coherence/upnp/devices/media_renderer_client.py:
514
* coherence/upnp/devices/media_server.py:
515
* coherence/upnp/devices/media_server_client.py:
516
* coherence/upnp/services/servers/connection_manager_server.py:
517
* coherence/web/ui.py:
518
Slighly changed the way we do logging :-) There's now a
519
COHERENCE_DEBUG env variable you can use to debug Coherence.
523
* coherence/upnp/core/soap_lite.py,
524
coherence/upnp/core/soap_service.py: more rework on the creation
525
of an UPnP SOAP error
529
* coherence/upnp/core/service.py: changed a log level
533
* coherence/upnp/core/ssdp.py: send bye-bye notifications for
534
"silent" (not-actively) announced devices/services
538
* coherence/upnp/core/soap_service.py: bug fix for wrong UPnPError
543
* coherence/extern/elementsoap, coherence/upnp/core/action.py,
544
coherence/upnp/core/soap_lite.py,
545
coherence/upnp/core/soap_proxy.py,
546
coherence/upnp/core/soap_service.py: * rewrite of the SOAP
547
classes, now relying solely on the ElementTree api.
548
* this allows us to remove the SOAPpy dependency
552
* coherence/extern/logger.py: bug fix
556
* coherence/__init__.py, coherence/base.py,
557
coherence/upnp/core/device.py, coherence/upnp/core/service.py,
558
coherence/upnp/core/utils.py: * add a new device only to the
559
internal list of devices after the detection of its services and
560
its own one has completed successfully, re #82
561
* maybe keep a reference of that unsuccessful attempt and ignore
562
this device after three,... failed attempts?
563
* be more informative about errors during plugin setup
564
* increase svn version number to 0.3.1
568
* coherence/upnp/devices/media_renderer.py,
569
coherence/upnp/devices/media_server.py: create better looking
570
(more readable) xml when in debug mode
574
* coherence/extern/logger.py: helper methods to find out on which
579
* coherence/extern/et.py: a little helper method to generate
584
* coherence/extern/covers_by_amazon.py: make the WorkQueue a bit
589
* setup.py: added version news into the package description
593
* ChangeLog, coherence/__init__.py,
594
coherence/backends/fs_storage.py: preparations for the 0.3.0
599
* coherence/upnp/core/ssdp.py,
600
coherence/upnp/devices/media_renderer.py,
601
coherence/upnp/devices/media_server.py: make some local device
602
and service registrations ''silent'', meaning not announcing them
603
via SSDP alive notification messages, but still answer for
606
This should solve an issue causing the PS3 to overbalance when
607
getting notification messages from the same device for different
612
* coherence/backends/fs_storage.py,
613
coherence/upnp/core/DIDLLite.py: revert some changes made during
614
the PS3 tests which seem to be unnecessary
618
* coherence/upnp/core/service.py,
619
coherence/upnp/devices/media_server.py: fixes some wrong
620
assumption about an int really being one
624
* coherence/__init__.py, coherence/backends/elisa_storage.py,
625
coherence/backends/fs_storage.py,
626
coherence/backends/gstreamer_audio_player.py,
627
coherence/extern/et.py, coherence/extern/inotify.py,
628
coherence/extern/uuid/uuid.README.txt,
629
coherence/upnp/core/DIDLLite.py, coherence/upnp/core/event.py,
630
coherence/upnp/core/service.py,
631
coherence/upnp/core/soap_service.py, coherence/upnp/core/ssdp.py,
632
coherence/upnp/core/utils.py,
633
coherence/upnp/devices/media_server.py,
634
coherence/upnp/services/servers/connection_manager_server.py,
635
docs/coherence.conf.example, tests/rpc_client.py: merged all
636
PS3-test branch changes r456:469 back into trunk.
640
* coherence/upnp/devices/media_renderer.py,
641
coherence/upnp/devices/media_server.py: enable support for device
644
configuration isn't yet optimal - in the section of the
645
MediaServer or MediaRenderer backend in the config file we need
654
url = file:///home/dev/elisa/elisa.png
657
or in the config dict:
660
'icon': { 'url':'http://coherence.beebits.net/image.png',
661
'mimetype': 'image/png',
669
[http://upnp.org/specs/arch/UPnP-DeviceArchitecture-v1.0-20060720.pdf
670
UPnP Device Architecture p.28] all fields are required. Maybe
671
later Coherence can autogenerate the values with a PIL call.
673
Multiple icons are supported to. The config above has to be
674
wrapped into an '''icons''' section or dictionary, and the
675
'''icon''' has to be replaced with an unique name.
679
* coherence/backends/elisa_storage.py,
680
coherence/upnp/core/DIDLLite.py: enable the Elisa MediaServer to
681
supply cover images too
685
* coherence/backends/mediadb_storage.py: use other id3 tag library
686
([http://pyid3lib.sourceforge.net pyid3lib]) if available, as
687
requested by konttori
691
* coherence/upnp/devices/media_server.py: small cleanup
695
* coherence/extern/covers_by_amazon.py: * works now with artist and
701
* coherence/backends/mediadb_storage.py: this is a comment addon
704
* added the image extension to the cover request uri, so clients
705
like the Nokia Media Streamer - which determine the image type by
706
extension and ignore the mimetype - can handle it. This closes
709
* reworked the container structure and added an "All tracks of
710
<artist>" at the beginning of the Artist container
714
* coherence/backends/mediadb_storage.py,
715
coherence/upnp/devices/media_server.py: adapt the recognition of
716
a request for cover art to the new uri with the image extension
721
* coherence/upnp/services/servers/content_directory_server.py:
722
remove the wrong conversion of the ObjectID to an integer
726
* coherence/upnp/devices/media_server.py: adjustments to proper
727
display unicode names and titles in the web-interface
731
* coherence/backends/mediadb_storage.py: Look Ma - now with 'All'
732
and 'Artists' containers
736
* coherence/upnp/core/utils.py: some minor cleanup
740
* coherence/backends/mediadb_storage.py: * made the MediaStore a
741
working MediaServer backend
742
* added album art/cover image support
746
* coherence/upnp/devices/media_server.py: adjustments to work with
747
the MediaStore backend and to support album art/cover retrieval
751
* coherence/upnp/core/DIDLLite.py: extend MusicTrack with
752
'upnp:albumArtURI' attribute, which could move up to Item anyway
756
* coherence/extern/covers_by_amazon.py: allow keeping the received
757
image in memory or converting it into a different format with
758
[http://www.pythonware.com/products/pil/index.htm PIL]
762
* coherence/backends/buzztard_control.py,
763
coherence/backends/flickr_storage.py,
764
coherence/backends/fs_storage.py,
765
coherence/upnp/services/servers/content_directory_server.py: use
766
methods to access the MediaServer item attributes, allowing the
767
item to create them on the fly
771
* setup.py: add the new MediaStore backend to the MediaServer
776
* coherence/extern/logger.py: got it right this time? :-/
780
* coherence/extern/logger.py: handle unicode log msg arguments
784
* coherence/backends/mediadb_storage.py: first version of a
785
MediaStore with a database backend, provides some basic internal
786
functionality, but far from complete
790
* coherence/extern/covers_by_amazon.py: deal a bit better with the
795
* coherence/extern/covers_by_amazon.py: now callback handling with
800
* coherence/extern/covers_by_amazon.py: added a callback parameter,
801
so the initiator will get informed when an image retrieval has
806
* coherence/extern/covers_by_amazon.py: a small helper module to
807
retrieve covers/album-art via the Amazon ECommerce Webservice
810
* works for ASIN and ARTIST/TITLE
811
* saves the retrieved image in a file
812
* includes a small Queue module to reduce the number of parallel
817
* coherence/extern/inotify.py: added system call ids for ARM/Maemo
822
* coherence/upnp/core/event.py: reduce the amount of log output
826
* coherence/backends/gstreamer_audio_player.py, setup.py: rework of
827
the GStreamer MediaRenderer
829
supports ogg now and works way better on the N800 (still a few
830
issues open, e.g. seems to stop sending UPnP events)
836
* coherence/upnp/core/service.py: store the information about
837
vendor defines in the ''allowed value range'' too
841
* coherence/backends/fs_storage.py,
842
coherence/upnp/core/DIDLLite.py: adaption for ogg-files
846
* coherence/__init__.py, coherence/base.py,
847
coherence/upnp/core/device.py, coherence/upnp/core/event.py,
848
coherence/upnp/core/service.py, coherence/upnp/core/ssdp.py: Fix
849
the shutdown method of Coherence, the
850
''reactor.addSystemEventTrigger( 'before', 'shutdown',
851
self.shutdown)'' expects self.shutdown to return a deferred and
852
waits until that has finished.
855
[http://twistedmatrix.com/projects/core/documentation/howto/defer.html#auto7
856
deferredList] in which we collect and wait for all cleanups that
859
In addition the way the event unsubscription had to be changed. A
860
new EventProtocol instance seems not to be created by the
861
ClientCreater when the reactor is going down. Which makes some
864
So we keep the protocol instance after our first event
865
subscription request for reuse around and are now able to send
866
out the unsubscribe request.
868
This fixes #75 - at least it is supposed to. If not pls reopen
873
* coherence/backends/flickr_storage.py: Flickr seems to have
874
changed the way original photos can be retrieved.
876
[http://flickr.com/services/api/misc.urls.html Flickr Photo
879
To access the original photos, we need to construct the url with
880
an ''originalsecret'', which isn't returned in the response to
883
So for now we just take the default image (medium resolution?)
884
that Flickr offers and try to sort out later what's needed to
885
retrieve that ''originalsecret'' value.
889
2007-04-26 10:54 micxer
891
* coherence/extern/uuid/uuid.py: fixed typo in uuid.py
895
* coherence/backends/gstreamer_audio_player.py: added id3lib to the
896
GStreamer pipeline on the N800, to avoid crashes of dspmp3sink
897
with files containing tags it cant handle
901
* coherence/backends/fs_storage.py,
902
coherence/upnp/devices/control_point.py,
903
coherence/upnp/devices/media_server.py, tests/rpc_client.py:
904
added the missing http-put content import method, needs probably
905
a bit more error checking
908
tests/rpc_client.py -c put_resource
909
"url=http://host:port/uuid/id?import" "path=file.mp3"
914
* coherence/backends/gstreamer_audio_player.py: more work on the
915
GStreamer MediaRenderer for the Nokia N800,
916
fixed some wrong assumptions on how GStreamer ticks,
921
* coherence/backends/gstreamer_audio_player.py: volume control on
922
the Nokia N800 dspm3sink
926
* coherence/backends/gstreamer_audio_player.py: some changes in the
927
GStreamer MediaRenderer to work on the Nokia N800, addresses #74
931
* coherence/upnp/services/clients/av_transport_client.py: added
932
necessary parameter for AVTransport Play (we do check this now)
936
* tests/rpc_client.py: cut 'n paste error
940
* coherence/upnp/devices/control_point.py, tests/rpc_client.py:
941
more work on the ContentDirectory action ImportResource? in the
942
file-system MediaServer
944
an upload should now be possible with
947
test/rpc_client.py -c import_resource -d <uuid of MediaServer>
948
source_uri=http://host/file
949
destination_uri=http://mediaserver/location?import
954
* coherence/backends/fs_storage.py: handle non-existent inotify
959
* setup.py: generate download url from __version__
963
* coherence/__init__.py, coherence/backends/fs_storage.py,
964
coherence/backends/gstreamer_audio_player.py,
965
coherence/upnp/core/DIDLLite.py, coherence/upnp/core/utils.py,
966
coherence/upnp/devices/control_point.py,
967
coherence/upnp/devices/media_server.py,
968
coherence/upnp/services/clients/content_directory_client.py,
969
coherence/upnp/services/servers/content_directory_server.py,
970
tests/rpc_client.py: initial work to support the ContentDirectory
971
actions CreateObject and ImportResource in the file-system
974
for testing there is at the moment only the rpc_client
977
test/rpc_client.py -c list_devices
979
test/rpc_client.py -c create_object -d <uuid of MediaServer> -i
980
1000 title=abc upnp_class=object.container.storageFolder
986
* coherence/__init__.py, coherence/base.py: fix plugin load for
987
plugins with missing dependencies
991
* setup.py: update setup.py to allow registering with pypi
995
* coherence/__init__.py: update version to 0.2.0
999
* coherence/backends/axiscam_storage.py: put the signal somethere
1000
where it makes sense
1002
2007-03-26 11:58 dev
1004
* coherence/backends/elisa_renderer.py: some more fixes for the
1007
2007-03-26 11:57 dev
1009
* coherence/backends/axiscam_storage.py: add forgotten louie signal
1010
to the axiscam_store
1012
2007-03-23 10:52 dev
1014
* coherence/backends/elisa_renderer.py,
1015
coherence/backends/elisa_storage.py, coherence/base.py,
1016
coherence/upnp/core/utils.py: remove twisted internal
1017
log-messages from the Coherence log
1019
2007-03-22 22:01 dev
1021
* coherence/__init__.py, coherence/backends/elisa_renderer.py,
1022
coherence/backends/elisa_storage.py: incooperated patch from
1023
philn with some minor adjustments
1027
2007-03-21 09:50 philn
1029
* coherence/backends/elisa_renderer.py,
1030
coherence/backends/elisa_storage.py: Some progress on internal
1033
2007-03-20 19:51 dev
1035
* coherence/plugins: removed not needed plugins directory
1037
2007-03-20 19:50 dev
1039
* coherence/__init__.py, coherence/base.py, setup.py: switched to
1040
an entry points/setuptools based plugin system as
1041
[http://base-art.net/Articles/64/ described by Philippe Normand]
1043
current entry points are:
1045
* coherence.plugins.backend.media_server
1046
* coherence.plugins.backend.media_renderer
1048
Now external backends can much easier integrated and even
1049
installed separately.
1051
This addresses #22 and closes #42.
1053
2007-03-20 19:38 dev
1055
* coherence/backends/gstreamer_audio_player.py,
1056
docs/coherence.conf.example: renamend GStreamer MediaRenderer
1057
class from Player to GStreamerPlayer to be a bit more descriptive
1058
in the plugin definition
1060
2007-03-20 19:27 dev
1062
* coherence/upnp/core/device.py, coherence/upnp/core/service.py:
1063
more fixes following [384]
1065
2007-03-18 13:49 dev
1067
* coherence/upnp/core/device.py, coherence/upnp/core/service.py,
1068
coherence/upnp/core/soap_proxy.py: proper handle of deferred
1069
result, that's now a tuple
1070
error introduced in [384]
1072
2007-03-18 11:56 philn
1074
* coherence/upnp/core/utils.py: twisted.web.getPage returns a list
1077
2007-03-15 22:23 dev
1079
* coherence/upnp/core/device.py, coherence/upnp/core/service.py,
1080
coherence/upnp/core/soap_proxy.py, coherence/upnp/core/utils.py:
1081
disable log messages from the twisted.web.client in switching to
1084
2007-03-15 10:13 dev
1086
* coherence/backends/buzztard_control.py: more work in the Buzztard
1087
ContentDirectory update
1089
2007-03-14 21:57 dev
1091
* coherence/backends/buzztard_control.py: attempt to fix missing
1092
ContentDirectory change event propagation
1094
2007-03-14 16:20 dev
1096
* coherence/backends/buzztard_control.py: some update on the repeat
1099
2007-03-14 16:16 dev
1101
* coherence/backends/buzztard_control.py: fix for missing stream
1104
2007-03-14 16:04 dev
1106
* coherence/backends/buzztard_control.py: added playmode handling -
1107
NORMAL|REPEAT_ONE|REPEAT_ALL
1109
2007-03-14 15:42 dev
1111
* coherence/backends/gstreamer_audio_player.py: small fix regarding
1112
upnp_SetAVTransportURI, do not return an error when no
1113
CurrentURIMetaData is present
1115
2007-03-14 15:40 dev
1117
* coherence/__init__.py, docs/coherence.conf.example: version up to
1118
0.1.2 and proper config example again
1120
2007-03-14 15:40 dev
1122
* coherence/backends/buzztard_control.py,
1123
coherence/upnp/core/service.py: change print to log.msg
1125
2007-03-14 15:39 dev
1127
* coherence/base.py, coherence/extern/logger.py: switch in
1128
logger.py to the twisted.python.log module and activated the
1133
2007-03-13 22:03 dev
1135
* coherence/backends/buzztard_control.py: next fix
1137
2007-03-13 21:48 dev
1139
* coherence/backends/buzztard_control.py: use label:<index> as uri
1141
2007-03-13 21:38 dev
1143
* coherence/backends/buzztard_control.py: proper host setting for
1146
2007-03-13 21:24 dev
1148
* coherence/backends/buzztard_control.py: fix for now unused
1151
2007-03-13 21:17 dev
1153
* coherence/backends/buzztard_control.py: more debug output
1155
2007-03-13 21:01 dev
1157
* coherence/backends/buzztard_control.py,
1158
coherence/upnp/core/DIDLLite.py: a not so smart attempt to
1159
outsmart Nokias Media Streamer
1161
2007-03-13 20:34 dev
1163
* coherence/backends/buzztard_control.py: bind the matching methods
1166
2007-03-13 20:30 dev
1168
* coherence/backends/buzztard_control.py: some update on the play
1171
2007-03-13 20:15 dev
1173
* coherence/backends/buzztard_control.py: some changes on how
1174
volume and mute values are retrieved
1176
2007-03-13 14:28 dev
1178
* coherence/backends/buzztard_control.py: add Volume and Mute
1179
handling to the Buzztard control
1181
2007-03-13 13:52 dev
1183
* coherence/backends/buzztard_control.py,
1184
coherence/backends/buzztard_renderer.py,
1185
coherence/backends/buzztard_storage.py, coherence/base.py: merge
1186
Buzzard MediaServer and MediaRenderer in one file
1188
2007-03-13 10:18 dev
1190
* coherence/upnp/core/variable.py: proper handling of allowed
1191
values in StateVariables with vendor defines
1193
2007-03-13 09:43 dev
1195
* coherence/upnp/devices/media_renderer_client.py: stupid
1196
copy&paste left over
1198
2007-03-12 22:02 dev
1200
* coherence/backends/buzztard_storage.py: one more fix
1202
2007-03-12 21:56 dev
1204
* coherence/backends/buzztard_storage.py: add playlist prefix to
1205
Buzztard browse response
1207
2007-03-12 21:52 dev
1209
* coherence/backends/buzztard_storage.py: next fix on event
1212
2007-03-12 21:48 dev
1214
* coherence/backends/buzztard_storage.py: fix on event signal
1216
2007-03-12 21:43 dev
1218
* coherence/backends/buzztard_storage.py: connect Buzztard flush
1221
2007-03-12 21:38 dev
1223
* coherence/backends/buzztard_storage.py: signal a Buzztad event to
1226
2007-03-12 21:33 dev
1228
* coherence/backends/buzztard_renderer.py,
1229
coherence/backends/buzztard_storage.py, coherence/base.py,
1230
docs/coherence.conf.example: combine Buzztard MediaServer and
1233
2007-03-12 19:52 dev
1235
* coherence/backends/buzztard_renderer.py: minor fix for Buzztard
1238
2007-03-12 19:46 dev
1240
* coherence/backends/buzztard_storage.py: forgot to tupleize
1242
2007-03-12 18:40 dev
1244
* coherence/upnp/core/service.py: one more correction on how the
1245
StateVariable 'LastChange' is evented.
1247
This is a follow up to [334] and addresses #70
1249
2007-03-12 18:34 dev
1251
* coherence/upnp/core/event.py: be a bit more verbose on the log
1254
2007-03-12 17:09 dev
1256
* coherence/backends/elisa_renderer.py: fixes for the Elisa
1259
2007-03-11 20:41 dev
1261
* coherence/backends/buzztard_renderer.py,
1262
coherence/backends/buzztard_storage.py,
1263
docs/coherence.conf.example: append index number to the buzztard
1266
2007-03-11 20:27 dev
1268
* coherence/backends/buzztard_renderer.py: further updates on the
1269
Buzztard MediaRenderer
1271
2007-03-11 10:49 dev
1273
* coherence/backends/buzztard_renderer.py,
1274
docs/coherence.conf.example: update on the Buzztard MediaRenderer
1276
2007-03-10 14:55 dev
1278
* coherence/backends/buzztard_storage.py: fix missing import
1280
2007-03-10 14:27 dev
1282
* coherence/backends/buzztard_storage.py: wrong name fix
1284
2007-03-10 14:03 dev
1286
* coherence/base.py: activate buzztard_* backends
1288
2007-03-10 13:56 dev
1290
* coherence/backends/buzztard_renderer.py,
1291
coherence/backends/buzztard_storage.py,
1292
docs/coherence.conf.example: more work on the Buzztard
1295
2007-03-10 12:22 dev
1297
* coherence/backends/elisa_renderer.py: removed a noisy print
1299
2007-03-10 10:37 dev
1301
* coherence/backends/buzztard_storage.py,
1302
coherence/backends/elisa_storage.py,
1303
coherence/backends/flickr_storage.py,
1304
coherence/backends/fs_storage.py,
1305
coherence/upnp/devices/media_renderer.py,
1306
coherence/upnp/devices/media_server.py: use louie signal for
1307
backend<->device communication
1309
2007-03-09 14:31 dev
1311
* coherence/upnp/core/service.py, coherence/upnp/core/variable.py,
1312
coherence/upnp/core/xml-service-descriptions/AVTransport2.xml:
1313
update a StateVariable value only if the value really, really has
1316
added a new attribute to the xml service description to prevent
1317
certain nonevented variables to not even show up in a LastChange
1320
2007-03-09 14:23 dev
1322
* coherence/upnp/services/servers/connection_manager_server.py:
1323
make StateVariable CurrentConnectionIDs work for the MediaServer
1326
2007-03-09 14:20 dev
1328
* coherence/upnp/core/event.py: be more specific in the log message
1329
about the destination of the event notification
1331
2007-03-09 14:19 dev
1333
* coherence/backends/elisa_renderer.py,
1334
coherence/backends/gstreamer_audio_player.py: set the
1335
res@duration attribute on every res item
1337
2007-03-08 16:14 dev
1339
* coherence/backends/gstreamer_audio_player.py: revert small typo
1342
2007-03-08 15:39 dev
1344
* coherence/backends/gstreamer_audio_player.py: first shot to
1345
choose a suitable resource from within the MediaRenderer, helps
1346
e.g. with the "internal:" resources and Nokias Media Streamer,
1349
2007-03-08 14:25 dev
1351
* coherence/upnp/core/service.py: on a LastChange event send only
1352
the StateVariables that have been changed
1354
2007-03-07 20:24 dev
1356
* coherence/backends/buzztard_storage.py: initial version of a
1357
MediaStreamer backend for [http://www.buzztard.org Buzztard]
1359
2007-03-07 09:34 dev
1361
* coherence/base.py: catch traceback if hostname resolving fails,
1364
2007-03-06 09:44 dev
1366
* coherence/backends/elisa_renderer.py,
1367
coherence/backends/elisa_storage.py: add support for 'internal'
1368
res items to the Elisa backends
1370
2007-03-06 09:16 dev
1372
* coherence/backends/elisa_renderer.py,
1373
coherence/backends/gstreamer_audio_player.py: fix for empty
1376
2007-03-06 08:23 dev
1378
* coherence/backends/fs_storage.py,
1379
coherence/backends/gstreamer_audio_player.py: test for additional
1380
'internal' res items
1382
2007-03-06 08:19 dev
1384
* coherence/upnp/core/variable.py: fix traceback due to a wrong
1387
2007-03-05 18:06 dev
1389
* coherence/backends/axiscam_storage.py: better mimetype and
1390
protocol_type handling
1392
2007-03-05 18:02 dev
1394
* coherence/upnp/core/variable.py: allow Set for string
1395
StateVariable update too
1397
2007-03-05 14:56 dev
1399
* coherence/backends/axiscam_storage.py, coherence/base.py: Axis
1400
Cam MediaServer, addresses #67
1402
needs a config entry like this:
1407
name = Elisa is watching you
1409
url = http://192.168.1.222:554/mpeg4/1/media.amp
1410
protocol = rtsp-rtp-udp:*:video/MP4V-ES:*
1412
url = http://192.168.1.222:554/mpeg4/2/media.amp
1413
protocol = rtsp-rtp-udp:*:video/MP4V-ES:*
1416
2007-03-05 13:35 dev
1418
* coherence/upnp/devices/media_server.py: fix wrong
1419
ContentDirectory web-listing resource
1421
2007-03-05 09:33 dev
1423
* coherence/upnp/core/variable.py: Allow the update value for a
1424
StateVariable of type string to be
1427
* a comma-separated string
1431
Lists and tuples will be transformed into a comma-separated
1434
2007-03-02 14:57 dev
1436
* coherence/upnp/devices/media_renderer_client.py: del proper
1437
service object when removing MediaRenderer device client
1439
2007-02-20 20:05 dev
1441
* coherence/backends/elisa_renderer.py,
1442
coherence/backends/gstreamer_audio_player.py: some changes to
1443
better follow the specs (maybe), at least we get now a progress
1444
report with the N800 Media Streamer
1448
2007-02-20 19:27 dev
1450
* coherence/upnp/core/DIDLLite.py: added handling of duration
1451
attribute to Resource
1453
2007-02-20 19:26 dev
1455
* coherence/upnp/core/xml-service-descriptions/AVTransport2.xml:
1456
correct default value
1458
2007-02-20 10:41 dev
1460
* coherence/backends/elisa_renderer.py: now with position and
1463
2007-02-19 20:48 dev
1465
* coherence/backends/elisa_renderer.py: cleanups and a simple test
1466
to retrieve the state info from the Elisa player
1468
2007-02-19 16:01 dev
1470
* coherence/backends/elisa_renderer.py: now with load, play, pause
1473
2007-02-19 15:02 dev
1475
* coherence/backends/elisa_renderer.py,
1476
coherence/backends/gstreamer_audio_player.py,
1477
coherence/upnp/devices/media_renderer.py,
1478
docs/coherence.conf.example: first version of a MediaRenderer
1479
backend for Elisa (needs a patched player.py in Elisa)
1481
using signal 'Coherence.UPnP.Backend.init_completed' to notify
1482
when the backend has finished initialization, as for the Elsia
1483
backend we need to wait for the twisted.pb connection to Elisa
1485
corresponding changes in backends/gstreamer_audio_player.py and
1486
devices/media_renderer.py
1488
2007-02-19 14:53 dev
1490
* coherence/__init__.py, setup.py: move version to 0.1.1 and
1491
retrieve it in setup.py from coherence.__init__.py
1493
2007-02-19 14:52 dev
1495
* coherence/base.py: small fix for better error handling with a
1496
nonexistant backend/device
1498
2007-02-19 14:50 dev
1500
* coherence/upnp/core/service.py: allow passing a deferred to
1501
service.set_variable and update the value with the result that
1504
2007-02-17 09:09 dev
1506
* ., coherence/backends/fs_storage.py,
1507
coherence/upnp/devices/media_server.py,
1508
docs/coherence.conf.example: allow to export from the FSStore
1509
more than one physical directory
1513
2007-02-16 14:25 dev
1515
* coherence/upnp/core/DIDLLite.py, coherence/upnp/core/utils.py:
1516
added datefaker function to utils.py and use it for UPnP items
1517
with no own date element.
1519
This closes #60 and addresses #59.
1521
2007-02-16 09:45 dev
1523
* setup.py: version change in setup.py from 0.1 to 0.1.0
1525
2007-02-15 09:56 dev
1527
* docs/coherence.conf.example: add the serverport default value
1528
change to the config file
1530
2007-02-15 09:54 dev
1532
* coherence/backends/flickr_storage.py,
1533
coherence/backends/fs_storage.py,
1534
coherence/extern/elementsoap/ElementGoogle.py,
1535
coherence/extern/elementsoap/ElementSOAP.py,
1536
coherence/extern/elementsoap/ElementTree.py,
1537
coherence/extern/elementsoap/HTTPClient.py,
1538
coherence/extern/elementsoap/__init__.py, coherence/extern/et.py,
1539
coherence/upnp/core/DIDLLite.py, coherence/upnp/core/device.py,
1540
coherence/upnp/core/service.py,
1541
coherence/upnp/core/soap_proxy.py,
1542
coherence/upnp/core/soap_service.py,
1543
coherence/upnp/core/utils.py,
1544
coherence/upnp/devices/media_renderer.py,
1545
coherence/upnp/devices/media_server.py,
1546
coherence/upnp/services/servers/av_transport_server.py,
1547
coherence/upnp/services/servers/connection_manager_server.py,
1548
coherence/upnp/services/servers/content_directory_server.py,
1549
coherence/upnp/services/servers/media_receiver_registrar_server.py,
1550
coherence/upnp/services/servers/rendering_control_server.py:
1551
merge branch go-4-python-2.5 changes r302:303 into trunk
1553
2007-02-15 09:51 dev
1555
* coherence/web/__init__.py, coherence/web/ui.py: add forgotten UI
1558
2007-02-15 08:57 dev
1560
* coherence/base.py: make the port used for all the http related
1561
services by default choosable by the OS, this closes #65
1563
2007-02-12 20:09 dev
1565
* coherence/base.py, coherence/web/Coherence.Base.js,
1566
coherence/web/Coherence.Devices.js,
1567
coherence/web/Coherence.Logging.js, coherence/web/Coherence.js,
1568
coherence/web/MochiKit.js, coherence/web/main.css,
1569
coherence/web/static, coherence/web/static/Coherence.Base.js,
1570
coherence/web/static/Coherence.Devices.js,
1571
coherence/web/static/Coherence.Logging.js,
1572
coherence/web/static/Coherence.js,
1573
coherence/web/static/MochiKit.js, coherence/web/static/main.css,
1574
docs/coherence.conf.example, setup.py: - rework of the web
1576
- get everything Nevow related in its own package
1578
this closes #44 and in some way #64
1580
2007-02-12 14:25 dev
1582
* coherence/base.py, coherence/web/Coherence.Base.js,
1583
coherence/web/Coherence.Devices.js,
1584
coherence/web/Coherence.Logging.js, coherence/web/main.css: bring
1585
new web-interface up to date with Nevow >= 0.9
1587
2007-02-12 14:22 dev
1589
* coherence/upnp/services/clients/content_directory_client.py: an
1590
attempt to solve the encoding issues re #63
1592
2007-02-12 11:15 dev
1594
* coherence/upnp/core/service.py: check if we aren't removed
1595
already from the subscribers dict
1597
2007-02-11 10:44 dev
1599
* coherence/extern/elementsoap/ElementSOAP.py,
1600
coherence/upnp/core/DIDLLite.py, coherence/upnp/core/action.py,
1601
coherence/upnp/core/device.py, coherence/upnp/core/event.py,
1602
coherence/upnp/core/service.py,
1603
coherence/upnp/core/soap_proxy.py, coherence/upnp/core/ssdp.py,
1604
coherence/upnp/devices/control_point.py,
1605
coherence/upnp/devices/media_renderer_client.py,
1606
coherence/upnp/services/clients/av_transport_client.py,
1607
coherence/upnp/services/clients/connection_manager_client.py,
1608
coherence/upnp/services/clients/content_directory_client.py,
1609
coherence/upnp/services/clients/rendering_control_client.py:
1610
removed unnecessary executable bit on python module files, closes
1613
2007-02-11 10:33 dev
1615
* coherence/upnp/core/utils.py: added missing failure class
1617
2007-02-11 10:31 dev
1619
* setup.py: include data files (non-python) in setup too
1621
2007-02-09 13:09 dev
1623
* coherence/upnp/core/variable.py: follow up to [292]
1625
2007-02-09 12:30 philn
1627
* coherence/backends/elisa_storage.py,
1628
coherence/upnp/core/utils.py: Some XML parsing and elisa_storage
1631
2007-02-09 11:54 philn
1633
* coherence/upnp/core/variable.py: when variable value is unicode,
1636
2007-02-09 10:58 philn
1638
* coherence/upnp/services/clients/content_directory_client.py:
1639
removed some prints and try to deal better with empty browse
1642
2007-02-08 19:01 dev
1644
* coherence/base.py, coherence/upnp/core/device.py,
1645
coherence/upnp/core/event.py, coherence/upnp/core/service.py,
1646
coherence/upnp/devices/control_point.py,
1647
coherence/upnp/devices/media_renderer_client.py,
1648
coherence/upnp/devices/media_server_client.py,
1649
coherence/upnp/services/clients/av_transport_client.py,
1650
coherence/upnp/services/clients/connection_manager_client.py,
1651
coherence/upnp/services/clients/content_directory_client.py,
1652
coherence/upnp/services/clients/rendering_control_client.py,
1653
docs/coherence.conf.example: ControlPoint now sends proper
1654
signals on detection and removal of a new device
1656
Coherence.UPnP.ControlPoint.MediaServer.detected : client obj,
1658
Coherence.UPnP.ControlPoint.MediaRenderer.detected : client obj,
1661
Coherence.UPnP.ControlPoint.MediaServer.removed : usn
1662
Coherence.UPnP.ControlPoint.MediaRenderer.removed : usn
1664
and a lot of fixes all over the place to get the instantiated
1667
2007-02-08 18:33 dev
1669
* coherence/extern/logger.py: change level info/debug order
1671
2007-02-08 11:16 dev
1673
* coherence/upnp/core/action.py: bug fix
1675
2007-02-08 10:40 dev
1677
* coherence/upnp/core/action.py, coherence/upnp/core/event.py:
1678
better error handling and logging in client actions and a small
1681
2007-02-07 23:13 dev
1683
* coherence/backends/flickr_storage.py,
1684
coherence/backends/fs_storage.py,
1685
coherence/upnp/core/DIDLLite.py, coherence/upnp/core/utils.py:
1686
add dc:date element to every upnp item and convert it in
1687
DIDLLite.py from either a datetime object or a string
1689
this solves and closes #54
1691
2007-02-07 17:17 dev
1693
* coherence/base.py, coherence/upnp/core/DIDLLite.py,
1694
coherence/upnp/core/device.py, coherence/upnp/core/event.py,
1695
coherence/upnp/devices/control_point.py,
1696
docs/coherence.conf.example: more work to get the ControlPoint
1699
2007-02-07 15:41 dev
1701
* setup.py: correct version number
1703
2007-02-07 15:13 dev
1705
* ., setup.py: filled gaps in the setup.py
1707
2007-02-07 14:37 philn
1709
* setup.py: initial setup.py checkin
1711
2007-02-06 19:52 dev
1713
* coherence/base.py: missed one
1715
2007-02-06 19:27 dev
1717
* coherence/base.py: redacting last changeset
1719
2007-02-06 18:01 philn
1721
* coherence/base.py: Coherence class now acts as a singleton
1723
2007-02-06 15:31 dev
1725
* coherence/backends/gstreamer_audio_player.py,
1726
coherence/upnp/services/servers/connection_manager_server.py:
1727
better compliance with the ConnectionManager and the AVTransport
1730
2007-02-06 15:29 dev
1732
* coherence/upnp/core/service.py: new get_variable method from the
1735
2007-02-06 09:31 dev
1737
* coherence/backends/gstreamer_audio_player.py: better compliance
1738
with the AVTransport spec
1740
2007-02-06 09:30 dev
1742
* coherence/upnp/core/soap_service.py: one more log message
1744
2007-02-06 09:30 dev
1746
* coherence/upnp/core/xml-service-descriptions/AVTransport2.xml:
1749
2007-02-06 09:03 dev
1751
* coherence/web/Coherence.Base.js: small cleanup
1753
2007-02-02 11:07 dev
1755
* coherence/base.py, coherence/web/Coherence.Base.js: better web UI
1758
2007-02-02 10:00 dev
1760
* coherence/base.py, coherence/web,
1761
coherence/web/Coherence.Base.js,
1762
coherence/web/Coherence.Devices.js,
1763
coherence/web/Coherence.Logging.js, coherence/web/Coherence.js,
1764
coherence/web/MochiKit.js, coherence/web/main.css: - reworked the
1765
web UI to make more usage of the Athena features.
1766
- breaks for now browser based device inspection.
1767
- and addresses #15 too.
1769
2007-02-02 09:55 dev
1771
* coherence/upnp/core/event.py: fix for backends with no name
1773
2007-02-02 09:54 dev
1775
* coherence/extern/logger.py: added a method to retrieve data about
1778
2007-01-31 21:51 dev
1780
* coherence/upnp/devices/media_renderer.py: relict?
1782
2007-01-31 21:34 dev
1784
* docs/coherence.conf.example: have a less noisy example
1786
2007-01-31 21:28 dev
1788
* coherence/upnp/core/event.py: better error and logging handling
1790
2007-01-31 21:26 dev
1792
* coherence/base.py, docs/coherence.conf.example: add subsystem
1793
specific logging option
1795
this allows to have for example an overall log level 'warning'
1796
and set it to 'info' for the Event and Service subsystem
1800
2007-01-31 08:19 dev
1802
* coherence/extern/inotify.py: really a stupid bug - great catch
1805
https://core.fluendo.com/elisa/trac/changeset/1402/trunk/elisa/extern/inotify.py
1807
2007-01-30 14:32 dev
1809
* coherence/upnp/devices/media_server.py: added HEAD http request
1810
sanitizing for the ReverseProxyResource, seems to be necessary
1811
for the N800 file-manager
1813
2007-01-29 23:11 dev
1815
* coherence/upnp/devices/media_server.py: stupid errors
1817
2007-01-29 21:08 dev
1819
* coherence/backends/flickr_storage.py: one more
1821
2007-01-29 21:03 dev
1823
* coherence/upnp/devices/media_server.py: one print too much
1825
2007-01-29 19:05 dev
1827
* coherence/backends/flickr_storage.py,
1828
docs/coherence.conf.example: check with Flickr every n minutes if
1829
there are any new images and update the local store
1831
2007-01-29 18:26 dev
1833
* coherence/upnp/devices/media_server.py: an attempt to fix
1834
inappropriate http GET requests from the XBox when relaying them
1835
to some other service, re #52
1837
2007-01-28 10:32 dev
1839
* coherence/backends/fs_storage.py, docs/coherence.conf.example:
1840
fix content path in fs_storage.py and change directive to
1843
2007-01-28 10:31 dev
1845
* coherence/base.py: stupid dodge to get around the still
1846
non-existent plugin handling
1848
2007-01-24 17:44 dev
1850
* coherence/upnp/devices/media_server.py: added ConnectionID
1851
handling for the Flickr proxy connection
1853
2007-01-24 17:20 dev
1855
* coherence/backends/flickr_storage.py,
1856
coherence/upnp/devices/media_server.py,
1857
docs/coherence.conf.example: Support for acting as a proxy for
1858
Flickr to support MediaRenderers like the XBox, which can't
1859
access the Flickr servers directly.
1861
Contains an unclean hook inside the MediaServers getChild method.
1863
2007-01-24 17:17 dev
1865
* coherence/upnp/core/DIDLLite.py: UPnP class changes for a better
1866
compliance with the XBox, addresses #50.
1868
Should be of no effect for the other ContentDirectory clients.
1871
2007-01-24 17:15 dev
1873
* coherence/upnp/core/event.py: check if the url has a port defined
1874
before we try to use it
1876
2007-01-23 21:39 dev
1878
* coherence/upnp/core/service.py: remove unnecessarily, error
1879
engendering line of code
1881
2007-01-23 14:20 dev
1883
* coherence/backends/flickr_storage.py: missing " :-(
1885
2007-01-23 13:36 dev
1887
* coherence/backends/flickr_storage.py: a nicer log-message in
1890
2007-01-22 19:23 dev
1892
* coherence/upnp/core/service.py,
1893
coherence/upnp/core/soap_service.py,
1894
coherence/upnp/services/servers/content_directory_server.py:
1895
attempts to iron out the deviant behaviour of the new XBox UPnP
1899
2007-01-22 09:21 dev
1901
* coherence/upnp/core/service.py: some cleanups
1903
2007-01-21 22:48 dev
1905
* coherence/backends/flickr_storage.py: let flickr calculate the
1908
2007-01-21 21:50 dev
1910
* coherence/upnp/core/soap_service.py: follow better the specs on
1912
http://upnp.org/resources/documents/CleanUPnPDA101-20031202s.pdf
1913
when sending back an error upon an action call
1915
exchanged a bit of SOAPpy using code with ElementTree
1917
2007-01-21 12:31 dev
1919
* coherence/backends/flickr_storage.py,
1920
coherence/backends/fs_storage.py, coherence/upnp/core/service.py,
1921
coherence/upnp/core/soap_service.py,
1922
coherence/upnp/devices/media_server.py,
1923
coherence/upnp/services/servers/content_directory_server.py: try
1924
something to make the MediaServer usage from an XBox a little bit
1925
more universal, addresses #36
1927
2007-01-20 15:18 dev
1929
* coherence/backends/elisa_storage.py,
1930
coherence/backends/flickr_storage.py,
1931
coherence/backends/fs_storage.py,
1932
coherence/backends/gstreamer_audio_player.py,
1933
coherence/upnp/devices/media_renderer.py,
1934
coherence/upnp/devices/media_server.py,
1935
docs/coherence.conf.example: set the 'friendly_name' of a device
1936
in the configuration
1938
2007-01-20 14:06 dev
1940
* coherence/backends/elisa_storage.py,
1941
coherence/backends/flickr_storage.py,
1942
coherence/backends/fs_storage.py,
1943
coherence/backends/gstreamer_audio_player.py,
1944
coherence/upnp/devices/media_server.py,
1945
coherence/upnp/services/servers/content_directory_server.py:
1946
Cleaned up the backend upnp_... functions, moved the universal
1947
ones into the service.
1949
This addresses #36, but we need for this to work properly some
1950
additional mapping supplied by the backend to tell which of the
1951
Windows Media Connect 'directories' the backend actually
1954
Added a method to browse the content of the Flickr backend.
1955
This should evolve in some future into something that allows
1956
browser access to any of the non-filesystem backends.
1958
2007-01-19 14:17 dev
1960
* coherence/backends/flickr_storage.py,
1961
docs/coherence.conf.example: first usable Flickr backend
1963
2007-01-19 14:16 dev
1965
* coherence/base.py: one more debug output line
1967
2007-01-19 14:15 dev
1969
* coherence/upnp/core/service.py: some minor adjustments on how
1970
services are generated from the descriptions
1972
2007-01-18 23:00 dev
1974
* coherence/backends/elisa_storage.py,
1975
coherence/backends/flickr_storage.py,
1976
coherence/backends/fs_storage.py, coherence/base.py,
1977
coherence/upnp/devices/media_server.py,
1978
docs/coherence.conf.example: this adds
1980
- a first version of a Flickr MediaServer backend
1981
- the still necessary import in base.py
1982
- and changes the way arguments are passed to the devices and via
1983
them to the backends
1985
2007-01-18 22:54 dev
1987
* coherence/upnp/core/soap_proxy.py: an attempt to make the
1988
SOAPProxy a bit more universal, probably of no real future use
1990
2007-01-18 08:32 dev
1992
* docs/coherence.conf.example: put 'serverport' into
1993
coherence.conf.example too
1995
2007-01-18 08:24 dev
1997
* coherence/base.py: added configuration option 'serverport' to
1998
specify the port coherence should bind to, to serve xml files,
1999
react on control requests or event subscriptions, and to
2002
2007-01-17 10:49 dev
2004
* coherence/base.py, coherence/upnp/core/utils.py: being a little
2005
bit more flexible regarding interface/own IP address detection
2007
2007-01-16 13:12 haiku
2009
* coherence/backends/elisa_storage.py, coherence/base.py,
2010
coherence/upnp/core/utils.py: - Updated Elisa storage to work
2011
with new elisa media db
2012
- Config now accepts an interface parameter, to provide the
2014
interface to use. If not provided, default gateway interface is
2017
2007-01-15 10:22 dev
2019
* coherence/upnp/core/device.py: try to prevent errors resulting
2020
from 'strange' device descriptions, addresses #48
2022
2007-01-12 10:59 dev
2024
* coherence/upnp/devices/control_point.py,
2025
coherence/upnp/devices/media_renderer_client.py,
2026
coherence/upnp/devices/media_server_client.py: bring ControlPoint
2029
2007-01-12 10:09 dev
2031
* coherence/backends/elisa_storage.py: reverted change
2033
2007-01-11 18:59 dev
2035
* README: add a first version of a README
2037
2007-01-11 11:21 philn
2039
* coherence/backends/elisa_storage.py, coherence/base.py: some
2042
2007-01-09 15:06 dev
2044
* coherence/backends/gstreamer_audio_player.py: one more regarding
2047
2007-01-09 15:02 dev
2049
* coherence/backends/gstreamer_audio_player.py,
2050
coherence/upnp/core/service.py, coherence/upnp/core/variable.py:
2051
more fixes re proper volume control of the Gstreamer
2054
- added the channel attribute
2055
- send the allowedValueRange with the service description
2056
unfortunately the Intel CP still sends strange values
2058
2007-01-09 14:59 dev
2060
* coherence/upnp/core/xml-service-descriptions/RenderingControl2.xml:
2061
a try to hint the dependency between the audio related
2062
StateVariables and the channel list
2064
2007-01-09 10:28 dev
2066
* coherence/backends/gstreamer_audio_player.py: fix for stupid typo
2068
2007-01-08 17:31 dev
2070
* coherence/backends/gstreamer_audio_player.py: adjustments for
2071
better Gstreamer property handling, as the playbin seems not to
2072
have a 'mute' property
2074
2007-01-08 17:29 dev
2076
* coherence/upnp/core/variable.py: add another value to the list to
2077
determine boolean True
2079
2007-01-07 20:14 dev
2081
* coherence/backends/gstreamer_audio_player.py, coherence/base.py,
2082
coherence/upnp/core/service.py, coherence/upnp/core/variable.py:
2083
This adds Volume and Mute control to the GStreamer MediaRenderer
2086
And a first method for a backend to overwrite the vendor defines
2087
in the xml-service-descriptions.
2089
2007-01-07 15:25 dev
2091
* coherence/upnp/core/service.py, coherence/upnp/core/variable.py,
2092
coherence/upnp/services/servers/connection_manager_server.py:
2093
remove a connection from the ConnectionManager after 300 seconds
2094
of inactivity - which is currently synonymous to no change of a
2097
2007-01-06 21:05 dev
2099
* coherence/backends/fs_storage.py,
2100
coherence/backends/gstreamer_audio_player.py,
2101
coherence/upnp/core/service.py,
2102
coherence/upnp/core/xml-service-descriptions/AVTransport2.xml,
2103
coherence/upnp/core/xml-service-descriptions/RenderingControl2.xml,
2104
coherence/upnp/devices/media_server.py,
2105
coherence/upnp/services/servers/connection_manager_server.py:
2106
Enable several instances per MediaRenderer.
2108
We still need to find a way to actually tell the
2109
ConnectionManager if the backend supports this!
2111
Adapting the MediaServer to these changes and some cosmetic fixes
2112
in the xml-service-descriptions.
2114
This also closes #45.
2116
2007-01-06 20:56 dev
2118
* coherence/upnp/devices/media_renderer.py: use the backend
2121
2007-01-06 20:53 dev
2123
* coherence/upnp/core/variable.py: store the default value of a
2124
variable so we have it available when copying them for a new
2127
2007-01-05 11:16 dev
2129
* coherence/upnp/services/servers/connection_manager_server.py:
2132
2007-01-04 21:49 dev
2134
* coherence/backends/gstreamer_audio_player.py,
2135
coherence/upnp/services/servers/connection_manager_server.py:
2136
some update on the MediaRenderer
2138
2006-12-30 23:01 dev
2140
* bin/coherence, coherence/base.py, coherence/upnp/core/utils.py,
2141
docs/coherence.conf.example: introduce 'ConfigObj' to handle the
2144
This, and the get_ip_address function in utils.py, closes #34.
2146
2006-12-30 22:54 dev
2148
* coherence/backends/fs_storage.py,
2149
coherence/backends/gstreamer_audio_player.py,
2150
coherence/upnp/core/service.py,
2151
coherence/upnp/services/servers/connection_manager_server.py:
2152
move universally valid upnp_ functions into the service class
2156
2006-12-30 22:02 dev
2158
* coherence/extern/logger.py: some improvements on the logger re
2159
#15, this will allow us to move that ticket to the next milestone
2161
2006-12-21 16:20 dev
2163
* coherence/base.py, coherence/upnp/core/service.py,
2164
coherence/upnp/core/variable.py,
2165
coherence/upnp/devices/media_server.py,
2166
coherence/upnp/services/servers/av_transport_server.py,
2167
coherence/upnp/services/servers/connection_manager_server.py,
2168
coherence/upnp/services/servers/content_directory_server.py,
2169
coherence/upnp/services/servers/media_receiver_registrar_server.py,
2170
coherence/upnp/services/servers/rendering_control_server.py:
2171
Check if a device backend for server service provides all needed
2174
If the action is optional, just don't provide it.
2175
If it is a required action, don't activate the service.
2177
If that service is a required one, this will lead to an abort of
2181
We need an overwrite for this to create in the TestSuite
2182
nonconformity devices/services.
2186
2006-12-21 15:59 dev
2188
* coherence/extern/logger.py: some more logger functionality
2190
2006-12-21 15:56 dev
2192
* coherence/backends/fs_storage.py: temporally add
2193
upnp_GetCurrentConnectionInfo to the backend until we have a
2196
2006-12-20 18:21 dev
2198
* bin/coherence, coherence/base.py: made the backend passing to the
2199
Coherence class a little bit more reasonable/readable - advice by
2202
2006-12-20 17:14 dev
2204
* bin/coherence, coherence/backends/fs_storage.py,
2205
coherence/backends/gstreamer_audio_player.py, coherence/base.py,
2206
coherence/upnp/devices/media_renderer.py,
2207
coherence/upnp/devices/media_server.py: Some first steps in the
2208
direction of a plugin system.
2210
Let the backends be the only visible things outside of Coherence!
2212
We should now be able to add and activate a plugin an startup
2213
and, in the next steps, later via the WebUI too, and retrieve
2214
from somewhere the configuration for each plugin.
2216
And this foundation should be extendable for .egg plugins too.
2218
2006-12-18 22:28 dev
2220
* bin, bin/coherence, coherence.py, coherence/base.py: Moved
2221
Coherence class into the coherence package and the coherence.py
2224
Added a plugins parameter to Coherence, where a list of classes
2225
can be handed over for instantiation.
2226
And an add_plugin method to add one later.
2228
2006-12-17 22:34 dev
2230
* coherence/upnp/core/event.py,
2231
coherence/upnp/services/servers/connection_manager_server.py:
2232
undo some unnecessary changes
2234
2006-12-17 22:28 dev
2236
* coherence.py, coherence/backends/gstreamer_audio_player.py,
2237
coherence/upnp/core/event.py, coherence/upnp/core/service.py,
2238
coherence/upnp/core/variable.py,
2239
coherence/upnp/core/xml-service-descriptions/AVTransport2.xml,
2240
coherence/upnp/devices/media_renderer.py,
2241
coherence/upnp/devices/media_server.py,
2242
coherence/upnp/services/servers/connection_manager_server.py: We
2243
have a controllable MediaRenderer!
2245
Everything that was needed to get recognized by the Intel
2247
An audio file will be played and progress displayed on the
2249
Pause, Start and Stop seem to work.
2251
There is an issue left on EOS and resetting the
2252
CurrentTransportActions.
2254
This addresses #38 again.
2256
2006-12-17 19:37 dev
2258
* coherence/upnp/devices/media_server.py: small fix and more
2259
parameters on the call to
2260
connection_manager_server.add_connection
2262
2006-12-17 12:43 dev
2264
* coherence/backends/gstreamer_audio_player.py,
2265
coherence/upnp/services/servers/connection_manager_server.py:
2266
changes for a better spec compliance, but either we are still
2267
missing some things or maybe the Intel ControlPoint expects
2268
something out of the usual way?
2270
Need to check and compare this with a working MediaRenderer.
2272
2006-12-17 12:40 dev
2274
* coherence/upnp/core/variable.py: wrong check for last_change
2275
attribute, surfaced due to the updates with the new default
2278
2006-12-17 12:38 dev
2280
* coherence/backends/fs_storage.py: proper errback return too
2282
2006-12-17 12:38 dev
2284
* coherence.py, coherence/upnp/core/service.py,
2285
coherence/upnp/core/soap_service.py,
2286
coherence/upnp/devices/media_server.py: more work on the logging
2289
Now we need to enable on/off and a level change via the web-UI.
2291
2006-12-17 12:35 dev
2293
* coherence/backends/elisa_storage.py: proper errback return
2295
2006-12-17 12:31 dev
2297
* coherence/extern/inotify.py: more decent class instantiation and
2300
2006-12-16 22:22 dev
2302
* coherence.py, coherence/extern/logger.py,
2303
coherence/upnp/core/msearch.py, coherence/upnp/core/service.py,
2304
coherence/upnp/core/ssdp.py,
2305
coherence/upnp/devices/media_renderer.py,
2306
coherence/upnp/devices/media_server.py: on the way to some
2307
configurable logging function:
2309
* enable/disable per module
2310
* set log level per module
2314
2006-12-15 20:05 dev
2316
* coherence/upnp/core/service.py,
2317
coherence/upnp/core/soap_service.py,
2318
coherence/upnp/core/variable.py,
2319
coherence/upnp/core/xml-service-descriptions/AVTransport2.xml,
2320
coherence/upnp/core/xml-service-descriptions/ConnectionManager2.xml,
2321
coherence/upnp/core/xml-service-descriptions/ContentDirectory2.xml,
2322
coherence/upnp/core/xml-service-descriptions/RenderingControl2.xml:
2323
a whole bunch of changes in the xml service descriptions
2324
regarding default values and the definition of all allowed
2327
Plus a our very first '''own''' vendor extension
2329
''coherence:X_withVendorDefines = "True|False"''
2331
which defines if a value in
2333
* a allowedValueList and
2334
* a allowedValueRange
2336
can be extended by a vendor.
2338
This is currently used only in the description files used for
2339
service creation, but it could be inserted into the description
2340
files we send out to other devices too.
2342
This changeset fixes #37 and #38.
2344
2006-12-13 17:27 dev
2346
* coherence/backends/fs_storage.py: small self-test change
2348
2006-12-13 10:24 dev
2350
* coherence/backends/fs_storage.py: fix for "stupid bug"
2352
2006-12-13 10:19 dev
2354
* coherence/backends/fs_storage.py: let upnp_Browse work again with
2357
2006-12-13 10:01 dev
2359
* coherence/upnp/devices/media_server.py: take back [176], as it is
2360
probably not needed for the XBox
2362
2006-12-12 13:04 dev
2364
* coherence/backends/fs_storage.py: first attempt to please an XBox
2365
UPnP Search Action for 'all audio items'
2367
2006-12-12 13:00 dev
2369
* coherence/upnp/core/soap_service.py: let's see the headers of an
2370
XBox SOAP request, maybe we have an user-agent header there too
2372
2006-12-12 09:59 dev
2374
* coherence/extern/uuid: more housekeeping
2376
2006-12-12 09:58 dev
2378
* coherence/upnp/core/xml-service-descriptions: housekeeping
2380
2006-12-12 09:52 dev
2382
* coherence/extern/uuid, coherence/extern/uuid/__init__.py,
2383
coherence/extern/uuid/uuid.html, coherence/extern/uuid/uuid.py,
2384
coherence/upnp/core/uuid.py,
2385
coherence/upnp/devices/media_server.py: generate proper UUIDs,
2386
this closes #19 and should help us with devices that are
2387
(justifiably) petty about its format.
2389
2006-12-11 22:18 dev
2391
* coherence/upnp/devices/media_server.py: and again...
2393
2006-12-11 21:48 dev
2395
* coherence/upnp/devices/media_server.py: one more
2397
2006-12-11 21:33 dev
2399
* coherence/upnp/devices/media_server.py: is it an UUID question?
2401
2006-12-11 20:41 dev
2403
* coherence/upnp/devices/media_server.py: one more change to find
2404
out the XBox' likings
2406
2006-12-11 20:18 dev
2408
* coherence/upnp/devices/media_server.py: some more adjustments to
2409
get recognized by the XBox, added DLNA tags
2411
2006-12-11 18:45 dev
2413
* coherence/upnp/devices/media_server.py: fake a Windows Media
2414
Connect server to get discovered by an XBox MediaRenderer
2416
2006-12-11 18:07 idnar
2418
* coherence/upnp/core/device.py, coherence/upnp/core/service.py,
2419
coherence/upnp/core/soap_proxy.py: Pass correct args to
2422
2006-12-11 17:51 dev
2424
* coherence/upnp/core/msearch.py, coherence/upnp/core/ssdp.py,
2425
coherence/upnp/devices/media_server.py: some debugging output, it
2426
is really time for proper logging :-(
2428
2006-12-11 09:29 dev
2430
* coherence/backends/gstreamer_audio_player.py: initialize and
2431
update more UPnP variables
2433
2006-12-10 21:35 dev
2435
* coherence/backends/elisa_storage.py,
2436
coherence/backends/fs_storage.py,
2437
coherence/backends/gstreamer_audio_player.py,
2438
coherence/upnp/devices/media_renderer.py,
2439
coherence/upnp/devices/media_server.py,
2440
coherence/upnp/services/servers/av_transport_server.py,
2441
coherence/upnp/services/servers/connection_manager_server.py,
2442
coherence/upnp/services/servers/content_directory_server.py,
2443
coherence/upnp/services/servers/media_receiver_registrar_server.py,
2444
coherence/upnp/services/servers/rendering_control_server.py,
2445
docs: first attempt of a MediaRenderer with a GStreamer (Audio)
2448
Only partially working, and maybe hobbled by a [GStreamer Bug
2449
384140 http://bugzilla.gnome.org/show_bug.cgi?id=384140] too.
2451
Some adjustments all around.
2453
2006-12-10 20:43 dev
2455
* coherence.py, coherence/upnp/core/msearch.py,
2456
coherence/upnp/core/ssdp.py: Actually send out ssdp:byebye
2457
messages on application shutdown.
2459
2006-12-10 20:02 dev
2461
* coherence/upnp/core/device.py, coherence/upnp/core/service.py,
2462
coherence/upnp/core/soap_proxy.py: added errbacks to
2463
twisted.web.client.getPage calls
2465
2006-12-02 16:48 dev
2467
* coherence/backends/elisa_storage.py,
2468
coherence/backends/fs_storage.py, coherence/upnp/core/service.py,
2469
coherence/upnp/core/variable.py,
2470
coherence/upnp/devices/media_server.py,
2471
coherence/upnp/services/servers/content_directory_server.py: This
2472
adds auto-detection of file-system changes by means of the
2473
inotify-module for the FileSystemBackend, re #33.
2475
Quite some other adjustments and fixes related to StateVariable
2476
modifications and event propagation.
2478
2006-12-02 16:41 dev
2480
* coherence/extern/inotify.py: a simple Python
2481
[http://en.wikipedia.org/wiki/Inotify Inotify] interface, using
2482
[http://python.net/crew/theller/ctypes/ ctypes] for the kernel
2483
calls, works only on Linux with a kernel > 2.6.13 and
2484
additionally at the moment only on ix86 architecture due to a
2485
lame solution retrieving the kernel call ids.
2487
2006-12-02 16:25 dev
2489
* LICENCE: add MIT licence file
2491
2006-12-02 16:02 dev
2493
* coherence.py: reminder change re #34
2495
2006-11-28 17:21 dev
2497
* coherence/upnp/core/variable.py: a reminder to fix it
2499
2006-11-28 17:16 dev
2501
* ., coherence, coherence.py, coherence/__init__.py,
2502
coherence/backends, coherence/backends/__init__.py,
2503
coherence/backends/elisa_storage.py,
2504
coherence/backends/fs_storage.py, coherence/extern,
2505
coherence/extern/__init__.py, coherence/plugins, coherence/upnp,
2506
coherence/upnp/__init__.py, coherence/upnp/core,
2507
coherence/upnp/core/DIDLLite.py, coherence/upnp/core/__init__.py,
2508
coherence/upnp/core/device.py, coherence/upnp/core/event.py,
2509
coherence/upnp/core/msearch.py, coherence/upnp/core/service.py,
2510
coherence/upnp/core/soap_proxy.py,
2511
coherence/upnp/core/variable.py, coherence/upnp/devices,
2512
coherence/upnp/devices/__init__.py,
2513
coherence/upnp/devices/control_point.py,
2514
coherence/upnp/devices/media_renderer.py,
2515
coherence/upnp/devices/media_renderer_client.py,
2516
coherence/upnp/devices/media_server.py,
2517
coherence/upnp/devices/media_server_client.py,
2518
coherence/upnp/services, coherence/upnp/services/__init__.py,
2519
coherence/upnp/services/clients,
2520
coherence/upnp/services/clients/__init__.py,
2521
coherence/upnp/services/clients/av_transport_client.py,
2522
coherence/upnp/services/clients/connection_manager_client.py,
2523
coherence/upnp/services/clients/content_directory_client.py,
2524
coherence/upnp/services/clients/rendering_control_client.py,
2525
coherence/upnp/services/servers,
2526
coherence/upnp/services/servers/__init__.py,
2527
coherence/upnp/services/servers/av_transport_server.py,
2528
coherence/upnp/services/servers/connection_manager_server.py,
2529
coherence/upnp/services/servers/content_directory_server.py,
2530
coherence/upnp/services/servers/media_receiver_registrar_server.py,
2531
coherence/upnp/services/servers/rendering_control_server.py,
2532
docs, tests, tests/content, tests/content/audio: a lot of small
2533
adjustments after directory restructure, re #29
2535
2006-11-28 16:45 dev
2537
* coherence/upnp/core/xml-service-descriptions,
2538
coherence/upnp/xml-service-descriptions: Moved remotely
2540
2006-11-28 13:14 dev
2542
* docs: Created folder remotely
2544
2006-11-28 13:13 dev
2546
* coherence/tests, tests: Moved remotely
2548
2006-11-28 13:08 dev
2550
* coherence/upnp/core/variable.py, coherence/upnp/variable.py:
2553
2006-11-28 13:08 dev
2555
* coherence/upnp/core/uuid.py, coherence/upnp/uuid.py: Moved
2558
2006-11-28 13:07 dev
2560
* coherence/upnp/core/utils.py, coherence/upnp/utils.py: Moved
2563
2006-11-28 13:07 dev
2565
* coherence/upnp/core/ssdp.py, coherence/upnp/ssdp.py: Moved
2568
2006-11-28 13:06 dev
2570
* coherence/upnp/core/soap_service.py,
2571
coherence/upnp/soap_service.py: Moved remotely
2573
2006-11-28 13:06 dev
2575
* coherence/upnp/core/soap_proxy.py, coherence/upnp/soap_proxy.py:
2578
2006-11-28 13:06 dev
2580
* coherence/upnp/core/service.py, coherence/upnp/service.py: Moved
2583
2006-11-28 13:06 dev
2585
* coherence/upnp/core/msearch.py, coherence/upnp/msearch.py: Moved
2588
2006-11-28 13:05 dev
2590
* coherence/upnp/core/event.py, coherence/upnp/event.py: Moved
2593
2006-11-28 13:05 dev
2595
* coherence/upnp/DIDLLite.py, coherence/upnp/core/DIDLLite.py:
2598
2006-11-28 13:05 dev
2600
* coherence/upnp/core/device.py, coherence/upnp/device.py: Moved
2603
2006-11-28 13:04 dev
2605
* coherence/upnp/action.py, coherence/upnp/core/action.py: Moved
2608
2006-11-28 13:04 dev
2610
* coherence/upnp/core: Created folder remotely
2612
2006-11-28 13:02 dev
2614
* coherence/upnp/devices/media_server_client.py,
2615
coherence/upnp/media_server_client.py: Moved remotely
2617
2006-11-28 13:01 dev
2619
* coherence/upnp/devices/media_renderer_client.py,
2620
coherence/upnp/media_renderer_client.py: Moved remotely
2622
2006-11-28 13:01 dev
2624
* coherence/upnp/devices/media_server.py,
2625
coherence/upnp/media_server.py: Moved remotely
2627
2006-11-28 13:01 dev
2629
* coherence/upnp/devices/media_renderer.py,
2630
coherence/upnp/media_renderer.py: Moved remotely
2632
2006-11-28 13:01 dev
2634
* coherence/upnp/control_point.py,
2635
coherence/upnp/devices/control_point.py: Moved remotely
2637
2006-11-28 12:57 dev
2639
* coherence/tests/rpc_client.py, rpc_client.py: Moved remotely
2641
2006-11-28 12:56 dev
2643
* coherence/upnp/rendering_control_server.py,
2644
coherence/upnp/services/servers/rendering_control_server.py:
2647
2006-11-28 12:55 dev
2649
* coherence/upnp/rendering_control_client.py,
2650
coherence/upnp/services/clients/rendering_control_client.py:
2653
2006-11-28 12:55 dev
2655
* coherence/upnp/media_receiver_registrar_server.py,
2656
coherence/upnp/services/servers/media_receiver_registrar_server.py:
2659
2006-11-28 12:54 dev
2661
* coherence/upnp/content_directory_server.py,
2662
coherence/upnp/services/servers/content_directory_server.py:
2665
2006-11-28 12:54 dev
2667
* coherence/upnp/content_directory_client.py,
2668
coherence/upnp/services/clients/content_directory_client.py:
2671
2006-11-28 12:54 dev
2673
* coherence/upnp/connection_manager_server.py,
2674
coherence/upnp/services/servers/connection_manager_server.py:
2677
2006-11-28 12:53 dev
2679
* coherence/upnp/connection_manager_client.py,
2680
coherence/upnp/services/clients/connection_manager_client.py:
2683
2006-11-28 12:53 dev
2685
* coherence/upnp/av_transport_server.py,
2686
coherence/upnp/services/servers/av_transport_server.py: Moved
2689
2006-11-28 12:53 dev
2691
* coherence/upnp/av_transport_client.py,
2692
coherence/upnp/services/clients/av_transport_client.py: Moved
2695
2006-11-28 12:53 dev
2697
* coherence/upnp/services/clients: Created folder remotely
2699
2006-11-28 12:52 dev
2701
* coherence/upnp/services/servers: Created folder remotely
2703
2006-11-28 12:52 dev
2705
* coherence/upnp/services: Created folder remotely
2707
2006-11-28 12:52 dev
2709
* coherence/upnp/devices: Created folder remotely
2711
2006-11-28 12:51 dev
2713
* coherence/rpc_client.py, rpc_client.py: Moved remotely
2715
2006-11-28 12:51 dev
2717
* coherence/upnp/variable.py, coherence/variable.py: Moved remotely
2719
2006-11-28 12:51 dev
2721
* coherence/upnp/uuid.py, coherence/uuid.py: Moved remotely
2723
2006-11-28 12:50 dev
2725
* coherence/upnp/utils.py, coherence/utils.py: Moved remotely
2727
2006-11-28 12:50 dev
2729
* coherence/ssdp.py, coherence/upnp/ssdp.py: Moved remotely
2731
2006-11-28 12:49 dev
2733
* coherence/soap_service.py, coherence/upnp/soap_service.py: Moved
2736
2006-11-28 12:49 dev
2738
* coherence/soap_proxy.py, coherence/upnp/soap_proxy.py: Moved
2741
2006-11-28 12:49 dev
2743
* coherence/service.py, coherence/upnp/service.py: Moved remotely
2745
2006-11-28 12:49 dev
2747
* coherence/rendering_control_server.py,
2748
coherence/upnp/rendering_control_server.py: Moved remotely
2750
2006-11-28 12:48 dev
2752
* coherence/rendering_control_client.py,
2753
coherence/upnp/rendering_control_client.py: Moved remotely
2755
2006-11-28 12:48 dev
2757
* coherence/msearch.py, coherence/upnp/msearch.py: Moved remotely
2759
2006-11-28 12:48 dev
2761
* coherence/media_server_client.py,
2762
coherence/upnp/media_server_client.py: Moved remotely
2764
2006-11-28 12:48 dev
2766
* coherence/media_server.py, coherence/upnp/media_server.py: Moved
2769
2006-11-28 12:48 dev
2771
* coherence/media_renderer_client.py,
2772
coherence/upnp/media_renderer_client.py: Moved remotely
2774
2006-11-28 12:47 dev
2776
* coherence/media_renderer.py, coherence/upnp/media_renderer.py:
2779
2006-11-28 12:47 dev
2781
* coherence/media_receiver_registrar_server.py,
2782
coherence/upnp/media_receiver_registrar_server.py: Moved remotely
2784
2006-11-28 12:47 dev
2786
* coherence/event.py, coherence/upnp/event.py: Moved remotely
2788
2006-11-28 12:47 dev
2790
* coherence/DIDLLite.py, coherence/upnp/DIDLLite.py: Moved remotely
2792
2006-11-28 12:47 dev
2794
* coherence/device.py, coherence/upnp/device.py: Moved remotely
2796
2006-11-28 12:47 dev
2798
* coherence/control_point.py, coherence/upnp/control_point.py:
2801
2006-11-28 12:46 dev
2803
* coherence/content_directory_server.py,
2804
coherence/upnp/content_directory_server.py: Moved remotely
2806
2006-11-28 12:46 dev
2808
* coherence/content_directory_client.py,
2809
coherence/upnp/content_directory_client.py: Moved remotely
2811
2006-11-28 12:46 dev
2813
* coherence/connection_manager_server.py,
2814
coherence/upnp/connection_manager_server.py: Moved remotely
2816
2006-11-28 12:46 dev
2818
* coherence/connection_manager_client.py,
2819
coherence/upnp/connection_manager_client.py: Moved remotely
2821
2006-11-28 12:46 dev
2823
* coherence/av_transport_server.py,
2824
coherence/upnp/av_transport_server.py: Moved remotely
2826
2006-11-28 12:46 dev
2828
* coherence/av_transport_client.py,
2829
coherence/upnp/av_transport_client.py: Moved remotely
2831
2006-11-28 12:45 dev
2833
* coherence/action.py, coherence/upnp/action.py: Moved remotely
2835
2006-11-28 12:44 dev
2837
* coherence/elementsoap, coherence/extern/elementsoap: Moved
2840
2006-11-28 12:44 dev
2842
* coherence/content, coherence/tests/content: Moved remotely
2844
2006-11-28 12:44 dev
2846
* coherence/tests: Created folder remotely
2848
2006-11-28 12:44 dev
2850
* coherence/extern: Created folder remotely
2852
2006-11-28 12:43 dev
2854
* coherence.py, coherence/coherence.py: Moved remotely
2856
2006-11-28 12:43 dev
2858
* coherence/upnp/xml-service-descriptions,
2859
coherence/xml-service-descriptions: Moved remotely
2861
2006-11-28 12:43 dev
2863
* coherence/backends/elisa_storage.py, coherence/elisa_storage.py:
2866
2006-11-28 12:43 dev
2868
* coherence/backends/fs_storage.py, coherence/fs_storage.py: Moved
2871
2006-11-28 12:41 dev
2873
* coherence/plugins: Created folder remotely
2875
2006-11-28 12:41 dev
2877
* coherence/backends: Created folder remotely
2879
2006-11-28 12:41 dev
2881
* coherence/upnp: Created folder remotely
2883
2006-11-28 12:40 dev
2885
* coherence, python-upnp: Renamed remotely
2887
2006-11-27 15:26 dev
2889
* python-upnp/elisa_storage.py: doc string adjustment
2891
2006-11-27 15:16 dev
2893
* python-upnp/elisa_storage.py: item.res.size is an optional
2894
attribute -as the Elisa MediaStore isn't (yet) providing it, it
2895
should be set to None if not present in the response from the
2898
2006-11-26 18:01 dev
2900
* python-upnp/elisa_storage.py, python-upnp/media_server.py: dumb
2901
changes to test the Elisa MediaStore, time to work on the plugin
2904
2006-11-26 16:21 dev
2906
* python-upnp/connection_manager_server.py,
2907
python-upnp/content_directory_server.py,
2908
python-upnp/fs_storage.py, python-upnp/media_server.py: keep
2909
track of connections in the MediaServer ConnectionManager and
2910
some cosmetically changes
2912
2006-11-26 16:19 dev
2914
* python-upnp/service.py: fix soap_generic in such a way, that the
2915
action.callback as intended can actually return a deferred or a
2918
2006-11-26 15:35 philn
2920
* python-upnp/elisa_storage.py, python-upnp/soap_service.py: Some
2921
progress on Elisa store
2923
2006-11-24 15:15 dev
2925
* python-upnp/elisa_storage.py: first shot of an
2926
[http://www.fluendo.com/elisa/ Elisa] MediaServer backend
2928
2006-11-24 15:13 dev
2930
* python-upnp/fs_storage.py: some forgotten import
2932
2006-11-22 17:02 dev
2934
* python-upnp/av_transport_server.py, python-upnp/coherence.py,
2935
python-upnp/connection_manager_server.py, python-upnp/content,
2936
python-upnp/content/audio,
2937
python-upnp/content_directory_server.py, python-upnp/device.py,
2938
python-upnp/event.py, python-upnp/fs_storage.py,
2939
python-upnp/media_receiver_registrar_server.py,
2940
python-upnp/media_renderer.py, python-upnp/media_server.py,
2941
python-upnp/msearch.py, python-upnp/rendering_control_server.py,
2942
python-upnp/service.py, python-upnp/ssdp.py: A lot of fixes and
2943
enhancements regarding a working MediaServer.
2945
Some of them concerning the different namespace, which refs to
2948
Fixed an embarrassingly stupid bug in the device registration,
2949
where we had the services url in the location header of the
2950
service notification, instead of the url for the device
2951
description.xml, this is one of those that fixes #26.
2953
This only showed up due to the fact that the Noxon-2 looks only
2954
for service notifications.
2956
Version 2 devices now send out notifications for devices v1 and
2957
services v1 too. Requisite for this are different device
2958
descriptions accordingly to the version, pointing to the matching
2961
2006-11-21 13:06 dev
2963
* python-upnp/media_receiver_registrar_server.py,
2964
python-upnp/xml-service-descriptions/X_MS_MediaReceiverRegistrar1.xml:
2965
This adds a MediaReceiverRegistrar with a FakeBackend, that just
2966
affirms any IsAuthorized and IsValidated actions.
2968
2006-11-19 16:41 dev
2970
* python-upnp/coherence.py, python-upnp/fs_storage.py,
2971
python-upnp/media_server.py: removed 'uuid:' part from the
2974
2006-11-18 21:44 dev
2976
* python-upnp/DIDLLite.py, python-upnp/fs_storage.py: some progress
2977
towards a simple MediaServer (plugin) with a FileSystem backend
2979
2006-11-18 12:34 dev
2981
* python-upnp/fs_storage.py, python-upnp/media_renderer.py,
2982
python-upnp/media_server.py: make the MediaServer return content
2983
on request for an ObjectID
2985
2006-11-18 10:34 dev
2987
* python-upnp/fs_storage.py: minor cosmetic changes
2989
2006-11-17 21:58 dev
2991
* python-upnp/av_transport_server.py,
2992
python-upnp/connection_manager_server.py,
2993
python-upnp/content_directory_server.py,
2994
python-upnp/fs_storage.py, python-upnp/media_renderer.py,
2995
python-upnp/media_server.py,
2996
python-upnp/rendering_control_server.py, python-upnp/service.py:
2997
First 'usable' approach to couple the action callbacks with the
2998
methods the backend provides.
3000
We still need 'some' knowledge about UPnP in the backend, maybe
3001
this can be reduced further.
3003
2006-11-17 11:30 dev
3005
* python-upnp/content_directory_server.py,
3006
python-upnp/fs_storage.py, python-upnp/media_server.py: first
3007
steps towards a simple MediaServer (plugin) with a FileSystem
3010
2006-11-17 11:26 dev
3012
* python-upnp/service.py: wrong use of attribute and some minor
3015
2006-11-17 11:23 dev
3017
* python-upnp/DIDLLite.py: use cElementTree if available and
3018
renamed klass to upnp_class
3020
2006-11-17 11:16 dev
3022
* python-upnp/content_directory.py: removed as this is only needed
3023
with the elisa UPnP plugin
3025
2006-11-17 11:14 dev
3027
* python-upnp/soap_service.py: fix UPnPPublisher to get the
3028
'soap'generic' function actually working with IN arguments
3030
2006-11-16 10:26 dev
3032
* python-upnp/msearch.py: let the OS choose a port for the MSEARCH
3035
2006-11-09 14:19 dev
3037
* python-upnp/event.py, python-upnp/media_renderer_client.py,
3038
python-upnp/service.py, python-upnp/variable.py: added the
3039
initial notification upon event subscription and proper
3040
propagation of the LastChange event, closes #17 and #21.
3042
2006-11-09 10:50 dev
3044
* python-upnp/coherence.py: no need to check for re-subscriptions
3045
immediately, wait for the first looping call to pass
3047
2006-11-09 10:47 dev
3049
* python-upnp/ssdp.py: don't (re)send notifications immediately,
3050
wait for the first looping call to pass
3052
2006-11-08 14:28 dev
3054
* python-upnp/av_transport_server.py,
3055
python-upnp/connection_manager_client.py,
3056
python-upnp/content_directory_client.py, python-upnp/event.py,
3057
python-upnp/media_renderer.py,
3058
python-upnp/media_renderer_client.py,
3059
python-upnp/rendering_control_client.py,
3060
python-upnp/rendering_control_server.py, python-upnp/service.py:
3061
First stub for the MediaRenderer and its services, plus some bugs
3062
fixed in the event notification stuff that showed up on the first
3065
2006-11-07 14:54 dev
3067
* python-upnp/service.py: error checks in `soap__generic` for wrong
3068
or missing IN arguments
3070
2006-11-07 14:42 dev
3072
* python-upnp/soap_service.py: Proper error-code for 'method not
3074
[http://upnp.org/resources/documents/CleanUPnPDA101-20031202s.pdf
3075
UPnP Device Architecture]
3077
2006-11-06 22:18 dev
3079
* python-upnp/connection_manager_server.py,
3080
python-upnp/content_directory_server.py, python-upnp/service.py:
3081
follow-up on [57] and [58] which fixes the therein introduced
3084
2006-11-06 21:22 dev
3086
* python-upnp/soap_service.py: Extending UPnPPublisher for a better
3088
[http://upnp.org/resources/documents/CleanUPnPDA101-20031202s.pdf
3089
UPnP Device Architecture]
3091
2006-11-04 13:49 dev
3093
* python-upnp/connection_manager_server.py,
3094
python-upnp/content_directory_server.py, python-upnp/service.py:
3095
moved `soap__generic` and `get_action_results` out of the service
3096
control classes into service.py, into their own ServiceControl
3099
2006-11-04 12:29 dev
3101
* python-upnp/connection_manager_server.py,
3102
python-upnp/content_directory_server.py, python-upnp/service.py:
3103
moved service description class into service.py
3105
2006-11-01 21:50 dev
3107
* python-upnp/action.py, python-upnp/av_transport_client.py,
3108
python-upnp/connection_manager_client.py,
3109
python-upnp/content_directory.py,
3110
python-upnp/content_directory_client.py,
3111
python-upnp/control_point.py,
3112
python-upnp/media_renderer_client.py,
3113
python-upnp/media_server_client.py,
3114
python-upnp/rendering_control_client.py,
3115
python-upnp/soap_proxy.py, python-upnp/ssdp.py,
3116
python-upnp/utils.py: put everything under MIT licence and added
3117
appropriate copyright information, this changeset closes #7
3119
2006-11-01 20:49 dev
3121
* python-upnp/service.py, python-upnp/variable.py: This adds the
3122
missing methods for moderated events and closes #11.
3124
2006-11-01 16:17 dev
3126
* python-upnp: property rag
3128
2006-11-01 16:13 dev
3130
* python-upnp/connection_manager_server.py,
3131
python-upnp/content_directory_server.py, python-upnp/service.py:
3132
refactored server service into a more universal service.Server
3135
Added EventSubscriptionServer from #11.
3137
2006-11-01 15:53 dev
3139
* python-upnp/event.py: server side event subscription and
3140
notification, re #11
3142
The loop for sending out moderated events is not yet there ->
3145
2006-11-01 15:18 dev
3147
* python-upnp/media_server.py: minor cleanups
3149
2006-11-01 15:11 dev
3151
* python-upnp/coherence.py: minor fix for device presentation in
3154
2006-11-01 15:08 dev
3156
* python-upnp/device.py: changed license notes addressing #7
3158
2006-11-01 15:03 dev
3160
* python-upnp/variable.py: laid foundation for moderated events, re
3163
2006-10-27 08:51 dev
3165
* python-upnp/ssdp.py, python-upnp/uuid.py: Repeat 100 times:
3167
Never work on code if you are tired!
3168
Never work on code if you are tired!
3169
Never work on code if you are tired!
3170
Never work on code if you are tired!
3173
2006-10-26 16:26 dev
3175
* python-upnp/root-device.xml: removed accidentally checked-in file
3177
2006-10-26 15:34 dev
3179
* python-upnp/uuid.py: Adjusted copyright just to be sure
3181
2006-10-26 15:30 dev
3183
* python-upnp/media_server.py, python-upnp/uuid.py: Moved
3184
generateuuid into its own UUID class so we can use it for SIDs
3186
Not sure if the str(instance) approach via __repr__ is sacrosanct
3187
or if a self.uuid.get_uuid() construct is a better way to handle
3190
2006-10-23 11:14 dev
3192
* python-upnp/coherence.py,
3193
python-upnp/connection_manager_server.py,
3194
python-upnp/media_server.py: accommodations to
3195
ArchitecturalOverview
3197
2006-10-23 11:11 dev
3199
* python-upnp/ssdp.py: fixed old, mooching little bug, spotted by
3202
2006-10-15 20:55 dev
3204
* python-upnp/connection_manager_server.py: experimenting with a
3205
generic soap method to save us from too many similar function
3208
Maybe we can use this technique in the XMLRCP api too.
3210
2006-10-15 20:51 dev
3212
* python-upnp/soap_service.py: extend UPnPPublisher so we can use a
3213
generic soap method for the trivial actions in a server service.
3215
2006-10-15 20:47 dev
3217
* python-upnp/content_directory_server.py: Copied over soap methods
3220
2006-10-15 20:45 dev
3222
* python-upnp/action.py: Extend action class with a callback so it
3223
is more useful in a server service.
3225
2006-10-14 14:59 dev
3227
* python-upnp/media_server.py: Proper registration of ourself to
3228
the SSDP server and corrected services url creation.
3230
2006-10-14 14:56 dev
3232
* python-upnp/connection_manager_server.py,
3233
python-upnp/content_directory_server.py: Fix serviceStateTable
3234
typo in scpd.xml creation, added instantiation of
3235
EventSubscriptionServer and use v2 of the service description
3238
2006-10-14 14:48 dev
3240
* python-upnp/media_server_client.py: Temporarily remove testing of
3241
Browse action to handle our own half-done ContentDirectory
3244
2006-10-14 14:46 dev
3246
* python-upnp/content_directory_client.py: Adjust licence, address
3249
2006-10-14 14:44 dev
3251
* python-upnp/control_point.py, python-upnp/event.py: Added
3252
EventSubscriptionServer and initiated it in
3253
connection_manager_server.py and content_directory_server.py.
3255
Functionality is still missing!!!
3257
Removed an obsolete argument from EventServer `__init__`.
3261
2006-10-14 14:39 dev
3263
* python-upnp/ssdp.py: Reworked the SSDP server implementation.
3265
The dict items, that represent discovered remote or registered
3266
local devices have now a manifestation attribute to distinguish
3267
between local or remote devices.
3269
We do now resend notifications every 770 seconds.
3270
These resends seem to be 'best practice' in case some
3271
ControlPoint had missed the discovery responses.
3273
Talking of these, discovery responses are now implemented too.
3275
Notifications and discovery responses are only send out for local
3278
2006-10-14 14:31 dev
3280
* python-upnp/service.py: commented out noisy print
3282
2006-10-14 14:30 dev
3284
* python-upnp/coherence.py: commented out noisy print
3286
2006-10-14 14:24 dev
3288
* python-upnp/msearch.py: Adjust loop time for msearch, now do
3289
searches every 120 seconds.
3290
Maybe that's still too often.
3292
Add the manifestation argument to the SSDP.register call and
3293
modified the licence.
3295
2006-10-14 14:17 dev
3297
* python-upnp/xml-service-descriptions/AVTransport2.xml,
3298
python-upnp/xml-service-descriptions/ConnectionManager2.xml,
3299
python-upnp/xml-service-descriptions/ContentDirectory2.xml,
3300
python-upnp/xml-service-descriptions/MediaRenderer2.xml,
3301
python-upnp/xml-service-descriptions/MediaServer2.xml,
3302
python-upnp/xml-service-descriptions/RenderingControl2.xml,
3303
python-upnp/xml-service-descriptions/ScheduledRecording1.xml:
3304
Actually it is a good idea to use the correct xml files if you
3305
want to support MediaServer V2 and MediaRenderer V2 ;-)
3307
This is an supplement to [25] and addresses #10 again.
3309
2006-10-13 09:56 dev
3311
* python-upnp/variable.py: adjust faulty argument order in
3314
2006-10-12 14:48 dev
3316
* python-upnp/connection_manager_server.py,
3317
python-upnp/content_directory_server.py,
3318
python-upnp/media_server.py: Add and integrate
3319
content_directory_server.py on the way to a working basic
3322
Some of the changes in media_server.py in the device xml
3323
description generation close #10.
3325
2006-10-12 13:35 dev
3327
* python-upnp/action.py, python-upnp/coherence.py,
3328
python-upnp/connection_manager_server.py,
3329
python-upnp/media_server.py, python-upnp/service.py,
3330
python-upnp/soap_service.py, python-upnp/variable.py,
3331
python-upnp/xml-service-descriptions,
3332
python-upnp/xml-service-descriptions/AVTransport1.xml,
3333
python-upnp/xml-service-descriptions/ConnectionManager1.xml,
3334
python-upnp/xml-service-descriptions/ContentDirectory1.xml,
3335
python-upnp/xml-service-descriptions/RenderingControl1.xml:
3336
Reverted the way the WebInterface is handled and add some simple
3337
page-generation to allow easier browsing of the children.
3339
Included the xml-services-descriptions directory and use the xml
3340
files therein as the source for the server services definition.
3344
And finally added connection_manager_server.py and
3345
soap_service.py for an initial test of a server service.
3347
2006-10-11 16:50 dev
3349
* python-upnp/coherence.py, python-upnp/control_point.py,
3350
python-upnp/device.py, python-upnp/media_server.py,
3351
python-upnp/service.py, python-upnp/ssdp.py,
3352
python-upnp/utils.py: Another big one which removes the blocking
3353
urllib2.urlopen call
3354
and adds signal based propagation of events, e.g. SSDP
3356
to get around too much deferred wizardry in the device,sub-device
3357
and service detection.
3359
This introduces [http://pylouie.org louie] as signal dispatcher.
3361
2006-10-09 09:52 dev
3363
* python-upnp/coherence.py, python-upnp/control_point.py,
3364
python-upnp/event.py, python-upnp/rpc_client.py,
3365
python-upnp/ssdp.py: This is a big changeset that turns upside
3367
how the parts within the UPnP framework are dealt with.
3369
There is now an embracement class called Coherence that
3370
deals with all the parts needed to run an UPnP service.
3371
And allows in the future a more plugin based structure.
3373
There we decide whether we only want to be a ControlPoint,
3374
only a MediaRenderer, only a MediaServer or any combination
3377
The SSDP and the MSEARCH subsystems have now their home there.
3379
And only one webserver instance is created where all the other
3380
subsystems can register their services as childs.
3382
For example the ControlPoint appends there its Event Notification
3383
service and its XMLRPC interface.
3384
And of course it can append there its own web-interface.
3386
Likewise for the MediaServer. It appends its XML files,
3387
the Event Subscription service, the SOAP interface and its
3390
Hopefully not to many things broke with this changeset,
3391
actually and intendedly we should be on the same functionality
3394
2006-10-09 09:29 dev
3396
* python-upnp/media_server.py, python-upnp/root-device.xml: some
3397
startup imports from pymeds to allow testing of the
3398
framework/embracement approach
3400
2006-10-05 21:55 dev
3402
* python-upnp/content_directory_client.py: added remaining action
3403
methods to ContentDirectory client
3405
2006-10-05 15:27 dev
3407
* python-upnp/content_directory_client.py,
3408
python-upnp/media_server_client.py: fix stupid typo and solve
3409
browse and search issues, herewith closes #6
3411
2006-10-05 15:24 dev
3413
* python-upnp/service.py: move SOAP request method back to service
3416
2006-10-05 15:21 dev
3418
* python-upnp/action.py: change re #6
3420
2006-10-05 15:17 dev
3422
* python-upnp/control_point.py: correction for error introduced in
3425
2006-10-05 15:03 dev
3427
* python-upnp/DIDLLite.py: DIDL-Lite strings are encoded in utf-8
3428
and need therefore decoding as such
3430
2006-10-04 09:30 dev
3432
* python-upnp/control_point.py, python-upnp/device.py: fixed device
3433
identification within the ControlPoint, corrected this in the
3434
Device class and added instantiating of the MediaServerClient
3436
2006-10-04 09:17 dev
3438
* python-upnp/media_renderer_client.py: first licence fix, refs #7
3440
2006-10-04 09:12 dev
3442
* python-upnp/media_server_client.py: created MediaServerClient
3445
2006-10-03 21:40 dev
3447
* python-upnp/action.py: added StateVariable (auto-)update on
3448
return of an action call, refs #6
3450
2006-10-03 21:32 dev
3452
* python-upnp/media_renderer_client.py: some more method calls to
3453
test the new action handling, re #6
3455
2006-10-03 21:29 dev
3457
* python-upnp/av_transport_client.py: added action
3458
GetCurrentTransportActions
3460
2006-10-03 21:28 dev
3462
* python-upnp/soap_proxy.py: removed some prints
3464
2006-10-03 21:27 dev
3466
* python-upnp/elementsoap/ElementSOAP.py: removed an old print
3468
2006-10-03 17:32 dev
3470
* python-upnp/action.py, python-upnp/av_transport_client.py,
3471
python-upnp/connection_manager_client.py,
3472
python-upnp/content_directory_client.py,
3473
python-upnp/media_renderer_client.py,
3474
python-upnp/rendering_control_client.py, python-upnp/service.py:
3475
reengineered the way actions are called, breaks Search and Browse
3476
actions in [source:/trunk/python-upnp/content_directory_client.py
3477
ContentDirectory], addresses #6
3479
2006-10-03 09:57 dev
3481
* python-upnp/control_point.py, python-upnp/event.py,
3482
python-upnp/service.py: remaining adaptations for AVTransport and
3483
RenderingControl LastChange events and instance based propagation
3484
of that event and the therein enclosed StateVariables plus the
3485
removal of some loquacious prints, closes #1,#2 and #3
3487
2006-10-02 14:39 dev
3489
* python-upnp/av_transport_client.py, python-upnp/control_point.py,
3490
python-upnp/media_renderer_client.py, python-upnp/service.py,
3491
python-upnp/variable.py: added instance dict around
3492
state_variables dict and adjusted variable related methods,
3495
2006-10-02 13:00 dev
3497
* python-upnp/control_point.py, python-upnp/device.py,
3498
python-upnp/event.py, python-upnp/service.py: enhanced with
3499
unsubscribe service notification and proper(?) shutdown handling,
3502
2006-10-02 12:50 dev
3504
* python-upnp/elementsoap: set svnignore for pyc/pyo
3506
2006-10-01 14:53 dev
3508
* python-upnp: set svnignore for pyc/pyo
3510
2006-10-01 14:39 dev
3512
* ., python-upnp, python-upnp/DIDLLite.py, python-upnp/__init__.py,
3513
python-upnp/action.py, python-upnp/av_transport_client.py,
3514
python-upnp/connection_manager_client.py,
3515
python-upnp/content_directory.py,
3516
python-upnp/content_directory_client.py,
3517
python-upnp/control_point.py, python-upnp/device.py,
3518
python-upnp/elementsoap, python-upnp/elementsoap/ElementSOAP.py,
3519
python-upnp/elementsoap/HTTPClient.py,
3520
python-upnp/elementsoap/README,
3521
python-upnp/elementsoap/__init__.py, python-upnp/event.py,
3522
python-upnp/media_renderer_client.py, python-upnp/msearch.py,
3523
python-upnp/rendering_control_client.py,
3524
python-upnp/rpc_client.py, python-upnp/service.py,
3525
python-upnp/soap_proxy.py, python-upnp/ssdp.py,
3526
python-upnp/utils.py, python-upnp/variable.py: initial import