[maemo-commits] [maemo-commits] r18589 - in projects/connectivity/maemo-bluez-compat/trunk: debian src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Wed Jun 3 17:04:19 EEST 2009
Author: jh
Date: 2009-06-03 17:04:15 +0300 (Wed, 03 Jun 2009)
New Revision: 18589

Added:
   projects/connectivity/maemo-bluez-compat/trunk/src/dbus-common.c
   projects/connectivity/maemo-bluez-compat/trunk/src/dbus-common.h
   projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-cud.c
   projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-cud.py
   projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-restore.c
   projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-restore.py
   projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-rfs.c
   projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-rfs.py
Removed:
   projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-cud
   projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-restore
   projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-rfs
Modified:
   projects/connectivity/maemo-bluez-compat/trunk/debian/control
   projects/connectivity/maemo-bluez-compat/trunk/src/Makefile.am
Log:
Add initial C-versions of the python scripts

Modified: projects/connectivity/maemo-bluez-compat/trunk/debian/control
===================================================================
--- projects/connectivity/maemo-bluez-compat/trunk/debian/control	2009-06-03 13:47:22 UTC (rev 18588)
+++ projects/connectivity/maemo-bluez-compat/trunk/debian/control	2009-06-03 14:04:15 UTC (rev 18589)
@@ -8,7 +8,7 @@
 Package: maemo-bluez-compat
 Section: net
 Architecture: any
-Depends: ${shlibs:Depends}, bluez (>= 4.22), python2.5, python2.5-dbus, sudo
+Depends: ${shlibs:Depends}, bluez (>= 4.22), sudo
 Description: Maemo compatibility tools for BlueZ
  This package contais a some programs and scripts which help
  integrate BlueZ to the Maemo environment.

Modified: projects/connectivity/maemo-bluez-compat/trunk/src/Makefile.am
===================================================================
--- projects/connectivity/maemo-bluez-compat/trunk/src/Makefile.am	2009-06-03 13:47:22 UTC (rev 18588)
+++ projects/connectivity/maemo-bluez-compat/trunk/src/Makefile.am	2009-06-03 14:04:15 UTC (rev 18589)
@@ -1,5 +1,15 @@
 MAINTAINERCLEANFILES = Makefile.in
 
-bin_SCRIPTS = maemo-bluez-cud maemo-bluez-restore maemo-bluez-rfs
+bin_PROGRAMS = maemo-bluez-rfs maemo-bluez-restore maemo-bluez-cud
 
-EXTRA_DIST = maemo-bluez-cud maemo-bluez-restore maemo-bluez-rfs
+maemo_bluez_rfs_SOURCES = dbus-common.h dbus-common.c maemo-bluez-rfs.c
+maemo_bluez_restore_SOURCES = dbus-common.h dbus-common.c maemo-bluez-restore.c
+maemo_bluez_cud_SOURCES = dbus-common.h dbus-common.c maemo-bluez-cud.c
+
+maemo_bluez_rfs_LDADD = @COMMON_LIBS@
+maemo_bluez_restore_LDADD = @COMMON_LIBS@
+maemo_bluez_cud_LDADD = @COMMON_LIBS@
+
+AM_CFLAGS = @COMMON_CFLAGS@
+
+EXTRA_DIST = maemo-bluez-cud.py maemo-bluez-restore.py maemo-bluez-rfs.py

