# -*- coding: utf-8 -*-
# Licensed under the MIT license
# http://opensource.org/licenses/mit-license.php
# Copyright 2006-2008, Frank Scholz <coherence@beebits.net>
from coherence import log
[docs]class AVTransportClient(log.LogAble):
logCategory = 'avtransportclient'
def __init__(self, service):
log.LogAble.__init__(self)
self.service = service
self.namespace = service.get_type()
self.url = service.get_control_url()
self.service.subscribe()
self.service.client = self
# def __del__(self):
# # print('AVTransportClient deleted')
# pass
[docs] def remove(self):
self.service.remove()
self.service = None
self.namespace = None
self.url = None
del self
[docs] def subscribe_for_variable(self, var_name, callback, signal=False):
self.service.subscribe_for_variable(var_name, instance=0,
callback=callback, signal=signal)
[docs] def set_av_transport_uri(self, instance_id=0, current_uri='',
current_uri_metadata=''):
action = self.service.get_action('SetAVTransportURI')
return action.call(InstanceID=instance_id,
CurrentURI=current_uri,
CurrentURIMetaData=current_uri_metadata)
[docs] def set_next_av_transport_uri(self, instance_id=0, next_uri='',
next_uri_metadata=''):
action = self.service.get_action('SetNextAVTransportURI')
if action: # optional
return action.call(InstanceID=instance_id,
NextURI=next_uri,
NextURIMetaData=next_uri_metadata)
return None
[docs] def get_transport_info(self, instance_id=0):
action = self.service.get_action('GetTransportInfo')
return action.call(InstanceID=instance_id)
[docs] def get_position_info(self, instance_id=0):
action = self.service.get_action('GetPositionInfo')
return action.call(InstanceID=instance_id)
[docs] def get_device_capabilities(self, instance_id=0):
action = self.service.get_action('GetDeviceCapabilities')
return action.call(InstanceID=instance_id)
[docs] def get_transport_settings(self, instance_id=0):
action = self.service.get_action('GetTransportSettings')
return action.call(InstanceID=instance_id)
[docs] def pause(self, instance_id=0):
action = self.service.get_action('Pause')
if action: # optional
return action.call(InstanceID=instance_id)
return None
[docs] def play(self, instance_id=0, speed=1):
action = self.service.get_action('Play')
return action.call(InstanceID=instance_id, Speed=speed)
[docs] def stop(self, instance_id=0):
action = self.service.get_action('Stop')
return action.call(InstanceID=instance_id)
[docs] def record(self, instance_id=0):
action = self.service.get_action('Record')
if action: # optional
return action.call(InstanceID=instance_id)
return None
[docs] def seek(self, instance_id=0, unit='', target=0):
action = self.service.get_action('Seek')
return action.call(InstanceID=instance_id,
Unit=unit,
Target=target)
[docs] def next(self, instance_id=0):
action = self.service.get_action('Next')
return action.call(InstanceID=instance_id)
[docs] def previous(self, instance_id=0):
action = self.service.get_action('Previous')
return action.call(InstanceID=instance_id)
[docs] def get_current_transport_actions(self, instance_id=0):
action = self.service.get_action('GetCurrentTransportActions')
return action.call(InstanceID=instance_id)