Hello community,
here is the log from the commit of package cdemu-client for openSUSE:Factory checked in at 2017-02-16 17:04:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cdemu-client (Old)
and /work/SRC/openSUSE:Factory/.cdemu-client.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cdemu-client"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cdemu-client/cdemu-client.changes 2015-11-26 17:04:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cdemu-client.new/cdemu-client.changes 2017-02-16 17:04:09.491426349 +0100
@@ -1,0 +2,7 @@
+Mon Feb 6 19:05:14 UTC 2017 - jengelh@inai.de
+
+- Update to new upstream release 3.0.3
+ * set displayed process name to "cdemu"
+ * ported from dbus-python to GDBus
+
+-------------------------------------------------------------------
Old:
----
cdemu-client-3.0.1.tar.bz2
New:
----
cdemu-client-3.0.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cdemu-client.spec ++++++
--- /var/tmp/diff_new_pack.BgBIx0/_old 2017-02-16 17:04:09.971358444 +0100
+++ /var/tmp/diff_new_pack.BgBIx0/_new 2017-02-16 17:04:09.971358444 +0100
@@ -1,7 +1,7 @@
#
# spec file for package cdemu-client
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: cdemu-client
-Version: 3.0.1
+Version: 3.0.3
Release: 0
Summary: Command-line client to control cdemu-daemon
License: GPL-2.0+
++++++ cdemu-client-3.0.1.tar.bz2 -> cdemu-client-3.0.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cdemu-client-3.0.1/CMakeLists.txt new/cdemu-client-3.0.3/CMakeLists.txt
--- old/cdemu-client-3.0.1/CMakeLists.txt 2015-11-21 15:10:29.000000000 +0100
+++ new/cdemu-client-3.0.3/CMakeLists.txt 2016-10-10 00:26:53.000000000 +0200
@@ -19,7 +19,6 @@
# Dependencies
find_package (IntlTool 0.21 REQUIRED)
find_package (Gettext 0.15 REQUIRED)
-find_package (PythonInterp 2.6 REQUIRED)
if (POST_INSTALL_HOOKS)
find_program (UPDATE_DESKTOP_DATABASE_EXECUTABLE NAMES update-desktop-database)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cdemu-client-3.0.1/README new/cdemu-client-3.0.3/README
--- old/cdemu-client-3.0.1/README 2015-11-21 15:10:29.000000000 +0100
+++ new/cdemu-client-3.0.3/README 2016-10-10 00:26:53.000000000 +0200
@@ -1,5 +1,5 @@
CDEmu client
-3.0.1
+3.0.3
~~~~~
Table of Contents:
@@ -27,7 +27,7 @@
2. Requirements:
~~~~~~~~~~~~~~~~
- Python >= 2.6
- - D-BUS Python bindings
+ - PyGObject >= 3.0.0 (glib and gio modules are required)
- IntlTool >= 0.21
- GetText >= 0.15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cdemu-client-3.0.1/debian/changelog new/cdemu-client-3.0.3/debian/changelog
--- old/cdemu-client-3.0.1/debian/changelog 2015-11-21 15:10:29.000000000 +0100
+++ new/cdemu-client-3.0.3/debian/changelog 2016-10-10 00:26:53.000000000 +0200
@@ -1,7 +1,3 @@
-cdemu-client (3.0.1-1) debian; urgency=low
- * Updated to 3.0.1
- -- Rok Mandeljc Sat, 21 Nov 2015 12:00:00 +0100
-
-cdemu-client (3.0.0-1) debian; urgency=low
+cdemu-client (3.0.3-1) debian; urgency=low
* Initial Release. Closes: #705409
- -- Henrik Stokseth Sat, 05 Apr 2014 12:00:00 +0100
+ -- Henrik Stokseth Sat, 05 Apr 2014 12:00:00 +0100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cdemu-client-3.0.1/debian/control new/cdemu-client-3.0.3/debian/control
--- old/cdemu-client-3.0.1/debian/control 2015-11-21 15:10:29.000000000 +0100
+++ new/cdemu-client-3.0.3/debian/control 2016-10-10 00:26:53.000000000 +0200
@@ -2,16 +2,16 @@
Section: utils
Priority: optional
Homepage: http://cdemu.sourceforge.net/
-Maintainer: Henrik Stokseth
+Maintainer: Henrik Stokseth
Build-Depends: debhelper (>= 9)
Build-Depends-Indep: python (>= 2.6.6-3), intltool, cmake (>= 2.8.5)
X-Python-Version: >= 2.6.6
-Standards-Version: 3.9.5
+Standards-Version: 3.9.7
Package: cdemu-client
Architecture: all
-Depends: python (>= 2.6.6-3), python-dbus, cdemu-daemon (>= 3.0.0), ${python:Depends}, ${misc:Depends}
+Depends: python (>= 2.6.6-3), python-gi (>= 3.0.0), gir1.2-glib-2.0, cdemu-daemon (>= 3.0.0), ${python:Depends}, ${misc:Depends}
Recommends: bash-completion, gcdemu (>= 3.0.0)
Description: Command-line client to control CDEmu daemon
This is cdemu-client, a command-line client for controlling the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cdemu-client-3.0.1/debian/copyright new/cdemu-client-3.0.3/debian/copyright
--- old/cdemu-client-3.0.1/debian/copyright 2015-11-21 15:10:29.000000000 +0100
+++ new/cdemu-client-3.0.3/debian/copyright 2016-10-10 00:26:53.000000000 +0200
@@ -1,4 +1,4 @@
-This package was debianized by Henrik Stokseth <henrik AT hw0 DOT org> on
+This package was debianized by Henrik Stokseth on
Mon, 24 Des 2007 12:00:00 +0100.
It was downloaded from: http://cdemu.sourceforge.net/
@@ -32,6 +32,6 @@
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.
-The Debian packaging is (C) 2007, Henrik Stokseth <henrik AT hw0 DOT org> and
+The Debian packaging is (C) 2007, Henrik Stokseth and
is licensed under the GPL, see above.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cdemu-client-3.0.1/src/cdemu new/cdemu-client-3.0.3/src/cdemu
--- old/cdemu-client-3.0.1/src/cdemu 2015-11-21 15:10:29.000000000 +0100
+++ new/cdemu-client-3.0.3/src/cdemu 2016-10-10 00:26:53.000000000 +0200
@@ -21,10 +21,15 @@
from __future__ import print_function
import argparse
+import datetime
import sys
import os.path
import getpass
-import dbus
+
+import gi
+from gi.repository import GLib
+from gi.repository import Gio
+
try:
import configparser
@@ -35,15 +40,27 @@
from gettext import bindtextdomain, textdomain
# *** Globals ***
-app_name = "cdemu-client"
-app_version = "3.0.1"
+app_name = "cdemu"
+app_version = "3.0.3"
supported_daemon_interface_version = [ 7, 0 ]
# I18n
-bindtextdomain("cdemu")
-textdomain("cdemu")
+bindtextdomain(app_name)
+textdomain(app_name)
+
+
+# Set process name
+if sys.platform == "linux2":
+ # Set process name. Only works on Linux >= 2.1.57.
+ try:
+ import ctypes
+ libc = ctypes.CDLL("libc.so.6")
+ libc.prctl(15, app_name, 0, 0, 0) # 15 = PR_SET_NAME
+ except Exception:
+ pass
+# String to boolean conversion helper
def str2bool (value):
return value.lower() in ("yes", "true", "t", "1")
@@ -97,31 +114,31 @@
parser.add_argument("--encoding", type=str, help=_("encoding for text-based images"))
parser.add_argument("--dvd-report-css", action="store_true", help=_("flag the DVD disc as CSS-encoded"))
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# We need to pass absolute filenames to daemon
filenames = map(os.path.abspath, arguments.image_file)
# Gather parser parameters into a dictionary
parser_params = {}
if hasattr(arguments, "encoding"):
- parser_params["encoding"] = arguments.encoding
+ parser_params["encoding"] = GLib.Variant("s", arguments.encoding)
if hasattr(arguments, "password"):
- parser_params["password"] = arguments.password
+ parser_params["password"] = GLib.Variant("s", arguments.password)
if hasattr(arguments, "dvd_report_css"):
- parser_params["dvd-report-css"] = arguments.dvd_report_css
+ parser_params["dvd-report-css"] = GLib.Variant("b", arguments.dvd_report_css)
# Particular device vs. any device
if arguments.device == "any":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
for device in range(0, num_devices):
# Device's status
try:
- status = dbus_iface.DeviceGetStatus(device)
- except dbus.DBusException as e:
+ status = proxy.DeviceGetStatus(device)
+ except GLib.Error as e:
print_warning(_("Failed to get status of device %i: %s") % (device, e))
continue
@@ -130,7 +147,7 @@
continue
# Load device
- return self.load_device(dbus_iface, device, filenames, parser_params)
+ return self.load_device(proxy, device, filenames, parser_params)
else:
# If we're here, it means we didn't get an empty device
raise CDEmuError(_("No empty device found"))
@@ -140,23 +157,23 @@
except ValueError:
raise CDEmuError(_("String '%s' is not a number") % (arguments.device))
- return self.load_device(dbus_iface, device, filenames, parser_params)
+ return self.load_device(proxy, device, filenames, parser_params)
# Device loading with password query support
- def load_device (self, dbus_iface, device, filenames, params={}):
+ def load_device (self, proxy, device, filenames, params={}):
# Try to load it
try:
- dbus_iface.DeviceLoad(device, filenames, params)
- except dbus.DBusException as e:
- if e.get_dbus_name() == "net.sf.cdemu.CDEmuDaemon.errorMirage.EncryptedImage":
+ proxy.DeviceLoad(device, filenames, params)
+ except GLib.Error as e:
+ if "net.sf.cdemu.CDEmuDaemon.errorMirage.EncryptedImage" in str(e):
# We need password
print(_("The image you are trying to load is encrypted."))
- params["password"] = getpass.getpass(_("Password: ")) # Append password to params
+ password = getpass.getpass(_("Password: ")) # Append password to params
+ params["password"] = GLib.Variant("s", password)
return load_device(device, filenames, params)
else:
raise CDEmuError(_("Failed to load image: %s") % (e))
-
########################################################################
# Create blank #
########################################################################
@@ -175,36 +192,36 @@
parser.add_argument("--medium-type", type=str, nargs="?", choices=['cdr74', 'cdr80', 'cdr90', 'cdr99', 'dvd+r'], help=_("medium type"))
parser.add_argument("--param", type=str, nargs="?", action='append', help=_("additional writer parameter(s)"))
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# We need to pass absolute filename/basename to daemon
filename = os.path.abspath(arguments.image_file)
# Gather writer parameters into a dictionary
parameters = {}
if hasattr(arguments, "writer_id"):
- parameters["writer-id"] = arguments.writer_id
+ parameters["writer-id"] = GLib.Variant("s", arguments.writer_id)
if hasattr(arguments, "medium_type"):
- parameters["medium-type"] = arguments.medium_type
+ parameters["medium-type"] = GLib.Variant("s", arguments.medium_type)
if hasattr(arguments, "param"):
# Process parameters
writer_parameters = self.process_writer_parameters(arguments.param)
# Validate parameters using writer's parameter sheet
- writer_parameters = self.validate_writer_parameters(dbus_iface, arguments.writer_id, writer_parameters)
+ writer_parameters = self.validate_writer_parameters(proxy, arguments.writer_id, writer_parameters)
# Set to parameters dictionary that we will send to daemon
parameters.update(writer_parameters)
# Particular device vs. any device
if arguments.device == "any":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
for device in range(0, num_devices):
# Device's status
try:
- status = dbus_iface.DeviceGetStatus(device)
- except dbus.DBusException as e:
+ status = proxy.DeviceGetStatus(device)
+ except GLib.Error as e:
print_warning(_("Failed to get status of device %i: %s") % (device, e))
continue
@@ -213,7 +230,7 @@
continue
# Load device
- return self.load_device(dbus_iface, device, filename, parameters)
+ return self.load_device(proxy, device, filename, parameters)
else:
# If we're here, it means we didn't get an empty device
raise CDEmuError(_("No empty device found"))
@@ -223,14 +240,14 @@
except ValueError:
raise CDEmuError(_("String '%s' is not a number") % (arguments.device))
- return self.load_device(dbus_iface, device, filename, parameters)
+ return self.load_device(proxy, device, filename, parameters)
# Device loading
- def load_device (self, dbus_iface, device, filenames, params={}):
+ def load_device (self, proxy, device, filenames, params={}):
# Try to load it
try:
- dbus_iface.DeviceCreateBlank(device, filenames, params)
- except dbus.DBusException as e:
+ proxy.DeviceCreateBlank(device, filenames, params)
+ except GLib.Error as e:
raise CDEmuError(_("Failed to load blank image: %s") % (e))
# Image writer parameter processing
@@ -257,11 +274,11 @@
return parameters
# Writer parameter validation
- def validate_writer_parameters (self, dbus_iface, writer_id, parameters):
+ def validate_writer_parameters (self, proxy, writer_id, parameters):
# Grab writer's parameter sheet
try:
- parameter_sheet = dbus_iface.EnumWriterParameters(writer_id)
- except dbus.DBusException as e:
+ parameter_sheet = proxy.EnumWriterParameters(writer_id)
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get parameter sheet for writer: %s") % (e))
# Convert the XML tree into a dictionary for convenience
@@ -275,6 +292,7 @@
parameter_entry = valid_parameters[key]
except KeyError as e:
print_warning(_("Parameter '%s' not found in writer's parameter sheet!") % (key))
+ parameters.pop(key, '') # Remove from dictionary
continue
# Determine type
@@ -283,19 +301,20 @@
# on the list of valid values, and if not, print a warning
for enum_value in parameter_entry[4]:
if value == enum_value:
+ parameters[key] = GLib.Variant("s", value)
break
else:
print_warning(_("Invalid value '%s' given for parameter '%s'!") % (value, key))
- elif isinstance(parameter_entry[3], dbus.String):
- # String; nothing to do here
- continue
- elif isinstance(parameter_entry[3], dbus.Boolean):
+ elif isinstance(parameter_entry[3], str):
+ # String
+ parameters[key] = GLib.Variant("s", value)
+ elif isinstance(parameter_entry[3], bool):
# Boolean; convert string value to boolean
- parameters[key] = str2bool(value)
- elif isinstance(parameter_entry[3], dbus.Int32):
+ parameters[key] = GLib.Variant("b", str2bool(value))
+ elif isinstance(parameter_entry[3], int):
# Convert string value to integer
try:
- parameters[key] = int(value, 0)
+ parameters[key] = GLib.Variant("i", int(value, 0))
except ValueError:
raise CDEmuError(_("String '%s' given as value for parameter '%s' is not a number!") % (value, key))
else:
@@ -319,25 +338,25 @@
parser.add_argument("device", type=str, help=_("device"))
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Particular device vs. all devices
if arguments.device == "all":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
for device in range(0, num_devices):
try:
- dbus_iface.DeviceUnload(device)
- except dbus.DBusException as e:
+ proxy.DeviceUnload(device)
+ except GLib.Error as e:
print_warning(_("Failed to unload device %i: %s") % (device, e))
continue
else:
try:
device = int(arguments.device, 0)
- dbus_iface.DeviceUnload(device)
- except dbus.DBusException as e:
+ proxy.DeviceUnload(device)
+ except GLib.Error as e:
raise CDEmuError(_("Failed to unload device %i: %s") % (device, e))
except ValueError:
raise CDEmuError(_("String '%s' is not a number") % (arguments.device))
@@ -355,19 +374,19 @@
parser = subparsers.add_parser(name, description=description_msg, help=help_msg, formatter_class=argparse.ArgumentDefaultsHelpFormatter, argument_default=argparse.SUPPRESS)
parser.set_defaults(command_function=self)
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Print status for all devices
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
print_header(_("Devices' status:"))
print("%-5s %-10s %s" % (_("DEV"), _("LOADED"), _("FILENAME")))
for device in range (0, num_devices):
try:
- [loaded, filenames] = dbus_iface.DeviceGetStatus(device, utf8_strings=True)
- except dbus.DBusException as e:
+ [loaded, filenames] = proxy.DeviceGetStatus(device)
+ except GLib.Error as e:
print_warning(_("Failed to get status of device %i: %s") % (device, e))
continue
@@ -392,19 +411,19 @@
parser = subparsers.add_parser(name, description=description_msg, help=help_msg, formatter_class=argparse.ArgumentDefaultsHelpFormatter, argument_default=argparse.SUPPRESS)
parser.set_defaults(command_function=self)
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Print device mapping for all devices
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
print_header(_("Device mapping:"))
print("%-5s %-15s %-15s" % (_("DEV"), _("SCSI CD-ROM"), _("SCSI generic")))
for device in range (0, num_devices):
try:
- [dev_sr, dev_sg] = dbus_iface.DeviceGetMapping(device)
- except dbus.DBusException as e:
+ [dev_sr, dev_sg] = proxy.DeviceGetMapping(device)
+ except GLib.Error as e:
print_warning(_("Failed to get device mapping of device %i: %s") % (device, e))
continue
@@ -427,7 +446,7 @@
parser.add_argument("new_value", nargs="?", type=str, help=_("new value"))
parser.set_defaults(command_function=self)
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Set daemon debug mask
if hasattr(arguments, "new_value"):
try:
@@ -437,15 +456,15 @@
if arguments.device == "all":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
print(_("Setting daemon debug mask of all devices to 0x%X.") % (mask))
for device in range(0, num_devices):
try:
- dbus_iface.DeviceSetOption(device, "daemon-debug-mask", mask)
- except dbus.DBusException as e:
+ proxy.DeviceSetOption(device, "daemon-debug-mask", GLib.Variant("i", mask))
+ except GLib.Error as e:
print_warning(_("Failed to set daemon debug mask of device %i to 0x%X: %s") % (device, mask, e))
continue
else:
@@ -456,8 +475,8 @@
print(_("Setting daemon debug mask of device %i to 0x%X.") % (device, mask))
try:
- dbus_iface.DeviceSetOption(device, "daemon-debug-mask", mask)
- except dbus.DBusException as e:
+ proxy.DeviceSetOption(device, "daemon-debug-mask", GLib.Variant("i", mask))
+ except GLib.Error as e:
raise CDEmuError(_("Failed to set daemon debug mask of device %i to 0x%X: %s") % (device, mask, e))
# Get daemon debug mask
@@ -465,8 +484,8 @@
# Particular device vs. all devices
if arguments.device == "all":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
print_header(_("Devices' daemon debug masks:"))
@@ -474,8 +493,8 @@
for device in range(0, num_devices):
try:
- mask = dbus_iface.DeviceGetOption(device, "daemon-debug-mask")
- except dbus.DBusException as e:
+ mask = proxy.DeviceGetOption(device, "daemon-debug-mask")
+ except GLib.Error as e:
print_warning(_("Failed to get daemon debug mask of device %i: %s") % (device, e))
continue
@@ -483,8 +502,8 @@
else:
try:
device = int(arguments.device, 0)
- mask = dbus_iface.DeviceGetOption(device, "daemon-debug-mask")
- except dbus.DBusException as e:
+ mask = proxy.DeviceGetOption(device, "daemon-debug-mask")
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get daemon debug mask of device %i: %s") % (device, e))
except ValueError:
raise CDEmuError(_("String '%s' is not a number") % (arguments.device))
@@ -507,7 +526,7 @@
parser.add_argument("device", type=str, help=_("device"))
parser.add_argument("new_value", nargs="?", type=str, help=_("new value"))
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Set debug mask
if hasattr(arguments, "new_value"):
try:
@@ -517,15 +536,15 @@
if arguments.device == "all":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
print(_("Setting library debug mask of all devices to 0x%X.") % (mask))
for device in range(0, num_devices):
try:
- dbus_iface.DeviceSetOption(device, "library-debug-mask", mask)
- except dbus.DBusException as e:
+ proxy.DeviceSetOption(device, "library-debug-mask", GLib.Variant("i", mask))
+ except GLib.Error as e:
print_warning(_("Failed to set library debug mask of device %i to 0x%X: %s") % (device, mask, e))
continue
else:
@@ -536,8 +555,8 @@
print(_("Setting library debug mask of device %i to 0x%X.") % (device, mask))
try:
- dbus_iface.DeviceSetOption(device, "library-debug-mask", mask)
- except dbus.DBusException as e:
+ proxy.DeviceSetOption(device, "library-debug-mask", GLib.Variant("i", mask))
+ except GLib.Error as e:
raise CDEmuError(_("Failed to set library debug mask of device %i to 0x%X: %s") % (device, mask, e))
# Get debug mask
@@ -545,8 +564,8 @@
# Particular device vs. all devices
if arguments.device == "all":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
print_header(_("Devices' library debug masks:"))
@@ -554,16 +573,16 @@
for device in range(0, num_devices):
try:
- mask = dbus_iface.DeviceGetOption(device, "library-debug-mask")
- except dbus.DBusException as e:
+ mask = proxy.DeviceGetOption(device, "library-debug-mask")
+ except GLib.Error as e:
print_warning(_("Failed to get library debug mask of device %i: %s") % (device, e))
print("%-5s 0x%08X" % (device, mask))
else:
try:
device = int(arguments.device, 0)
- mask = dbus_iface.DeviceGetOption(device, "library-debug-mask")
- except dbus.DBusException as e:
+ mask = proxy.DeviceGetOption(device, "library-debug-mask")
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get library debug mask of device %i: %s") % (device, e))
except ValueError:
raise CDEmuError(_("String '%s' is not a number") % (mask))
@@ -586,7 +605,7 @@
parser.add_argument("device", type=str, help=_("device"))
parser.add_argument("new_value", nargs="?", type=str, help=_("new value"))
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Set DPM emulation flag
if hasattr(arguments, "new_value"):
try:
@@ -596,15 +615,15 @@
if arguments.device == "all":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
print(_("Setting DPM emulation flag of all devices to %i.") % (enabled))
for device in range(0, num_devices):
try:
- dbus_iface.DeviceSetOption(device, "dpm-emulation", enabled)
- except dbus.DBusException as e:
+ proxy.DeviceSetOption(device, "dpm-emulation", GLib.Variant("b", enabled))
+ except GLib.Error as e:
print_warning(_("Failed to set DPM emulation flag of device %i to %i: %s") % (device, enabled, e))
continue
else:
@@ -615,8 +634,8 @@
print(_("Setting DPM emulation flag of device %i to %i.") % (device, enabled))
try:
- dbus_iface.DeviceSetOption(device, "dpm-emulation", enabled)
- except dbus.DBusException as e:
+ proxy.DeviceSetOption(device, "dpm-emulation", GLib.Variant("b", enabled))
+ except GLib.Error as e:
raise CDEmuError(_("Failed to set DPM emulation flag of device %i to %i: %s") % (device, enabled, e))
# Get DPM emulation flag
@@ -624,8 +643,8 @@
# Particular device vs. all devices
if arguments.device == "all":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
print_header(_("Devices' DPM emulation flag:"))
@@ -633,8 +652,8 @@
for device in range(0, num_devices):
try:
- enabled = dbus_iface.DeviceGetOption(device, "dpm-emulation")
- except dbus.DBusException as e:
+ enabled = proxy.DeviceGetOption(device, "dpm-emulation")
+ except GLib.Error as e:
print_warning(_("Failed to get DPM emulation flag of device %i: %s") % (device, e))
continue
@@ -642,8 +661,8 @@
else:
try:
device = int(arguments.device, 0)
- enabled = dbus_iface.DeviceGetOption(device, "dpm-emulation")
- except dbus.DBusException as e:
+ enabled = proxy.DeviceGetOption(device, "dpm-emulation")
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get DPM emulation flag of device %i: %s") % (device, e))
except ValueError:
raise CDEmuError(_("String '%s' is not a number") % (arguments.device))
@@ -666,7 +685,7 @@
parser.add_argument("device", type=str, help=_("device"))
parser.add_argument("new_value", nargs="?", type=str, help=_("new value"))
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Set TR emulation flag
if hasattr(arguments, "new_value"):
try:
@@ -676,15 +695,15 @@
if arguments.device == "all":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
print(_("Setting transfer rate emulation flag of all devices to %i.") % (enabled))
for device in range(0, num_devices):
try:
- dbus_iface.DeviceSetOption(device, "tr-emulation", enabled)
- except dbus.DBusException as e:
+ proxy.DeviceSetOption(device, "tr-emulation", GLib.Variant("b", enabled))
+ except GLib.Error as e:
print_warning(_("Failed to set transfer rate emulation flag of device %i to %i: %s") % (device, enabled, e))
continue
else:
@@ -695,8 +714,8 @@
print(_("Setting transfer rate emulation flag of device %i to %i.") % (device, enabled))
try:
- dbus_iface.DeviceSetOption(device, "tr-emulation", enabled)
- except dbus.DBusException as e:
+ proxy.DeviceSetOption(device, "tr-emulation", GLib.Variant("b", enabled))
+ except GLib.Error as e:
raise CDEmuError(_("Failed to set transfer rate emulation flag of device %i to %i: %s") % (device, enabled, e))
# Get TR emulation flag
@@ -704,8 +723,8 @@
# Particular device vs. all devices
if arguments.device == "all":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
print(_("Devices' transfer rate emulation flag:"))
@@ -713,8 +732,8 @@
for device in range(0, num_devices):
try:
- enabled = dbus_iface.DeviceGetOption(device, "tr-emulation")
- except dbus.DBusException as e:
+ enabled = proxy.DeviceGetOption(device, "tr-emulation")
+ except GLib.Error as e:
print_warning(_("Failed to get transfer rate emulation flag of device %i: %s") % (device, e))
continue
@@ -722,8 +741,8 @@
else:
try:
device = int(arguments.device, 0)
- enabled = dbus_iface.DeviceGetOption(device, "tr-emulation")
- except dbus.DBusException as e:
+ enabled = proxy.DeviceGetOption(device, "tr-emulation")
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get transfer rate emulation flag of device %i: %s") % (device, e))
except ValueError:
raise CDEmuError(_("String '%s' is not a number") % (arguments.device))
@@ -746,7 +765,7 @@
parser.add_argument("device", type=str, help=_("device"))
parser.add_argument("new_value", nargs="?", type=str, help=_("new value"))
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Set bad sector emulation flag
if hasattr(arguments, "new_value"):
try:
@@ -756,15 +775,15 @@
if arguments.device == "all":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
print(_("Setting bad sector emulation flag of all devices to %i.") % (enabled))
for device in range(0, num_devices):
try:
- dbus_iface.DeviceSetOption(device, "bad-sector-emulation", enabled)
- except dbus.DBusException as e:
+ proxy.DeviceSetOption(device, "bad-sector-emulation", GLib.Variant("b", enabled))
+ except GLib.Error as e:
print_warning(_("Failed to set bad sector emulation flag of device %i to %i: %s") % (device, enabled, e))
continue
else:
@@ -775,8 +794,8 @@
print(_("Setting bad sector emulation flag of device %i to %i.") % (device, enabled))
try:
- dbus_iface.DeviceSetOption(device, "bad-sector-emulation", enabled)
- except dbus.DBusException as e:
+ proxy.DeviceSetOption(device, "bad-sector-emulation", GLib.Variant("b", enabled))
+ except GLib.Error as e:
raise CDEmuError(_("Failed to set bad sector emulation flag of device %i to %i: %s") % (device, enabled, e))
# Get bad sector emulation flag
@@ -784,8 +803,8 @@
# Particular device vs. all devices
if arguments.device == "all":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
print_header(_("Devices' bad sector emulation flag:"))
@@ -793,8 +812,8 @@
for device in range(0, num_devices):
try:
- enabled = dbus_iface.DeviceGetOption(device, "bad-sector-emulation")
- except dbus.DBusException as e:
+ enabled = proxy.DeviceGetOption(device, "bad-sector-emulation")
+ except GLib.Error as e:
print_warning(_("Failed to get bad sector emulation flag of device %i: %s") % (device, e))
continue
@@ -802,8 +821,8 @@
else:
try:
device = int(arguments.device, 0)
- enabled = dbus_iface.DeviceGetOption(device, "bad-sector-emulation")
- except dbus.DBusException as e:
+ enabled = proxy.DeviceGetOption(device, "bad-sector-emulation")
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get bad sector emulation flag of device %i: %s") % (device, e))
except ValueError:
raise CDEmuError(_("String '%s' is not a number") % (arguments.device))
@@ -826,7 +845,7 @@
parser.add_argument("device", type=str, help=_("device"))
parser.add_argument("new_id", nargs='*', type=str, help=_("new device ID: vendor ID, product ID, revision and vendor-specific string"))
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Set device ID
if hasattr(arguments, "new_id"):
device_id = tuple(arguments.new_id)
@@ -836,15 +855,15 @@
if arguments.device == "all":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
print(_("Setting device ID of all devices to %s.") % (device_id))
for device in range(0, num_devices):
try:
- dbus_iface.DeviceSetOption(device, "device-id", device_id)
- except dbus.DBusException as e:
+ proxy.DeviceSetOption(device, "device-id", GLib.Variant("(ssss)", device_id))
+ except GLib.Error as e:
print_warning(_("Failed to set device ID of device %i to %s: %s") % (device, device_id, e))
continue
else:
@@ -855,8 +874,8 @@
print(_("Setting device ID of device %i to %s.") % (device, device_id))
try:
- dbus_iface.DeviceSetOption(device, "device-id", device_id)
- except dbus.DBusException as e:
+ proxy.DeviceSetOption(device, "device-id", GLib.Variant("(ssss)", device_id))
+ except GLib.Error as e:
raise CDEmuError(_("Failed to set device ID of device %i to %s: %s") % (device, device_id, e))
@@ -865,8 +884,8 @@
# Particular device vs. all devices
if arguments.device == "all":
try:
- num_devices = dbus_iface.GetNumberOfDevices()
- except dbus.DBusException as e:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get number of devices: %s") % (e))
print_header(_("Devices' IDs:"))
@@ -874,9 +893,9 @@
for device in range(0, num_devices):
try:
- values = dbus_iface.DeviceGetOption(device, "device-id")
+ values = proxy.DeviceGetOption(device, "device-id")
device_id = map(str, values)
- except dbus.DBusException as e:
+ except GLib.Error as e:
print_warning(_("Failed to get device ID of device %i: %s") % (device, e))
continue
@@ -884,9 +903,9 @@
else:
try:
device = int(arguments.device, 0)
- values = dbus_iface.DeviceGetOption(device, "device-id")
+ values = proxy.DeviceGetOption(device, "device-id")
device_id = map (str, values)
- except dbus.DBusException as e:
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get device ID of device %i: %s") % (device, e))
except ValueError:
raise CDEmuError(_("String '%s' is not a number") % (arguments.device))
@@ -906,11 +925,11 @@
parser = subparsers.add_parser(name, description=description_msg, help=help_msg, formatter_class=argparse.ArgumentDefaultsHelpFormatter, argument_default=argparse.SUPPRESS)
parser.set_defaults(command_function=self)
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Display supported parsers
try:
- parsers = dbus_iface.EnumSupportedParsers()
- except dbus.DBusException as e:
+ parsers = proxy.EnumSupportedParsers()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to enumerate supported parsers: %s") % (e))
return False
@@ -934,11 +953,11 @@
parser = subparsers.add_parser(name, description=description_msg, help=help_msg, formatter_class=argparse.ArgumentDefaultsHelpFormatter, argument_default=argparse.SUPPRESS)
parser.set_defaults(command_function=self)
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Display supported writers
try:
- writers = dbus_iface.EnumSupportedWriters()
- except dbus.DBusException as e:
+ writers = proxy.EnumSupportedWriters()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to enumerate supported writers: %s") % (e))
# Print all writers
@@ -959,11 +978,11 @@
parser = subparsers.add_parser(name, description=description_msg, help=help_msg, formatter_class=argparse.ArgumentDefaultsHelpFormatter, argument_default=argparse.SUPPRESS)
parser.set_defaults(command_function=self)
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Display supported filter streams
try:
- filter_streams = dbus_iface.EnumSupportedFilterStreams()
- except dbus.DBusException as e:
+ filter_streams = proxy.EnumSupportedFilterStreams()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to enumerate supported filter streams: %s") % (e))
# Print all filter streams
@@ -987,11 +1006,11 @@
parser = subparsers.add_parser(name, description=description_msg, help=help_msg, formatter_class=argparse.ArgumentDefaultsHelpFormatter, argument_default=argparse.SUPPRESS)
parser.set_defaults(command_function=self)
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Print module's debug masks
try:
- debug_masks = dbus_iface.EnumDaemonDebugMasks()
- except dbus.DBusException as e:
+ debug_masks = proxy.EnumDaemonDebugMasks()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to enumerate supported daemon debug masks: %s") % (e))
print_header(_("Supported daemon debug masks:"))
@@ -1011,11 +1030,11 @@
parser = subparsers.add_parser(name, description=description_msg, help=help_msg, formatter_class=argparse.ArgumentDefaultsHelpFormatter, argument_default=argparse.SUPPRESS)
parser.set_defaults(command_function=self)
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Print module's debug masks
try:
- debug_masks = dbus_iface.EnumLibraryDebugMasks()
- except dbus.DBusException as e:
+ debug_masks = proxy.EnumLibraryDebugMasks()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to enumerate supported library debug masks: %s") % (e))
print_header(_("Supported library debug masks:"))
@@ -1037,11 +1056,11 @@
parser.add_argument("writer", type=str, help=_("writer ID"))
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Get parameter sheet for the specified writer
try:
- parameter_sheet = dbus_iface.EnumWriterParameters(arguments.writer)
- except dbus.DBusException as e:
+ parameter_sheet = proxy.EnumWriterParameters(arguments.writer)
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get parameter sheet for writer: %s") % (e))
# Print the sheet
@@ -1061,11 +1080,11 @@
def parameter_type_name (self, parameter):
if len(parameter[4]):
return _("enum")
- elif isinstance(parameter[3], dbus.String):
+ elif isinstance(parameter[3], str):
return _("string")
- elif isinstance(parameter[3], dbus.Boolean):
+ elif isinstance(parameter[3], bool):
return _("boolean")
- elif isinstance(parameter[3], dbus.Int32):
+ elif isinstance(parameter[3], int):
return _("integer")
else:
return _("unknown")
@@ -1073,15 +1092,13 @@
# This is a stand-alone function because it is shared between
# enum-writer-parameters and create-blank implementations
-def fetch_and_parse_writer_parameter_sheet (dbus_iface, writer_id):
+def fetch_and_parse_writer_parameter_sheet (proxy, writer_id):
# Enumerate all supported writers
try:
- parameter_sheet = dbus_iface.EnumWriterParameters(writer_id)
- except dbus.DBusException as e:
+ parameter_sheet = proxy.EnumWriterParameters(writer_id)
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get parameter sheet for writer: %s") % (e))
- print(parameter_sheet)
-
# Find the one we want
for writer in writers:
if writer[0] == writer_id:
@@ -1110,16 +1127,16 @@
parser = subparsers.add_parser(name, description=description_msg, help=help_msg, formatter_class=argparse.ArgumentDefaultsHelpFormatter, argument_default=argparse.SUPPRESS)
parser.set_defaults(command_function=self)
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
# Print version information
try:
- library_version = dbus_iface.GetLibraryVersion()
- except dbus.DBusException as e:
+ library_version = proxy.GetLibraryVersion()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get library version: %s") % (e))
try:
- daemon_version = dbus_iface.GetDaemonVersion()
- except dbus.DBusException as e:
+ daemon_version = proxy.GetDaemonVersion()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to get daemon version: %s") % (e))
print(_("Library version: %s") % (str(library_version)))
@@ -1138,10 +1155,10 @@
parser = subparsers.add_parser(name, description=description_msg, help=help_msg, formatter_class=argparse.ArgumentDefaultsHelpFormatter, argument_default=argparse.SUPPRESS)
parser.set_defaults(command_function=self)
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
try:
- dbus_iface.AddDevice()
- except dbus.DBusException as e:
+ proxy.AddDevice()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to add device: %s") % (e))
print(_("Device added successfully."))
@@ -1159,10 +1176,10 @@
parser = subparsers.add_parser(name, description=description_msg, help=help_msg, formatter_class=argparse.ArgumentDefaultsHelpFormatter, argument_default=argparse.SUPPRESS)
parser.set_defaults(command_function=self)
- def __call__ (self, dbus_iface, arguments):
+ def __call__ (self, proxy, arguments):
try:
- dbus_iface.RemoveDevice()
- except dbus.DBusException as e:
+ proxy.RemoveDevice()
+ except GLib.Error as e:
raise CDEmuError(_("Failed to remove device: %s") % (e))
print(_("Device removed successfully."))
@@ -1185,9 +1202,10 @@
def create_parser ():
parser = CDEmuCommandLineParser(description=_("Command-line CDEmu client."), formatter_class=argparse.ArgumentDefaultsHelpFormatter, argument_default=argparse.SUPPRESS)
parser.add_argument("--bus", metavar="BUS", choices=["system", "session"], help=_("sets D-BUS bus type to use"))
- parser.add_argument("--version", action="version", version="%s %s - (C) Rok Mandeljc" % (app_name, app_version))
+ parser.add_argument("--version", action="version", version="%s %s - (C) 2006-%d Rok Mandeljc" % (app_name, app_version, datetime.date.today().year))
subparsers = parser.add_subparsers(title=_("valid commands"), metavar="command", help=_("command help"))
+ subparsers.required = True
# Command sub-parsers
cmd_load(subparsers) # Load
@@ -1215,35 +1233,95 @@
########################################################################
-# D-Bus connection #
+# CDEmuDaemonProxy: Daemon proxy object #
########################################################################
-def connect_to_daemon (bus_type):
- try:
- if bus_type == "system":
- dbus_bus = dbus.SystemBus()
- elif bus_type == "session":
- dbus_bus = dbus.SessionBus()
- else:
- print_warning(_("Invalid bus parameter '%s', using default!") % (bus_type))
- dbus_bus = dbus.SessionBus() # Use session bus by default
+class CDEmuDaemonProxy ():
+ _name = 'net.sf.cdemu.CDEmuDaemon'
+ _object_path = '/Daemon'
- dbus_proxy = dbus_bus.get_object("net.sf.cdemu.CDEmuDaemon", "/Daemon")
- dbus_iface = dbus.Interface(dbus_proxy, "net.sf.cdemu.CDEmuDaemon")
- except dbus.DBusException as e:
- raise CDEmuError(_("Failed to connect to CDEmu daemon: %s") % (e))
+ def __init__ (self, bus_type):
+ try:
+ if bus_type == "system":
+ bus = Gio.bus_get_sync(Gio.BusType.SYSTEM, None)
+ elif bus_type == "session":
+ bus = Gio.bus_get_sync(Gio.BusType.SESSION, None)
+ else:
+ print_warning(_("Invalid bus parameter '%s', using default!") % (bus_type))
+ bus = Gio.bus_get_sync(Gio.BusType.SESSION, None) # Use session bus by default
- # Get daemon interface version
- try:
- interface_version = dbus_iface.GetDaemonInterfaceVersion2()
- except dbus.DBusException as e:
- raise CDEmuError(_("Failed to acquire daemon interface version (this most likely means your daemon is out-of-date): %s") % (e))
+ self.proxy = Gio.DBusProxy.new_sync(bus, 0, None, "net.sf.cdemu.CDEmuDaemon", "/Daemon", "net.sf.cdemu.CDEmuDaemon", None)
+ except GLib.Error as e:
+ raise CDEmuError(_("Failed to connect to CDEmu daemon: %s") % (e))
+
+ # Get daemon interface version
+ try:
+ interface_version = self.GetDaemonInterfaceVersion2()
+ except GLib.Error as e:
+ raise CDEmuError(_("Failed to acquire daemon interface version (this most likely means your daemon is out-of-date): %s") % (e))
+
+ # Check daemon interface version
+ if interface_version[0] != supported_daemon_interface_version[0] or interface_version[1] < supported_daemon_interface_version[1]:
+ raise CDEmuError(_("CDEmu daemon interface version %i.%i detected, but version %i.%i is required!") % (interface_version[0], interface_version[1], supported_daemon_interface_version[0], supported_daemon_interface_version[1]))
+
+ def GetDaemonVersion (self):
+ return self.proxy.GetDaemonVersion()
+
+ def GetLibraryVersion (self):
+ return self.proxy.GetLibraryVersion()
+
+ def GetDaemonInterfaceVersion2 (self):
+ return self.proxy.GetDaemonInterfaceVersion2()
+
+ def EnumDaemonDebugMasks (self):
+ return self.proxy.EnumDaemonDebugMasks()
+
+ def EnumLibraryDebugMasks (self):
+ return self.proxy.EnumLibraryDebugMasks()
+
+ def EnumSupportedParsers (self):
+ return self.proxy.EnumSupportedParsers()
+
+ def EnumSupportedWriters (self):
+ return self.proxy.EnumSupportedWriters()
+
+ def EnumSupportedFilterStreams (self):
+ return self.proxy.EnumSupportedFilterStreams()
+
+ def EnumWriterParameters (self, writer_id):
+ return self.proxy.EnumWriterParameters('(s)', writer_id)
+
+
+ def GetNumberOfDevices (self):
+ return self.proxy.GetNumberOfDevices()
+
+
+ def DeviceGetMapping (self, device_number):
+ return self.proxy.DeviceGetMapping('(i)', device_number)
+
+ def DeviceGetStatus (self, device_number):
+ return self.proxy.DeviceGetStatus('(i)', device_number)
+
+ def DeviceLoad (self, device_number, filenames, parameters):
+ return self.proxy.DeviceLoad('(iasa{sv})', device_number, filenames, parameters)
+
+ def DeviceCreateBlank (self, device_number, filename, parameters):
+ return self.proxy.DeviceCreateBlank('(isa{sv})', device_number, filename, parameters)
+
+ def DeviceUnload (self, device_number):
+ return self.proxy.DeviceUnload('(i)', device_number)
+
+ def DeviceGetOption (self, device_number, option_name):
+ return self.proxy.DeviceGetOption('(is)', device_number, option_name)
+
+ def DeviceSetOption (self, device_number, option_name, option_value):
+ return self.proxy.DeviceSetOption('(isv)', device_number, option_name, option_value)
- # Check daemon interface version
- if interface_version[0] != supported_daemon_interface_version[0] or interface_version[1] < supported_daemon_interface_version[1]:
- raise CDEmuError(_("CDEmu daemon interface version %i.%i detected, but version %i.%i is required!") % (interface_version[0], interface_version[1], supported_daemon_interface_version[0], supported_daemon_interface_version[1]))
+ def AddDevice (self):
+ return self.proxy.AddDevice()
- return dbus_iface
+ def RemoveDevice (self):
+ return self.proxy.RemoveDevice()
########################################################################
@@ -1281,10 +1359,10 @@
bus_type = arguments.bus
# *** Connect to daemon ***
- dbus_iface = connect_to_daemon(bus_type)
+ proxy = CDEmuDaemonProxy(bus_type)
# *** Execute command ***
- arguments.command_function(dbus_iface, arguments)
+ arguments.command_function(proxy, arguments)
if __name__ == "__main__":
try: