From 2fd6701a47f4a2a218ef60a3aef088278fba954a Mon Sep 17 00:00:00 2001 From: Henry Bilby Date: Fri, 5 Jun 2009 09:10:42 -0400 Subject: [PATCH] Updating the new implementation of ZukeboxControlPoint class, adding soap_GetPlaylist method to ZukeboxPlaylist service and Updating playlist's xml descriptor with new soap method. --- control_point/zukebox_control_point.py | 102 +++++++++++++++++++- .../src/services/playlist/zb_playlist.py | 4 + .../src/xml_descriptions/zukebox-playlist-scpd.xml | 19 ++++ 3 files changed, 121 insertions(+), 4 deletions(-) diff --git a/control_point/zukebox_control_point.py b/control_point/zukebox_control_point.py index fefad8a..82d3585 100644 --- a/control_point/zukebox_control_point.py +++ b/control_point/zukebox_control_point.py @@ -68,14 +68,108 @@ class ZukeboxControlPoint(ControlPointAV): return False + def get_playlist(self, cp): - print 'Ainda falta implementar a chamada do playlist, esqueci o codigo no lab' - def search(self, cp): - print 'O mesmo para o print acima - search ' + playlist = {} + try: + device = cp.get_current_server() + service = device.get_service_by_type('urn:schemas-upnp-org:service:Playlist:1') + playlist = service.GetPlaylist() + except Exception, e: + if not service: + print 'Service not discovered. Exception: %s' %e + elif not playlist: + print 'Error in get current playlist. Exception: %s' %e + else: + print '%s'%e + playlist = None + + return playlist + + + def searchGenreList(self, cp, genreType): + + genre = {} + try: + device = cp.get_current_server() + service = device.get_service_by_type('urn:schemas-upnp-org:service:Search:1') + GenreType = {'GenreType':genreType} + genre = service.SearchGenreList(GenreType) + except Exception, e: + if not service: + print 'Service not discovered. Exception: %s' %e + elif not genre: + print 'Error in get genre type list. Exception: %s' %e + else: + print '%s' %e + genre = None + + return genre + + + def searchMusicList(self, cp, music_name): + + music = {} + try: + device = cp.get_current_server() + service = device.get_service_by_type('urn:schemas-upnp-org:service:Search:1') + MusicName = {'MusicName':music_name} + music = service.SearchMusicList(MusicName) + except Exception, e: + if not service: + print 'Service not discovered. Exception: %s' %e + elif not music: + print 'Error in get music list by name. Exception: %s' %e + else: + print '%s' %e + music = None + + return music + + + def searchArtistList(self, cp, artist_name): + + artist = {} + try: + device = cp.get_current_server() + service = device.get_service_by_type('urn:schemas-upnp-org:service:Search:1') + ArtistName = {'ArtistName':artist_name} + artist = service.SearchMusicList(ArtistName) + except Exception, e: + if not service: + print 'Service not discovered. Exception: %s' %e + elif not artist: + print 'Error in get artist list by name. Exception: %s' %e + else: + print '%s' %e + artist = None + + return artist + + + def searchAllAudioList(self, cp): + + all_audio = {} + try: + device = cp.get_current_server() + service = device.get_service_by_type('urn:schemas-upnp-org:service:Search:1') + all_audio = service.SearchMusicList() + except Exception, e: + if not service: + print 'Service not discovered. Exception: %s' %e + elif not all_audio: + print 'Error in get music list by name. Exception: %s' %e + else: + print '%s' %e + all_audio = None + + return all_audio + def content_directory(self, cp): - print 'O mesmo para o print acima - content_directory ' + print 'Testing content_directory acess ' + def stop(self, cp): cp.stop() diff --git a/zukebox_server/src/services/playlist/zb_playlist.py b/zukebox_server/src/services/playlist/zb_playlist.py index fd4b067..74fdd05 100644 --- a/zukebox_server/src/services/playlist/zb_playlist.py +++ b/zukebox_server/src/services/playlist/zb_playlist.py @@ -116,6 +116,10 @@ class PlayList(Service): prev_uri = prev["cur_uri"] return {"PreviousItem": prev_uri} + def soap_GetPlaylist(self, *args, **kwargs): + """Get the playlist""" + return {"Playlist": self.list} + def clean_playlist(self): if self.available: diff --git a/zukebox_server/src/xml_descriptions/zukebox-playlist-scpd.xml b/zukebox_server/src/xml_descriptions/zukebox-playlist-scpd.xml index fb348e5..b622ffd 100644 --- a/zukebox_server/src/xml_descriptions/zukebox-playlist-scpd.xml +++ b/zukebox_server/src/xml_descriptions/zukebox-playlist-scpd.xml @@ -100,6 +100,16 @@ + + GetPlaylist + + + Playlist + out + A_ARG_TYPE_GetPlaylist + + + @@ -147,6 +157,15 @@ + A_ARG_TYPE_GetPlayList + ui4 + + 0 + 10 + 1 + + + A_ARG_TYPE_Item string -- 1.7.9.5