Added: projects/connectivity/maemo-bluez-compat/trunk/src/dbus-common.c
===================================================================
--- projects/connectivity/maemo-bluez-compat/trunk/src/dbus-common.c	2009-06-03 13:47:22 UTC (rev 18588)
+++ projects/connectivity/maemo-bluez-compat/trunk/src/dbus-common.c	2009-06-03 14:04:15 UTC (rev 18589)
@@ -0,0 +1,171 @@
+#include <stdlib.h>
+
+#include "dbus-common.h"
+
+#define BLUEZ_SERVICE "org.bluez"
+
+#define BLUEZ_MANAGER_PATH "/"
+#define BLUEZ_MANAGER_INTERFACE "org.bluez.Manager"
+#define BLUEZ_ADAPTER_INTERFACE "org.bluez.Adapter"
+
+
+DBusGProxy* bluez_get_manager(DBusGConnection *connection)
+{
+	return dbus_g_proxy_new_for_name(connection, BLUEZ_SERVICE,
+					BLUEZ_MANAGER_PATH,
+					BLUEZ_MANAGER_INTERFACE);
+}
+
+
+DBusGProxy* manager_get_default_adapter(DBusGProxy *manager,
+					DBusGConnection *connection)
+{
+	GError *error = NULL;
+	const gchar* adapter_path;
+
+	if (!dbus_g_proxy_call(manager, "DefaultAdapter", &error, G_TYPE_INVALID,
+		DBUS_TYPE_G_OBJECT_PATH, &adapter_path, G_TYPE_INVALID)) {
+
+		g_debug("Couldn't get DefaultAdapter: %s", error->message);
+		g_error_free(error);
+		return NULL;
+	}
+
+	return dbus_g_proxy_new_for_name(connection, BLUEZ_SERVICE, adapter_path,
+						BLUEZ_ADAPTER_INTERFACE);
+}
+
+void adapter_set_property_string(DBusGProxy* adapter, const gchar* attribute,
+					const gchar* value)
+{
+	GError *error = NULL;
+	GValue g_value = {0};
+
+	g_value_init(&g_value, G_TYPE_STRING);
+	g_value_set_string(&g_value, value);
+
+	if (dbus_g_proxy_call(adapter, "SetProperty", &error,G_TYPE_STRING,
+				attribute, G_TYPE_VALUE, &g_value,
+				G_TYPE_INVALID, G_TYPE_INVALID ) != TRUE) {
+		g_debug("Couldn't set string Properties: %s", error->message);
+		g_error_free(error);
+	}
+	g_value_unset(&g_value);
+}
+
+const gchar* adapter_get_property_string(DBusGProxy* adapter,
+					const gchar* attribute)
+{
+	GHashTable *table;
+	GError *error = NULL;
+	GValue *value;
+	if (dbus_g_proxy_call(adapter, "GetProperties", &error, G_TYPE_INVALID,
+		dbus_g_type_get_map("GHashTable", G_TYPE_STRING, G_TYPE_VALUE),
+		&table, G_TYPE_INVALID) != FALSE) {
+		value = g_hash_table_lookup(table, attribute);
+		return g_value_get_string(value);
+	} else {
+		g_debug("Couldn't get string Properties: %s", error->message);
+		g_error_free(error);
+		return NULL;
+	}
+}
+
+void adapter_set_property_boolean(DBusGProxy* adapter, const gchar* attribute,
+					const gboolean value)
+{
+	GError *error = NULL;
+	GValue g_value = {0};
+
+	g_value_init(&g_value, G_TYPE_BOOLEAN);
+	g_value_set_boolean(&g_value, value);
+
+	if (dbus_g_proxy_call(adapter, "SetProperty", &error, G_TYPE_STRING,
+				attribute, G_TYPE_VALUE, &g_value,
+				G_TYPE_INVALID, G_TYPE_INVALID) != TRUE) {
+		g_debug("Couldn't set boolean Properties: %s", error->message);
+		g_error_free(error);
+	}
+	g_value_unset(&g_value);
+}
+
+gboolean adapter_get_property_boolean(DBusGProxy* adapter,
+					const gchar* attribute)
+{
+	GHashTable *table;
+	GError *error = NULL;
+	gboolean ret;
+	GValue *value;
+	if (dbus_g_proxy_call (adapter, "GetProperties", &error, G_TYPE_INVALID,
+			dbus_g_type_get_map ("GHashTable", G_TYPE_STRING,
+			G_TYPE_VALUE), &table, G_TYPE_INVALID) != FALSE) {
+		value = g_hash_table_lookup(table, attribute);
+		ret = g_value_get_boolean(value);
+		return ret;
+	} else {
+		g_debug("Couldn't get boolean Properties: %s", error->message);
+		g_error_free(error);
+		return FALSE;
+	}
+}
+
+void adapter_set_property_uint(DBusGProxy* adapter,const gchar* attribute,
+				guint value)
+{
+	GError *error = NULL;
+	GValue g_value = {0};
+
+	g_value_init(&g_value, G_TYPE_UINT);
+	g_value_set_uint(&g_value, value);
+
+	if (dbus_g_proxy_call(adapter, "SetProperty", &error, G_TYPE_STRING,
+				attribute, G_TYPE_VALUE, &g_value,
+				G_TYPE_INVALID, G_TYPE_INVALID) != TRUE) {
+		g_debug("Couldn't set int Properties: %s", error->message);
+		if (error != NULL)
+			g_error_free(error);
+	}
+	g_value_unset(&g_value);
+}
+
+guint adapter_get_property_uint(DBusGProxy* adapter, const gchar* attribute)
+{
+	GHashTable *table;
+	GError *error = NULL;
+	guint ret;
+	GValue *value;
+	if (dbus_g_proxy_call(adapter, "GetProperties", &error, G_TYPE_INVALID,
+			dbus_g_type_get_map("GHashTable", G_TYPE_STRING,
+			G_TYPE_VALUE), &table, G_TYPE_INVALID) != FALSE) {
+		value = g_hash_table_lookup(table, attribute);
+		ret = g_value_get_uint(value);
+		return ret;
+	} else {
+		g_debug("Couldn't get int Properties: %s", error->message);
+		if (error != NULL)
+			g_error_free(error);
+		return 0;
+	}
+}
+
+GPtrArray* adapter_get_property_objectpath_array(DBusGProxy* adapter,
+							const gchar* attribute)
+{
+	GHashTable *table;
+	GError *error = NULL;
+	GPtrArray *ret;
+	GValue *value;
+	if (dbus_g_proxy_call(adapter, "GetProperties", &error, G_TYPE_INVALID,
+			dbus_g_type_get_map("GHashTable", G_TYPE_STRING,
+			G_TYPE_VALUE), &table, G_TYPE_INVALID) != FALSE) {
+		value = g_hash_table_lookup(table, attribute);
+		ret = g_value_get_boxed(value);
+		return ret;
+	} else {
+		g_debug("Couldn't get object array Properties: %s",
+			error->message);
+		if (error != NULL)
+			g_error_free(error);
+		return NULL;
+	}
+}

Added: projects/connectivity/maemo-bluez-compat/trunk/src/dbus-common.h
===================================================================
--- projects/connectivity/maemo-bluez-compat/trunk/src/dbus-common.h	2009-06-03 13:47:22 UTC (rev 18588)
+++ projects/connectivity/maemo-bluez-compat/trunk/src/dbus-common.h	2009-06-03 14:04:15 UTC (rev 18589)
@@ -0,0 +1,23 @@
+
+#ifndef DBUS_COMMON_H
+#define DBUS_COMMON_H
+
+#include <dbus/dbus-glib.h>
+#include <glib.h>
+
+DBusGProxy* bluez_get_manager(DBusGConnection *connection);
+DBusGProxy* manager_get_default_adapter(DBusGProxy *manager,
+					DBusGConnection *connection);
+void adapter_set_property_string(DBusGProxy* adapter, const gchar* attribute,
+					const gchar* value);
+const gchar* adapter_get_property_string(DBusGProxy* adapter,
+					const gchar* attribute);
+gboolean adapter_get_property_boolean(DBusGProxy* adapter, const gchar* attribute);
+void adapter_set_property_boolean(DBusGProxy* adapter, const gchar* attribute,
+					const gboolean value);
+void adapter_set_property_uint(DBusGProxy* adapter, const gchar* attribute,
+					guint value);
+guint adapter_get_property_uint(DBusGProxy* adapter,const gchar* attribute);
+GPtrArray* adapter_get_property_objectpath_array(DBusGProxy* adapter,
+						const gchar* attribute);
+#endif

Deleted: projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-cud
===================================================================
--- projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-cud	2009-06-03 13:47:22 UTC (rev 18588)
+++ projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-cud	2009-06-03 14:04:15 UTC (rev 18589)
@@ -1,28 +0,0 @@
-#!/usr/bin/python2.5
-
-import dbus
-import sys
-
-if len(sys.argv) < 2:
-	print "Usage: %s <product name>" % sys.argv[0]
-	sys.exit(1)
-
-bus = dbus.SystemBus()
-
-manager = dbus.Interface(bus.get_object("org.bluez", "/"), "org.bluez.Manager")
-adapter = dbus.Interface(bus.get_object("org.bluez", manager.DefaultAdapter()),
-							"org.bluez.Adapter")
-
-properties = adapter.GetProperties()
-powered = properties["Powered"]
-
-if not powered:
-	adapter.SetProperty("Powered", True)
-
-for device in properties["Devices"]:
-	adapter.RemoveDevice(device)
-
-adapter.SetProperty("Name", sys.argv[1])
-adapter.SetProperty("Discoverable", False)
-adapter.SetProperty("DiscoverableTimeout", dbus.UInt32(0))
-adapter.SetProperty("Powered", False)

Added: projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-cud.c
===================================================================
--- projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-cud.c	2009-06-03 13:47:22 UTC (rev 18588)
+++ projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-cud.c	2009-06-03 14:04:15 UTC (rev 18589)
@@ -0,0 +1,70 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#include "dbus-common.h"
+
+int main(int argc, char* argv[])
+{
+	GError *error;
+	DBusGConnection *conn;
+	DBusGProxy *manager;
+	DBusGProxy *adapter;
+	GPtrArray *devices;
+	guint i;
+	gchar *product_name;
+	gboolean powered;
+
+	if (argc < 2) {
+		g_debug("Usage: %s <product name>", argv[0]);
+		exit(EXIT_FAILURE);
+	}
+
+	g_type_init();
+	error = NULL;
+	conn = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error);
+
+	if (error != NULL) {
+		g_debug("Couldn't connect to bus: %s", error->message);
+		g_error_free(error);
+		exit(EXIT_FAILURE);
+	}
+
+	manager = bluez_get_manager(conn);
+	adapter = manager_get_default_adapter(manager, conn);
+
+	if (manager != NULL)
+		g_object_unref(manager);
+
+	product_name = argv[1];
+	powered = adapter_get_property_boolean(adapter, "Powered");
+
+	if (!powered)
+		adapter_set_property_boolean(adapter, "Powered", TRUE);
+
+	devices = adapter_get_property_objectpath_array(adapter, "Devices");
+
+	for (i = 0; i < devices->len; ++i) {
+		dbus_g_proxy_call(adapter, "RemoveDevice", &error,
+					DBUS_TYPE_G_OBJECT_PATH,
+					g_ptr_array_index(devices, i),
+					G_TYPE_INVALID, G_TYPE_INVALID);
+
+		if (error != NULL) {
+			g_debug("error removing device: %s", error->message);
+			g_error_free(error);
+		}
+	}
+
+	adapter_set_property_string(adapter, "Name", product_name);
+	adapter_set_property_boolean(adapter, "Discoverable", FALSE);
+	adapter_set_property_uint(adapter, "DiscoverableTimeout", 0);
+	adapter_set_property_boolean(adapter, "Powered", FALSE);
+
+	if (adapter)
+		g_object_unref(adapter);
+
+	exit(EXIT_SUCCESS);
+}

Copied: projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-cud.py (from rev 18588, projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-cud)


Property changes on: projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-cud.py
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mergeinfo
   + 

Deleted: projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-restore
===================================================================
--- projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-restore	2009-06-03 13:47:22 UTC (rev 18588)
+++ projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-restore	2009-06-03 14:04:15 UTC (rev 18589)
@@ -1,27 +0,0 @@
-#!/usr/bin/python2.5
-
-import sys
-import dbus
-
-if len(sys.argv) < 3:
-	print "Usage %s <name> <mode>" % sys.argv[0]
-	sys.exit(1)
-
-bus = dbus.SystemBus()
-
-manager = dbus.Interface(bus.get_object("org.bluez", "/"), "org.bluez.Manager")
-adapter = dbus.Interface(bus.get_object("org.bluez", manager.DefaultAdapter()),
-							"org.bluez.Adapter")
-adapter.SetProperty("Name", sys.argv[1])
-
-if sys.argv[2] == "off":
-	adapter.SetProperty("Powered", False)
-	sys.exit(0)
-
-adapter.SetProperty("Powered", True)
-
-if sys.argv[2] == "discoverable":
-	adapter.SetProperty("Discoverable", True)
-elif sys.argv[2] == "connectable":
-	adapter.SetProperty("Discoverable", False)
-

Added: projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-restore.c
===================================================================
--- projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-restore.c	2009-06-03 13:47:22 UTC (rev 18588)
+++ projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-restore.c	2009-06-03 14:04:15 UTC (rev 18589)
@@ -0,0 +1,55 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "dbus-common.h"
+
+int main(int argc, char** argv)
+{
+	GError *error;
+	DBusGConnection *conn;
+	DBusGProxy *manager;
+	DBusGProxy *adapter;
+	const gchar *name;
+	const gchar *mode;
+
+	if (argc < 3) {
+		g_debug("Usage %s <name> <mode>", argv[0]);
+		exit(EXIT_FAILURE);
+	}
+
+	g_type_init();
+	error = NULL;
+	conn = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error);
+
+	if (error != NULL) {
+		g_debug("Couldn't connect to bus: %s", error->message);
+		g_error_free(error);
+		exit(EXIT_FAILURE);
+	}
+
+	name = argv[1];
+	mode = argv[2];
+	manager = bluez_get_manager(conn);
+	adapter = manager_get_default_adapter(manager, conn);
+
+	if (manager != NULL)
+		g_object_unref(manager);
+
+	adapter_set_property_string(adapter, "Name", name);
+
+	if (g_ascii_strncasecmp(mode, "off", sizeof(mode)) == 0) {
+		adapter_set_property_boolean(adapter, "Powered", FALSE);
+		exit(EXIT_SUCCESS);
+	}
+
+	adapter_set_property_boolean(adapter, "Powered", TRUE);
+
+	if (g_ascii_strncasecmp(mode, "discoverable", sizeof(mode)) == 0)
+		adapter_set_property_boolean(adapter, "Discoverable", TRUE);
+	else if (g_ascii_strncasecmp(mode, "connectable", sizeof(mode)) == 0)
+		adapter_set_property_boolean(adapter, "Discoverable", FALSE);
+
+	exit(EXIT_SUCCESS);
+}

Copied: projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-restore.py (from rev 18588, projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-restore)


Property changes on: projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-restore.py
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mergeinfo
   + 

Deleted: projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-rfs
===================================================================
--- projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-rfs	2009-06-03 13:47:22 UTC (rev 18588)
+++ projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-rfs	2009-06-03 14:04:15 UTC (rev 18589)
@@ -1,20 +0,0 @@
-#!/usr/bin/python2.5
-
-import dbus
-import sys
-
-if len(sys.argv) < 2:
-	print "Usage: %s <product name>" % sys.argv[0]
-	sys.exit(1)
-
-bus = dbus.SystemBus()
-
-manager = dbus.Interface(bus.get_object("org.bluez", "/"), "org.bluez.Manager")
-adapter = dbus.Interface(bus.get_object("org.bluez", manager.DefaultAdapter()),
-							"org.bluez.Adapter")
-adapter.SetProperty("Powered", True)
-adapter.SetProperty("Discoverable", False)
-adapter.SetProperty("DiscoverableTimeout", dbus.UInt32(0))
-adapter.SetProperty("Name", sys.argv[1])
-adapter.SetProperty("Powered", False)
-

Added: projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-rfs.c
===================================================================
--- projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-rfs.c	2009-06-03 13:47:22 UTC (rev 18588)
+++ projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-rfs.c	2009-06-03 14:04:15 UTC (rev 18589)
@@ -0,0 +1,51 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <glib.h>
+#include <dbus/dbus-glib.h>
+
+#include "dbus-common.h"
+
+int main(int argc, char* argv[])
+{
+	GError *error;
+	DBusGConnection *conn;
+	DBusGProxy *manager;
+	DBusGProxy *adapter;
+	gchar *product_name;
+
+	if (argc < 2 ) {
+		g_debug("Usage: %s <product name>", argv[0]);
+		exit(EXIT_FAILURE);
+	}
+
+	g_type_init();
+	error = NULL;
+	conn = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error);
+
+	if (error != NULL) {
+		g_debug("Couldn't connect to bus: %s", error->message);
+		g_error_free(error);
+		exit(EXIT_FAILURE);
+	}
+
+	manager = bluez_get_manager(conn);
+	adapter = manager_get_default_adapter(manager, conn);
+	if (manager != NULL)
+		g_object_unref(manager);
+
+	product_name = argv[1];
+
+	adapter_set_property_boolean(adapter, "Powered", TRUE);
+	adapter_set_property_string(adapter, "Name", product_name);
+	adapter_set_property_boolean(adapter, "Discoverable", FALSE);
+	adapter_set_property_uint(adapter, "DiscoverableTimeout", 0);
+	adapter_set_property_boolean(adapter, "Powered", FALSE);
+
+	if (adapter != NULL)
+		g_object_unref(adapter);
+
+	exit(EXIT_SUCCESS);
+}

Copied: projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-rfs.py (from rev 18588, projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-rfs)


Property changes on: projects/connectivity/maemo-bluez-compat/trunk/src/maemo-bluez-rfs.py
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mergeinfo
   + 


More information about the maemo-commits mailing list