mirror of
https://github.com/SoongNoonien/mpdevil.git
synced 2023-08-10 21:12:44 +03:00
removed introspect interface from MPRISInterface
This commit is contained in:
parent
add623473c
commit
2165193490
119
bin/mpdevil
119
bin/mpdevil
@ -18,8 +18,6 @@
|
|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
# USA
|
# USA
|
||||||
|
|
||||||
# MPRIS interface based on 'mpDris2' (master 19.03.2020) by Jean-Philippe Braun <eon@patapon.info>, Mantas Mikulėnas <grawity@gmail.com>
|
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
gi.require_version('Gtk', '3.0')
|
gi.require_version('Gtk', '3.0')
|
||||||
gi.require_version('Notify', '0.7')
|
gi.require_version('Notify', '0.7')
|
||||||
@ -42,7 +40,6 @@ import pkg_resources
|
|||||||
import dbus
|
import dbus
|
||||||
import dbus.service
|
import dbus.service
|
||||||
from dbus.mainloop.glib import DBusGMainLoop
|
from dbus.mainloop.glib import DBusGMainLoop
|
||||||
import base64
|
|
||||||
|
|
||||||
NAME=pkg_resources.require('mpdevil')[0].project_name
|
NAME=pkg_resources.require('mpdevil')[0].project_name
|
||||||
VERSION=pkg_resources.require('mpdevil')[0].version
|
VERSION=pkg_resources.require('mpdevil')[0].version
|
||||||
@ -55,117 +52,11 @@ COVER_REGEX="^\.?(album|cover|folder|front).*\.(gif|jpeg|jpg|png)$"
|
|||||||
#########
|
#########
|
||||||
|
|
||||||
class MPRISInterface(dbus.service.Object): # TODO emit Seeked if needed
|
class MPRISInterface(dbus.service.Object): # TODO emit Seeked if needed
|
||||||
__introspect_interface="org.freedesktop.DBus.Introspectable"
|
"""
|
||||||
|
based on 'mpDris2' (master 19.03.2020) by Jean-Philippe Braun <eon@patapon.info>, Mantas Mikulėnas <grawity@gmail.com>
|
||||||
|
"""
|
||||||
__prop_interface=dbus.PROPERTIES_IFACE
|
__prop_interface=dbus.PROPERTIES_IFACE
|
||||||
|
|
||||||
# python dbus bindings don't include annotations and properties
|
|
||||||
MPRIS2_INTROSPECTION="""<node name="/org/mpris/MediaPlayer2">
|
|
||||||
<interface name="org.freedesktop.DBus.Introspectable">
|
|
||||||
<method name="Introspect">
|
|
||||||
<arg direction="out" name="xml_data" type="s"/>
|
|
||||||
</method>
|
|
||||||
</interface>
|
|
||||||
<interface name="org.freedesktop.DBus.Properties">
|
|
||||||
<method name="Get">
|
|
||||||
<arg direction="in" name="interface_name" type="s"/>
|
|
||||||
<arg direction="in" name="property_name" type="s"/>
|
|
||||||
<arg direction="out" name="value" type="v"/>
|
|
||||||
</method>
|
|
||||||
<method name="GetAll">
|
|
||||||
<arg direction="in" name="interface_name" type="s"/>
|
|
||||||
<arg direction="out" name="properties" type="a{sv}"/>
|
|
||||||
</method>
|
|
||||||
<method name="Set">
|
|
||||||
<arg direction="in" name="interface_name" type="s"/>
|
|
||||||
<arg direction="in" name="property_name" type="s"/>
|
|
||||||
<arg direction="in" name="value" type="v"/>
|
|
||||||
</method>
|
|
||||||
<signal name="PropertiesChanged">
|
|
||||||
<arg name="interface_name" type="s"/>
|
|
||||||
<arg name="changed_properties" type="a{sv}"/>
|
|
||||||
<arg name="invalidated_properties" type="as"/>
|
|
||||||
</signal>
|
|
||||||
</interface>
|
|
||||||
<interface name="org.mpris.MediaPlayer2">
|
|
||||||
<method name="Raise"/>
|
|
||||||
<method name="Quit"/>
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
|
|
||||||
<property name="CanQuit" type="b" access="read"/>
|
|
||||||
<property name="CanRaise" type="b" access="read"/>
|
|
||||||
<property name="HasTrackList" type="b" access="read"/>
|
|
||||||
<property name="Identity" type="s" access="read"/>
|
|
||||||
<property name="DesktopEntry" type="s" access="read"/>
|
|
||||||
<property name="SupportedUriSchemes" type="as" access="read"/>
|
|
||||||
<property name="SupportedMimeTypes" type="as" access="read"/>
|
|
||||||
</interface>
|
|
||||||
<interface name="org.mpris.MediaPlayer2.Player">
|
|
||||||
<method name="Next"/>
|
|
||||||
<method name="Previous"/>
|
|
||||||
<method name="Pause"/>
|
|
||||||
<method name="PlayPause"/>
|
|
||||||
<method name="Stop"/>
|
|
||||||
<method name="Play"/>
|
|
||||||
<method name="Seek">
|
|
||||||
<arg direction="in" name="Offset" type="x"/>
|
|
||||||
</method>
|
|
||||||
<method name="SetPosition">
|
|
||||||
<arg direction="in" name="TrackId" type="o"/>
|
|
||||||
<arg direction="in" name="Position" type="x"/>
|
|
||||||
</method>
|
|
||||||
<method name="OpenUri">
|
|
||||||
<arg direction="in" name="Uri" type="s"/>
|
|
||||||
</method>
|
|
||||||
<signal name="Seeked">
|
|
||||||
<arg name="Position" type="x"/>
|
|
||||||
</signal>
|
|
||||||
<property name="PlaybackStatus" type="s" access="read">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="LoopStatus" type="s" access="readwrite">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="Rate" type="d" access="readwrite">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="Shuffle" type="b" access="readwrite">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="Metadata" type="a{sv}" access="read">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="Volume" type="d" access="readwrite">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
|
|
||||||
</property>
|
|
||||||
<property name="Position" type="x" access="read">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
|
|
||||||
</property>
|
|
||||||
<property name="MinimumRate" type="d" access="read">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="MaximumRate" type="d" access="read">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="CanGoNext" type="b" access="read">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="CanGoPrevious" type="b" access="read">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="CanPlay" type="b" access="read">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="CanPause" type="b" access="read">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="CanSeek" type="b" access="read">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="CanControl" type="b" access="read">
|
|
||||||
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
|
|
||||||
</property>
|
|
||||||
</interface>
|
|
||||||
</node>"""
|
|
||||||
|
|
||||||
# MPRIS allowed metadata tags
|
# MPRIS allowed metadata tags
|
||||||
allowed_tags={
|
allowed_tags={
|
||||||
'mpris:trackid': dbus.ObjectPath,
|
'mpris:trackid': dbus.ObjectPath,
|
||||||
@ -407,10 +298,6 @@ class MPRISInterface(dbus.service.Object): # TODO emit Seeked if needed
|
|||||||
__root_interface: __root_props,
|
__root_interface: __root_props,
|
||||||
}
|
}
|
||||||
|
|
||||||
@dbus.service.method(__introspect_interface)
|
|
||||||
def Introspect(self):
|
|
||||||
return self.MPRIS2_INTROSPECTION
|
|
||||||
|
|
||||||
@dbus.service.signal(__prop_interface, signature="sa{sv}as")
|
@dbus.service.signal(__prop_interface, signature="sa{sv}as")
|
||||||
def PropertiesChanged(self, interface, changed_properties, invalidated_properties):
|
def PropertiesChanged(self, interface, changed_properties, invalidated_properties):
|
||||||
pass
|
pass
|
||||||
|
Loading…
Reference in New Issue
Block a user