# Updated but not checked in:
# (will commit)
#
# modified: configure.in
# new file: fdi/policy/10osvendor/10-bluetooth-switch.fdi
# modified: fdi/policy/10osvendor/Makefile.am
# modified: tools/.gitignore
# modified: tools/Makefile.am
# new file: tools/hal-system-bluetooth-get-power
# new file: tools/hal-system-bluetooth-set-power
# new file: tools/hal-system-sonypic.c
# modified: tools/linux/Makefile.am
# new file: tools/linux/hal-system-bluetooth-get-power-linux
# new file: tools/linux/hal-system-bluetooth-set-power-linux
# modified: tools/linux/hal-system-lcd-get-brightness-linux
# modified: tools/linux/hal-system-lcd-set-brightness-linux
#
diff --git a/configure.in b/configure.in
index 7b0eb23..6a04bd3 100644
--- a/configure.in
+++ b/configure.in
@@ -393,12 +393,19 @@ if test "x$enable_pmu" != "xno"; then
AC_DEFINE(HAVE_PMU, [], [Set if we have PMU support])
fi
AM_CONDITIONAL(HAVE_PMU, test x$msg_pmu = xyes, [Compiling PMU])
+AC_ARG_ENABLE(have_sonypic, [ --disable-sonypic Build without Sony PIC support])
+msg_sonypic=no
+if test "x$enable_sonypic" != "xno"; then
+ msg_sonypic=yes
+ AC_DEFINE(HAVE_SONYPIC, [], [Set if we have Sony PIC support])
+fi
+AM_CONDITIONAL(HAVE_SONYPIC, test x$msg_sonypic = xyes, [Compiling Sony PIC])
AC_ARG_ENABLE(have_pci, [ --disable-pci Build without PCI support])
msg_pci=no
if test "x$enable_pci" != "xno"; then
msg_pci=yes
- AC_DEFINE(HAVE_PCI, [], [Set if we have ACPI support])
+ AC_DEFINE(HAVE_PCI, [], [Set if we have PCI support])
fi
# D-Bus libs
@@ -765,6 +772,7 @@ echo "
use ACPI: ${msg_acpi}
use PMU: ${msg_pmu}
use APM: ${msg_apm}
+ use Sony PIC: ${msg_sonypic}
Macbook Pro utils: ${BUILD_MACBOOKPRO} (Linux only, x86 only, requires libpci)
CPU frequency scaling: ${BUILD_CPUFREQ} (Linux only)
diff --git a/fdi/policy/10osvendor/10-bluetooth-switch.fdi b/fdi/policy/10osvendor/10-bluetooth-switch.fdi
new file mode 100644
index 0000000..b4da195
--- /dev/null
+++ b/fdi/policy/10osvendor/10-bluetooth-switch.fdi
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+ org.freedesktop.Hal.Device.BluetoothKillSwitch
+
+ SetPower
+ b
+ power
+ hal-system-bluetooth-set-power
+
+ GetPower
+
+
+ hal-system-bluetooth-get-power
+
+
+
+
diff --git a/fdi/policy/10osvendor/Makefile.am b/fdi/policy/10osvendor/Makefile.am
index 734eead..468cb1a 100644
--- a/fdi/policy/10osvendor/Makefile.am
+++ b/fdi/policy/10osvendor/Makefile.am
@@ -5,6 +5,7 @@ dist_fdi_DATA = \
10-keyboard-policy.fdi \
10-power-mgmt-policy.fdi \
10-toshiba-buttons.fdi \
+ 10-bluetooth-switch.fdi \
10-laptop-panel-mgmt-policy.fdi \
15-storage-luks.fdi \
20-storage-methods.fdi
diff --git a/tools/.gitignore b/tools/.gitignore
index 94316c8..664b6f3 100644
--- a/tools/.gitignore
+++ b/tools/.gitignore
@@ -13,6 +13,7 @@ hal-device
hal-luks-remove
hal-luks-setup
hal-system-power-pmu
+hal-system-sonypic
hal-policy-is-privileged
hal-storage-mount
hal-storage-cleanup-all-mountpoints
diff --git a/tools/Makefile.am b/tools/Makefile.am
index d820cc8..d4b16ae 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -56,7 +56,8 @@ libexec_PROGRAMS = \
hal-storage-closetray \
hal-storage-cleanup-mountpoint \
hal-storage-cleanup-all-mountpoints \
- hal-system-power-pmu
+ hal-system-power-pmu \
+ hal-system-sonypic
hal_storage_mount_SOURCES = hal-storage-mount.c hal-storage-shared.c hal-storage-shared.h
hal_storage_mount_LDADD = @GLIB_LIBS@ @POLKIT_LIBS@ @DBUS_LIBS@ $(top_builddir)/libhal/libhal.la $(top_builddir)/libhal-storage/libhal-storage.la
@@ -79,6 +80,9 @@ hal_storage_cleanup_all_mountpoints_LDADD = @GLIB_LIBS@ @POLKIT_LIBS@ @DBUS_LIBS
hal_system_power_pmu_SOURCES = hal-system-power-pmu.c
hal_system_power_pmu_LDADD = @DBUS_LIBS@ $(top_builddir)/libhal/libhal.la
+hal_system_sonypic_SOURCES = hal-system-sonypic.c
+hal_system_sonypic_LDADD = @GLIB_LIBS@ @DBUS_LIBS@ $(top_builddir)/libhal/libhal.la
+
scriptdir = $(libdir)/hal/scripts
script_SCRIPTS = \
@@ -91,7 +95,9 @@ script_SCRIPTS = \
hal-system-power-reboot \
hal-system-lcd-get-brightness \
hal-system-lcd-set-brightness \
- hal-system-power-set-power-save
+ hal-system-power-set-power-save \
+ hal-system-bluetooth-get-power \
+ hal-system-bluetooth-set-power
EXTRA_DIST=$(man_MANS) $(MAN_IN_FILES) gen-libgphoto-hal-fdi $(script_SCRIPTS)
diff --git a/tools/hal-system-bluetooth-get-power b/tools/hal-system-bluetooth-get-power
new file mode 100755
index 0000000..4de48bd
--- /dev/null
+++ b/tools/hal-system-bluetooth-get-power
@@ -0,0 +1,26 @@
+#!/bin/sh
+#
+# Copyright (C) 2007 Bastien Nocera
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# Check for environment variables
+if [ -z "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" ]; then
+ echo "org.freedesktop.Hal.Device.UnknownError" >&2
+ echo "Missing or empty environment variable(s)." >&2
+ echo "This script should be started by hald." >&2
+ exit 1
+fi
+
+# TODO: check privilege
+
+if [ -n "$HALD_UNAME_S" -a -x ./$HALD_UNAME_S/hal-system-bluetooth-get-power-$HALD_UNAME_S ]; then
+ exec ./$HALD_UNAME_S/hal-system-bluetooth-get-power-$HALD_UNAME_S $@
+else
+ echo "org.freedesktop.Hal.Device.UnknownError" >&2
+ echo "No back-end for your operating system" >&2
+ exit 1
+fi
diff --git a/tools/hal-system-bluetooth-set-power b/tools/hal-system-bluetooth-set-power
new file mode 100755
index 0000000..7c80a26
--- /dev/null
+++ b/tools/hal-system-bluetooth-set-power
@@ -0,0 +1,30 @@
+#!/bin/sh
+#
+# Copyright (C) 2007 Bastien Nocera
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# Check for environment variables
+if [ -z "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" ] ; then
+ echo "org.freedesktop.Hal.Device.UnknownError" >&2
+ echo "Missing or empty environment variable(s)." >&2
+ echo "This script should be started by hald." >&2
+ exit 1
+fi
+
+# TODO: check privilege
+
+# read value for set bluetooth power
+read value
+export value
+
+if [ -n "$HALD_UNAME_S" -a -x ./$HALD_UNAME_S/hal-system-bluetooth-set-power-$HALD_UNAME_S ]; then
+ exec ./$HALD_UNAME_S/hal-system-bluetooth-set-power-$HALD_UNAME_S $@
+else
+ echo "org.freedesktop.Hal.Device.UnknownError" >&2
+ echo "No back-end for your operating system" >&2
+ exit 1
+fi
diff --git a/tools/hal-system-sonypic.c b/tools/hal-system-sonypic.c
new file mode 100644
index 0000000..9344c2b
--- /dev/null
+++ b/tools/hal-system-sonypic.c
@@ -0,0 +1,308 @@
+/*! @file hal-system-sonypic.c
+ * @brief Issue ioctl's from methods invoked by HAL.
+ * @author Bastien Nocera
+ * @author Richard Hughes
+ * @date Thursday 08 February 2007
+ */
+/*
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include
+#endif
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+
+#ifdef __linux__
+#include
+#define SONYPI_DEV "/dev/sonypi"
+#define __u8 u_int8_t
+#endif /* __linux__ */
+
+#include
+
+/**
+ * @defgroup HalSystemSonypi Use sonypi specific ioctls
+ * @ingroup HalMisc
+ *
+ * @brief A commandline tool for running sonypi specific ioctl's. Uses libhal
+ *
+ * @{
+ */
+
+/** Gets the LCD brightness
+ *
+ * @param val The returned brightness value, 0..255
+ * @return Success, TRUE or FALSE
+ */
+static int
+sonypi_get_lcd_brightness (__u8 *val)
+{
+#ifdef __FreeBSD__
+ return FALSE; /* FIXME implement */
+#elif sun
+ return FALSE; /* FIXME implement */
+#else
+ int fd;
+ int ret;
+
+ fd = open (SONYPI_DEV, O_RDONLY);
+ if (fd < 0) {
+ fprintf (stderr, "sonyi : Failed to open " SONYPI_DEV "\n");
+ return FALSE;
+ }
+ ret = ioctl (fd, SONYPI_IOCGBRT, val);
+ close (fd);
+
+ if (ret < 0) {
+ fprintf (stderr, "sonypi : SONYPI_IOCGBRT failed\n");
+ return FALSE;
+ }
+ return TRUE;
+#endif /* ! __FreeBSD__ */
+}
+
+/** Gets whether the builtin Bluetooth adapter is turned on
+ *
+ * @param val The returned power status
+ * @return Success, TRUE or FALSE
+ */
+static int
+sonypi_get_bluetooth_power (int *found, int usb_vendor_id, int usb_product_id)
+{
+ LibHalContext *ctx;
+ DBusError err;
+ char **devices;
+ int num_devices, i;
+
+ *found = FALSE;
+
+ dbus_error_init (&err);
+ ctx = libhal_ctx_init_direct (&err);
+ if (ctx == NULL) {
+ fprintf (stderr, "Cannot contact HAL: %s\n", dbus_error_is_set (&err) ?
+ err.message : "No reason");
+ if (dbus_error_is_set (&err))
+ LIBHAL_FREE_DBUS_ERROR (&err);
+ return FALSE;
+ }
+ devices = libhal_get_all_devices (ctx, &num_devices, &err);
+ if (dbus_error_is_set (&err))
+ goto error_set;
+
+ for(i = 0; i < num_devices; i++) {
+ int device_vid, device_pid;
+ if (libhal_device_property_exists (ctx, devices[i], "usb.vendor_id", &err) == FALSE) {
+ if (dbus_error_is_set (&err))
+ goto error_set;
+ continue;
+ }
+ device_vid = libhal_device_get_property_int (ctx, devices[i], "usb.vendor_id", &err);
+ if (dbus_error_is_set (&err))
+ goto error_set;
+ if (device_vid != usb_vendor_id)
+ continue;
+
+ if (libhal_device_property_exists (ctx, devices[i], "usb.product_id", &err) == FALSE) {
+ if (dbus_error_is_set (&err))
+ goto error_set;
+ continue;
+ }
+ device_pid = libhal_device_get_property_int (ctx, devices[i], "usb.product_id", &err);
+ if (dbus_error_is_set (&err))
+ goto error_set;
+ if (device_pid != usb_product_id)
+ continue;
+
+ /* Yay! Found the device */
+ *found = TRUE;
+ break;
+ }
+
+ libhal_ctx_shutdown (ctx, NULL);
+ return TRUE;
+
+error_set:
+ fprintf (stderr, "Error looking for the Bluetooth device: %s\n", err.message);
+ LIBHAL_FREE_DBUS_ERROR (&err);
+ libhal_ctx_shutdown (ctx, &err);
+
+ return FALSE;
+}
+
+/** Sets the LCD brightness
+ *
+ * @param val The brightness value we want to set, 0..255
+ * @return Success, TRUE or FALSE
+ */
+static int
+sonypi_set_lcd_brightness (__u8 val)
+{
+#ifdef __FreeBSD__
+ return FALSE; /* FIXME implement */
+#elif sun
+ return FALSE; /* FIXME implement */
+#else
+ int ret;
+ int fd;
+
+ fd = open (SONYPI_DEV, O_RDWR);
+ if (fd < 0) {
+ fprintf (stderr, "sonypi : Failed to open " SONYPI_DEV "\n");
+ return FALSE;
+ }
+ ret = ioctl (fd, SONYPI_IOCSBRT, &val);
+ close (fd);
+
+ if (ret < 0) {
+ fprintf (stderr, "sonypi : SONYPI_IOCSBRT failed\n");
+ return FALSE;
+ }
+ return TRUE;
+#endif /* ! __FreeBSD__ */
+}
+
+/** Sets the builtin Bluetooth adapter's power
+ *
+ * @param val The power value we want to set
+ * @return Success, TRUE or FALSE
+ */
+static int
+sonypi_set_bluetooth_power (int val)
+{
+#ifdef __FreeBSD__
+ return FALSE; /* FIXME implement */
+#elif sun
+ return FALSE; /* FIXME implement */
+#else
+ int ret;
+ int fd;
+
+ fd = open (SONYPI_DEV, O_RDWR);
+ if (fd < 0) {
+ fprintf (stderr, "sonypi : Failed to open " SONYPI_DEV "\n");
+ return FALSE;
+ }
+ ret = ioctl (fd, SONYPI_IOCSBLUE, &val);
+ close (fd);
+
+ if (ret < 0) {
+ fprintf (stderr, "sonypi : SONYPI_IOCSBLUE failed\n");
+ return FALSE;
+ }
+ return TRUE;
+#endif /* ! __FreeBSD__ */
+}
+
+/** Print out program usage.
+ *
+ * @param argc Number of arguments given to program
+ * @param argv Arguments given to program
+ */
+static void
+usage (int argc, char *argv[])
+{
+ fprintf (stderr, "\nusage : hal-system-sonypi "
+ "[setlcd x] [getlcd] [setbluetooth x] [getbluetooth]\n");
+ fprintf (stderr,
+ "\n"
+ " setlcd x Sets the LCD to a range 0..14 (0 is off)\n"
+ " getlcd Gets the current LCD brightness value\n"
+ " setbluetooth x Sets the Bluetooth power\n"
+ " getbluetooth Gets the Bluetooth power\n"
+ " help Show this information and exit\n"
+ "\n"
+ "This program calls sonypi specific ioctls from within scripts run by HAL.\n");
+}
+
+/** Entry point
+ *
+ * @param argc Number of arguments given to program
+ * @param argv Arguments given to program
+ * @return Return code
+ */
+int
+main (int argc, char *argv[])
+{
+ __u8 brightness;
+ int power;
+ int ret;
+
+ if (argc == 2) {
+ if (strcmp (argv[1], "getlcd") == 0) {
+ ret = sonypi_get_lcd_brightness (&brightness);
+ if (ret == FALSE)
+ return EXIT_FAILURE;
+ printf ("%i", brightness);
+ return EXIT_SUCCESS;
+ }
+ if (strcmp (argv[1], "getbluetooth") == 0) {
+ const char *usb_vendor_id, *usb_product_id;
+ int vid, pid;
+
+ power = 0;
+ if ((usb_vendor_id = g_getenv ("HAL_PROP_INFO_EXPECTED_USB_VENDOR_ID")) == NULL
+ || (usb_product_id = g_getenv ("HAL_PROP_INFO_EXPECTED_USB_PRODUCT_ID")) == NULL) {
+ fprintf (stderr, "sonypi : no expected USB IDs supplied\n");
+ return EXIT_FAILURE;
+ }
+
+ vid = (int) g_ascii_strtoll (usb_vendor_id, NULL, 0);
+ pid = (int) g_ascii_strtoll (usb_product_id, NULL, 0);
+ ret = sonypi_get_bluetooth_power (&power, vid, pid);
+
+ if (ret == FALSE)
+ return EXIT_FAILURE;
+ printf ("%i", power);
+ return EXIT_SUCCESS;
+ }
+ } else if (argc == 3) {
+ if (strcmp (argv[1], "setlcd") == 0) {
+ /* This will clip the brightness to a number
+ * between 0 and 255 */
+ brightness = atoi (argv[2]);
+ ret = sonypi_set_lcd_brightness (brightness);
+ if (ret == FALSE)
+ return EXIT_FAILURE;
+ return EXIT_SUCCESS;
+ }
+ if (strcmp (argv[1], "setbluetooth") == 0) {
+ power = atoi (argv[2]);
+ ret = sonypi_set_bluetooth_power (power);
+ if (ret == FALSE)
+ return EXIT_FAILURE;
+ return EXIT_SUCCESS;
+ }
+ }
+ usage (argc, argv);
+ return EXIT_SUCCESS;
+}
+
+/**
+ * @}
+ */
diff --git a/tools/linux/Makefile.am b/tools/linux/Makefile.am
index 2e8b4cb..d3bd975 100644
--- a/tools/linux/Makefile.am
+++ b/tools/linux/Makefile.am
@@ -15,7 +15,9 @@ script_SCRIPTS = \
hal-system-power-reboot-linux \
hal-system-lcd-get-brightness-linux \
hal-system-lcd-set-brightness-linux \
- hal-system-power-set-power-save-linux
+ hal-system-power-set-power-save-linux \
+ hal-system-bluetooth-get-power-linux \
+ hal-system-bluetooth-set-power-linux
EXTRA_DIST = 90-hal.rules $(script_SCRIPTS)
diff --git a/tools/linux/hal-system-bluetooth-get-power-linux b/tools/linux/hal-system-bluetooth-get-power-linux
new file mode 100755
index 0000000..6dd8c77
--- /dev/null
+++ b/tools/linux/hal-system-bluetooth-get-power-linux
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# Copyright (C) 2007 Bastien Nocera
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "sonypic" ]; then
+ value="`hal-system-sonypic getbluetooth`"
+ if [ $? -ne 0 ]; then
+ echo "org.freedesktop.Hal.Device.BluetoothButton.NotSupported" >&2
+ exit 1
+ fi
+ exit ${value}
+else
+ echo "org.freedesktop.Hal.Device.BluetoothButton.NotSupported" >&2
+ echo "Access type not supported" >&2
+ exit 1
+fi
+
diff --git a/tools/linux/hal-system-bluetooth-set-power-linux b/tools/linux/hal-system-bluetooth-set-power-linux
new file mode 100755
index 0000000..f3c80ad
--- /dev/null
+++ b/tools/linux/hal-system-bluetooth-set-power-linux
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# Copyright (C) 2007 Bastien Nocera
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "sonypic" ]; then
+ hal-system-sonypic setbluetooth $value
+ if [ $? -ne 0 ]; then
+ echo "org.freedesktop.Hal.Device.BluetoothButton.NotSupported" >&2
+ exit 1
+ fi
+ exit 0
+else
+ echo "org.freedesktop.Hal.Device.BluetoothButton.NotSupported" >&2
+ echo "Access type not supported" >&2
+ exit 1
+fi
+
diff --git a/tools/linux/hal-system-lcd-get-brightness-linux b/tools/linux/hal-system-lcd-get-brightness-linux
index 673a41e..5128c4b 100755
--- a/tools/linux/hal-system-lcd-get-brightness-linux
+++ b/tools/linux/hal-system-lcd-get-brightness-linux
@@ -20,6 +20,13 @@ if [ "$HAL_PROP_LAPTOP_PANEL_ACCESS_METHOD" = "pmu" ]; then
exit 1
fi
exit ${value}
+elif [ "$HAL_PROP_LAPTOP_PANEL_ACCESS_METHOD" = "sonypi" ]; then
+ value="`hal-system-sonypic getlcd`"
+ if [ $? -ne 0 ]; then
+ echo "org.freedesktop.Hal.Device.LaptopPanel.NotSupported" >&2
+ exit 1
+ fi
+ exit ${value}
fi
# Check for file existance and that it's readable
@@ -57,17 +64,6 @@ elif [ "$HAL_PROP_LAPTOP_PANEL_ACCESS_METHOD" = "omnibook" ]; then
# cat /proc/omnibook/lcd
# LCD brightness: 7
value="`cat $HAL_PROP_LINUX_ACPI_PATH | awk '{print $3;}'`"
-elif [ "$HAL_PROP_LAPTOP_PANEL_ACCESS_METHOD" = "sonypi" ]; then
- # spicctrl -B
- # 70
- # 0..255
- value="`/usr/sbin/spicctrl -B`"
- RETVAL=$?
- if [ $RETVAL != 0 ]; then
- echo "org.freedesktop.Hal.Device.LaptopPanel.NotSupported" >&2
- exit 1;
- fi
- exit ${value}
else
echo "org.freedesktop.Hal.Device.LaptopPanel.NotSupported" >&2
echo "No ACPI method found" >&2
diff --git a/tools/linux/hal-system-lcd-set-brightness-linux b/tools/linux/hal-system-lcd-set-brightness-linux
index 38e5730..a00eb01 100755
--- a/tools/linux/hal-system-lcd-set-brightness-linux
+++ b/tools/linux/hal-system-lcd-set-brightness-linux
@@ -20,6 +20,13 @@ if [ "$HAL_PROP_LAPTOP_PANEL_ACCESS_METHOD" = "pmu" ]; then
exit 1
fi
exit 0
+elif [ "$HAL_PROP_LAPTOP_PANEL_ACCESS_METHOD" = "sonypi" ]; then
+ hal-system-sonypic setlcd $value
+ if [ $? -ne 0 ]; then
+ echo "org.freedesktop.Hal.Device.LaptopPanel.NotSupported" >&2
+ exit 1
+ fi
+ exit 0
fi
# Check for file existance and that it's writable
@@ -52,17 +59,6 @@ elif [ "$HAL_PROP_LAPTOP_PANEL_ACCESS_METHOD" = "omnibook" ]; then
# echo "{0..7}" > /proc/omnibook/lcd
# http://bugzilla.gnome.org/show_bug.cgi?id=331458
echo "$value" > $HAL_PROP_LINUX_ACPI_PATH
-elif [ "$HAL_PROP_LAPTOP_PANEL_ACCESS_METHOD" = "sonypi" ]; then
- # spicctrl -B
- # 70
- # 0..255
- value="`/usr/sbin/spicctrl -B`"
- RETVAL=$?
- if [ $RETVAL != 0 ]; then
- echo "org.freedesktop.Hal.Device.LaptopPanel.NotSupported" >&2
- exit 1;
- fi
- exit ${value}
else
echo "org.freedesktop.Hal.Device.LaptopPanel.NotSupported" >&2
echo "No ACPI method found" >&2