hal/doc/spec hal-spec.html,1.85,1.86

David Zeuthen david at kemper.freedesktop.org
Fri May 12 08:17:07 PDT 2006


Update of /cvs/hal/hal/doc/spec
In directory kemper:/tmp/cvs-serv16407/doc/spec

Modified Files:
	hal-spec.html 
Log Message:
2006-05-12  David Zeuthen  <davidz at redhat.com>

        * hald/linux2/probing/probe-volume.c (strdup_valid_utf8): In
        Ubuntu we got several bug reports about device label gibberish,
        for example: https://launchpad.net/bugs/27897. This happens if the
        label is either truly bogus, or in a non-UTF-8 compatible
        encoding. The blunt solution would be to just ignore any non-UTF-8
        labels, but since it might be preferable to retain labels which
        are only 'lightly' damaged (maybe one Umlaut in an otherwise valid
        string), I wrote a small patch to ignore invalid labels if they
        contain more than 20% illegal characters. Patch from Martin Pitt
        <martin at piware.de>.



Index: hal-spec.html
===================================================================
RCS file: /cvs/hal/hal/doc/spec/hal-spec.html,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -d -r1.85 -r1.86
--- hal-spec.html	9 May 2006 16:36:45 -0000	1.85
+++ hal-spec.html	12 May 2006 15:17:05 -0000	1.86
@@ -1,6 +1,6 @@
 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>HAL 0.5.8 Specification</title><meta name="generator" content="DocBook XSL Stylesheets V1.69.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="index"></a>HAL 0.5.8 Specification</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">David</span> <span class="surname">Zeuthen</span></h3><div class="affiliation"><div class="address"><p><br>
             <code class="email">&lt;<a href="mailto:david at fubar.dk">david at fubar.dk</a>&gt;</code><br>
-          </p></div></div></div></div></div><div><p class="releaseinfo">Version 0.5.8</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#introduction">1. Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a href="#id2647603">About</a></span></dt><dt><span class="sect1"><a href="#id2609505">Acknowledgements</a></span></dt><dt><span class="sect1"><a href="#ov_halarch">Architecture of HAL</a></span></dt><dt><span class="sect1"><a href="#ov_hal_linux26">HAL on Linux 2.6</a></span></dt><dt><span class="sect1"><a href="#id2663999">Device Objects</a></span></dt><dt><span class="sect1"><a href="#device-capabilities">Device Capabilities</a></span></dt><dt><span class="sect1"><a href="#using-devices">Using devices</a></span></dt></dl></dd><dt><span class="chapter"><a href="#device-properties">2. Device Properties</a></span></dt><dd><dl><dt><span class="sect1"><a href="#properties-metadata">Metadata Properties</a></span></dt><dd><dl><dt><span class="sect2"><a href="#device-properties-info">
+          </p></div></div></div></div></div><div><p class="releaseinfo">Version 0.5.8</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#introduction">1. Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a href="#id2984472">About</a></span></dt><dt><span class="sect1"><a href="#id2928887">Acknowledgements</a></span></dt><dt><span class="sect1"><a href="#ov_halarch">Architecture of HAL</a></span></dt><dt><span class="sect1"><a href="#ov_hal_linux26">HAL on Linux 2.6</a></span></dt><dt><span class="sect1"><a href="#id3000866">Device Objects</a></span></dt><dt><span class="sect1"><a href="#device-capabilities">Device Capabilities</a></span></dt><dt><span class="sect1"><a href="#using-devices">Using devices</a></span></dt></dl></dd><dt><span class="chapter"><a href="#device-properties">2. Device Properties</a></span></dt><dd><dl><dt><span class="sect1"><a href="#properties-metadata">Metadata Properties</a></span></dt><dd><dl><dt><span class="sect2"><a href="#device-properties-info">
         <code class="literal">info</code> namespace
       </a></span></dt><dt><span class="sect2"><a href="#device-properties-linux">
         <code class="literal">linux</code> namespace
@@ -94,7 +94,7 @@
         <code class="literal">storage.policy</code> namespace
       </a></span></dt><dt><span class="sect2"><a href="#device-properties-volume-policy">
         <code class="literal">volume.policy</code> namespace
-      </a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#spec-device-info">3. Device Information Files</a></span></dt><dd><dl><dt><span class="sect1"><a href="#fdi-facts">Facts about devices</a></span></dt><dd><dl><dt><span class="sect2"><a href="#fdi-example-mp3player">Example: MP3 player</a></span></dt><dt><span class="sect2"><a href="#fdi-example-camera">Example: Digital Still Camera</a></span></dt><dt><span class="sect2"><a href="#fdi-example-6in1">Example: Card Reader</a></span></dt></dl></dd><dt><span class="sect1"><a href="#fdi-policy">Policy settings for devices</a></span></dt><dd><dl><dt><span class="sect2"><a href="#fdi-example-mountsetting">Storage Devices</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#examples">4. Examples and other stuff</a></span></dt><dd><dl><dt><span class="sect1"><a href="#callouts">Callouts</a></span></dt><dt><span class="sect1"><a href="#dbus-api">D-BUS Network API</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2654640">Interface org.freedesktop.Hal.Manager</a></span></dt><dt><span class="sect2"><a href="#id2656650">Interface org.freedesktop.Hal.Device</a></span></dt></dl></dd><dt><span class="sect1"><a href="#enforcing-policy">Enforcing Policy</a></span></dt><dd><dl><dt><span class="sect2"><a href="#enforcing-stor-vol">Storage Devices</a></span></dt></dl></dd></dl></dd></dl></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="introduction"></a>Chapter 1. Introduction</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#id2647603">About</a></span></dt><dt><span class="sect1"><a href="#id2609505">Acknowledgements</a></span></dt><dt><span class="sect1"><a href="#ov_halarch">Architecture of HAL</a></span></dt><dt><span class="sect1"><a href="#ov_hal_linux26">HAL on Linux 2.6</a></span></dt><dt><span class="sect1"><a href="#id2663999">Device Objects</a></span></dt><dt><span class="sect1"><a href="#device-capabilities">Device Capabilities</a></span></dt><dt><span class="sect1"><a href="#using-devices">Using devices</a></span></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2647603"></a>About</h2></div></div></div><p>
+      </a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#spec-device-info">3. Device Information Files</a></span></dt><dd><dl><dt><span class="sect1"><a href="#fdi-facts">Facts about devices</a></span></dt><dd><dl><dt><span class="sect2"><a href="#fdi-example-mp3player">Example: MP3 player</a></span></dt><dt><span class="sect2"><a href="#fdi-example-camera">Example: Digital Still Camera</a></span></dt><dt><span class="sect2"><a href="#fdi-example-6in1">Example: Card Reader</a></span></dt></dl></dd><dt><span class="sect1"><a href="#fdi-policy">Policy settings for devices</a></span></dt><dd><dl><dt><span class="sect2"><a href="#fdi-example-mountsetting">Storage Devices</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#examples">4. Examples and other stuff</a></span></dt><dd><dl><dt><span class="sect1"><a href="#callouts">Callouts</a></span></dt><dt><span class="sect1"><a href="#dbus-api">D-BUS Network API</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2972210">Interface org.freedesktop.Hal.Manager</a></span></dt><dt><span class="sect2"><a href="#id3013628">Interface org.freedesktop.Hal.Device</a></span></dt></dl></dd><dt><span class="sect1"><a href="#enforcing-policy">Enforcing Policy</a></span></dt><dd><dl><dt><span class="sect2"><a href="#enforcing-stor-vol">Storage Devices</a></span></dt></dl></dd></dl></dd></dl></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="introduction"></a>Chapter 1. Introduction</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#id2984472">About</a></span></dt><dt><span class="sect1"><a href="#id2928887">Acknowledgements</a></span></dt><dt><span class="sect1"><a href="#ov_halarch">Architecture of HAL</a></span></dt><dt><span class="sect1"><a href="#ov_hal_linux26">HAL on Linux 2.6</a></span></dt><dt><span class="sect1"><a href="#id3000866">Device Objects</a></span></dt><dt><span class="sect1"><a href="#device-capabilities">Device Capabilities</a></span></dt><dt><span class="sect1"><a href="#using-devices">Using devices</a></span></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2984472"></a>About</h2></div></div></div><p>
       This document concerns the specification of HAL which is a
       piece of software that provides a view of the various hardware
       attached to a system. In addition to this, HAL keeps detailed
@@ -130,7 +130,7 @@
       which, given sufficient infrastructure, allows it to be
       implemented on many UNIX-like systems. The major focus,
       initially, is systems running the Linux 2.6 series kernels.
-    </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2609505"></a>Acknowledgements</h2></div></div></div><p>
+    </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2928887"></a>Acknowledgements</h2></div></div></div><p>
       Havoc Pennington's article
       <a href="http://www.ometer.com/hardware.html" target="_top">''Making Hardware Just Work''
       </a>
@@ -247,7 +247,7 @@
             See <a href="#enforcing-policy" title="Enforcing Policy">the section called &#8220;Enforcing Policy&#8221;</a>
             for more details.
           </p></li></ul></div><p>
-    </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2663999"></a>Device Objects</h2></div></div></div><p>
+    </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3000866"></a>Device Objects</h2></div></div></div><p>
       It is important to precisely define the term HAL device
       object. It's actually a bit blurry to define in general, it
       includes what most UNIX-like systems consider first class
@@ -1486,6 +1486,8 @@
               </td><td> </td><td>Yes</td><td>TRUE when the optical drive can write to DVD+R discs</td></tr><tr><td>
                 <code class="literal">storage.cdrom.dvdplusrw</code> (bool)
               </td><td> </td><td>Yes</td><td>TRUE when the optical drive can blank and write to DVD+RW discs</td></tr><tr><td>
+                <code class="literal">storage.cdrom.dvdplusrwdl</code> (bool)
+              </td><td> </td><td>Yes</td><td>TRUE when the optical drive can blank and write to DVD+RW Dual-Layer discs</td></tr><tr><td>
                 <code class="literal">storage.cdrom.dvdplusrdl</code> (bool)
               </td><td> </td><td>Yes</td><td>TRUE when the optical drive can write to DVD+R Dual-Layer discs</td></tr><tr><td>
                 <code class="literal">storage.cdrom.bd</code> (bool)
@@ -1770,7 +1772,7 @@
               </td><td> </td><td>Yes</td><td>
                 Device number assigned by OSS/ALSA for a current card.
               </td></tr><tr><td>
-                <code class="literal">alsa.device_file</code> (string)
+                <code class="literal">oss.device_file</code> (string)
               </td><td> </td><td>Yes</td><td>
                 The device node to access the OSS device.
               </td></tr><tr><td>
@@ -1853,6 +1855,29 @@
                 <code class="literal">laptop_panel.access_method</code> (string)
               </td><td> </td><td>Yes</td><td>
                 The access method to use in scripts, e.g. pmu, toshiba, ibm, sony.
+              </td></tr></tbody></table></div><p>
+        The following methods exist on the interface
+        <code class="literal">org.freedesktop.Hal.Device.LaptopPanel</code>.
+      </p><div class="informaltable"><table border="1"><colgroup><col><col></colgroup><thead><tr><th>Method (parameter types)</th><th>Parameters</th><th>Mandatory</th><th>Description</th></tr></thead><tbody><tr><td>
+                <code class="literal">SetBrightness</code> (integer)
+              </td><td>
+                The hardware brightness state, which should be between 0 and 
+                <code class="literal">laptop_panel.num_levels</code> - 1.
+              </td><td>No</td><td>
+                This method adjusts the brightness on an laptop screen.
+                The values are returned as hardware values rather than
+                percentages as we cannot easily to floating point rounding in
+                shell code and therefore use the raw values to prevent integer
+                rounding errors.
+              </td></tr><tr><td>
+                integer <code class="literal">GetBrightness</code> (void)
+              </td><td>
+                Returns the hardware brightness state, which should be
+                between 0 and <code class="literal">laptop_panel.num_levels</code> - 1.
+              </td><td>No</td><td>
+                This method gets the hardware brightness of the laptop screen,
+                which we may need to do fairly regually on hardware that
+                changes the values in hardware without a software event.
               </td></tr></tbody></table></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="device-properties-ac_adaptor"></a>
         <code class="literal">ac_adaptor</code> namespace
       </h3></div></div></div><p>
@@ -2604,7 +2629,7 @@
          for details.
       </p><pre class="programlisting">
         <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" href="../conf/storage-policy-examples.fdi"></a>
-      </pre></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="examples"></a>Chapter 4. Examples and other stuff</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#callouts">Callouts</a></span></dt><dt><span class="sect1"><a href="#dbus-api">D-BUS Network API</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2654640">Interface org.freedesktop.Hal.Manager</a></span></dt><dt><span class="sect2"><a href="#id2656650">Interface org.freedesktop.Hal.Device</a></span></dt></dl></dd><dt><span class="sect1"><a href="#enforcing-policy">Enforcing Policy</a></span></dt><dd><dl><dt><span class="sect2"><a href="#enforcing-stor-vol">Storage Devices</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="callouts"></a>Callouts</h2></div></div></div><p>
+      </pre></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="examples"></a>Chapter 4. Examples and other stuff</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#callouts">Callouts</a></span></dt><dt><span class="sect1"><a href="#dbus-api">D-BUS Network API</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2972210">Interface org.freedesktop.Hal.Manager</a></span></dt><dt><span class="sect2"><a href="#id3013628">Interface org.freedesktop.Hal.Device</a></span></dt></dl></dd><dt><span class="sect1"><a href="#enforcing-policy">Enforcing Policy</a></span></dt><dd><dl><dt><span class="sect2"><a href="#enforcing-stor-vol">Storage Devices</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="callouts"></a>Callouts</h2></div></div></div><p>
       Callouts are programs invoked when the device object list is
       modified. As such, callouts can be used to maintain system-wide
       policy (that may be specific to the particular OS) such as
@@ -2671,7 +2696,7 @@
       and possibly callouts. Eventually, the device transitions to the
       GDL (global device list) and first then it becomes ''visible'' for
       desktop applications.
-    </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2654640"></a>Interface org.freedesktop.Hal.Manager</h3></div></div></div><p>
+    </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2972210"></a>Interface org.freedesktop.Hal.Manager</h3></div></div></div><p>
         Using D-BUS terminology, the HAL daemon provides the D-BUS
         service <code class="literal">org.freedesktop.Hal</code>. This service
         offers a D-BUS object at a well-known
@@ -2728,7 +2753,7 @@
 # @param  udi                   Unique Device Id
 #
 void NewCapability(string udi, string capability)
-      </pre><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2657432"></a>Example</h4></div></div></div><p>
+      </pre><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2984395"></a>Example</h4></div></div></div><p>
           The following brief Python program demonstrates some of the API
         </p><pre class="programlisting">
           <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" href="example-manager.py"></a>
@@ -2769,7 +2794,7 @@
 Device /org/freedesktop/Hal/devices/usb_46d_c001_410_-1_noserial was removed
 Device /org/freedesktop/Hal/devices/usbif_usb_46d_c001_410_-1_noserial_0 was removed
         </pre><p>
-        </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2656650"></a>Interface org.freedesktop.Hal.Device</h3></div></div></div><p>
+        </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3013628"></a>Interface org.freedesktop.Hal.Device</h3></div></div></div><p>
         Applications use
         the <code class="literal">org.freedesktop.Hal.Manager</code> interface to
         locate the device objects they are interested in. When a device




More information about the hal-commit mailing list