Trigger PropertiesChanged signal
This commit is contained in:
parent
d1397baa2c
commit
a86b4d3313
@ -84,7 +84,7 @@ class MprisObject(dbus.service.Object):
|
|||||||
|
|
||||||
bus_name = 'org.mpris.MediaPlayer2.mopidy'
|
bus_name = 'org.mpris.MediaPlayer2.mopidy'
|
||||||
object_path = '/org/mpris/MediaPlayer2'
|
object_path = '/org/mpris/MediaPlayer2'
|
||||||
property_interface = 'org.freedesktop.DBus.Properties'
|
properties_interface = 'org.freedesktop.DBus.Properties'
|
||||||
root_interface = 'org.mpris.MediaPlayer2'
|
root_interface = 'org.mpris.MediaPlayer2'
|
||||||
player_interface = 'org.mpris.MediaPlayer2.Player'
|
player_interface = 'org.mpris.MediaPlayer2.Player'
|
||||||
properties = {
|
properties = {
|
||||||
@ -149,13 +149,13 @@ class MprisObject(dbus.service.Object):
|
|||||||
|
|
||||||
### Property interface
|
### Property interface
|
||||||
|
|
||||||
@dbus.service.method(dbus_interface=property_interface,
|
@dbus.service.method(dbus_interface=properties_interface,
|
||||||
in_signature='ss', out_signature='v')
|
in_signature='ss', out_signature='v')
|
||||||
def Get(self, interface, prop):
|
def Get(self, interface, prop):
|
||||||
getter, setter = self.properties[interface][prop]
|
getter, setter = self.properties[interface][prop]
|
||||||
return getter() if callable(getter) else getter
|
return getter() if callable(getter) else getter
|
||||||
|
|
||||||
@dbus.service.method(dbus_interface=property_interface,
|
@dbus.service.method(dbus_interface=properties_interface,
|
||||||
in_signature='s', out_signature='a{sv}')
|
in_signature='s', out_signature='a{sv}')
|
||||||
def GetAll(self, interface):
|
def GetAll(self, interface):
|
||||||
"""
|
"""
|
||||||
@ -173,12 +173,20 @@ class MprisObject(dbus.service.Object):
|
|||||||
getters[key] = getter() if callable(getter) else getter
|
getters[key] = getter() if callable(getter) else getter
|
||||||
return getters
|
return getters
|
||||||
|
|
||||||
@dbus.service.method(dbus_interface=property_interface,
|
@dbus.service.method(dbus_interface=properties_interface,
|
||||||
in_signature='ssv', out_signature='')
|
in_signature='ssv', out_signature='')
|
||||||
def Set(self, interface, prop, value):
|
def Set(self, interface, prop, value):
|
||||||
getter, setter = self.properties[interface][prop]
|
getter, setter = self.properties[interface][prop]
|
||||||
if setter is not None:
|
if setter is not None:
|
||||||
setter(value)
|
setter(value)
|
||||||
|
self.PropertiesChanged(interface,
|
||||||
|
{prop: self.Get(interface, prop)}, [])
|
||||||
|
|
||||||
|
@dbus.service.signal(dbus_interface=properties_interface,
|
||||||
|
signature='sa{sv}as')
|
||||||
|
def PropertiesChanged(self, interface, changed_properties,
|
||||||
|
invalidated_properties):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
### Root interface
|
### Root interface
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user