3 * (C) 2010 Martin Pitt <martin.pitt@ubuntu.com>
4 * Based on vapigen output, with fixes to array/list semantics and
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
18 [CCode (cprefix = "GUdev", lower_case_cprefix = "g_udev_")]
20 [CCode (cheader_filename = "gudev/gudev.h")]
21 public class Client : GLib.Object {
22 public weak GLib.Object parent;
23 public GUdev.ClientPrivate priv;
24 [CCode (has_construct_function = false)]
25 public Client ([CCode (array_length = false, array_null_terminated = true)] string[]? subsystems);
26 [CCode (cname = "g_udev_client_query_by_device_file")]
27 public GUdev.Device query_by_device_file (string device_file);
28 [CCode (cname = "g_udev_client_query_by_device_number")]
29 public GUdev.Device query_by_device_number (GUdev.DeviceType type, GUdev.DeviceNumber number);
30 [CCode (cname = "g_udev_client_query_by_subsystem")]
31 public GLib.List<Device> query_by_subsystem (string? subsystem);
32 [CCode (cname = "g_udev_client_query_by_subsystem_and_name")]
33 public GUdev.Device query_by_subsystem_and_name (string subsystem, string name);
34 [CCode (cname = "g_udev_client_query_by_sysfs_path")]
35 public GUdev.Device query_by_sysfs_path (string sysfs_path);
36 public signal void uevent (string action, GUdev.Device device);
38 [CCode (cheader_filename = "gudev/gudev.h")]
39 public class Device : GLib.Object {
40 public weak GLib.Object parent;
41 public GUdev.DevicePrivate priv;
42 [CCode (cname = "g_udev_device_get_action")]
43 public unowned string get_action ();
44 [CCode (cname = "g_udev_device_get_device_file")]
45 public unowned string get_device_file ();
46 [CCode (cname = "g_udev_device_get_device_file_symlinks", array_length = false, array_null_terminated = true)]
47 public unowned string[] get_device_file_symlinks ();
48 [CCode (cname = "g_udev_device_get_device_number")]
49 public GUdev.DeviceNumber get_device_number ();
50 [CCode (cname = "g_udev_device_get_device_type")]
51 public GUdev.DeviceType get_device_type ();
52 [CCode (cname = "g_udev_device_get_devtype")]
53 public unowned string get_devtype ();
54 [CCode (cname = "g_udev_device_get_driver")]
55 public unowned string get_driver ();
56 [CCode (cname = "g_udev_device_get_name")]
57 public unowned string get_name ();
58 [CCode (cname = "g_udev_device_get_number")]
59 public unowned string get_number ();
60 [CCode (cname = "g_udev_device_get_parent")]
61 public GUdev.Device get_parent ();
62 [CCode (cname = "g_udev_device_get_parent_with_subsystem")]
63 public GUdev.Device get_parent_with_subsystem (string subsystem, string? devtype);
64 [CCode (cname = "g_udev_device_get_property")]
65 public unowned string get_property (string key);
66 [CCode (cname = "g_udev_device_get_property_as_boolean")]
67 public bool get_property_as_boolean (string key);
68 [CCode (cname = "g_udev_device_get_property_as_double")]
69 public double get_property_as_double (string key);
70 [CCode (cname = "g_udev_device_get_property_as_int")]
71 public int get_property_as_int (string key);
72 [CCode (cname = "g_udev_device_get_property_as_strv", array_length = false, array_null_terminated = true)]
73 public unowned string[] get_property_as_strv (string key);
74 [CCode (cname = "g_udev_device_get_property_as_uint64")]
75 public uint64 get_property_as_uint64 (string key);
76 [CCode (cname = "g_udev_device_get_property_keys", array_length = false, array_null_terminated = true)]
77 public unowned string[] get_property_keys ();
78 [CCode (cname = "g_udev_device_get_seqnum")]
79 public uint64 get_seqnum ();
80 [CCode (cname = "g_udev_device_get_subsystem")]
81 public unowned string get_subsystem ();
82 [CCode (cname = "g_udev_device_get_sysfs_attr")]
83 public unowned string get_sysfs_attr (string name);
84 [CCode (cname = "g_udev_device_get_sysfs_attr_as_boolean")]
85 public bool get_sysfs_attr_as_boolean (string name);
86 [CCode (cname = "g_udev_device_get_sysfs_attr_as_double")]
87 public double get_sysfs_attr_as_double (string name);
88 [CCode (cname = "g_udev_device_get_sysfs_attr_as_int")]
89 public int get_sysfs_attr_as_int (string name);
90 [CCode (cname = "g_udev_device_get_sysfs_attr_as_strv", array_length = false, array_null_terminated = true)]
91 public unowned string[] get_sysfs_attr_as_strv (string name);
92 [CCode (cname = "g_udev_device_get_sysfs_attr_as_uint64")]
93 public uint64 get_sysfs_attr_as_uint64 (string name);
94 [CCode (cname = "g_udev_device_get_sysfs_path")]
95 public unowned string get_sysfs_path ();
96 [CCode (cname = "g_udev_device_has_property")]
97 public bool has_property (string key);
99 [CCode (type_id = "GUDEV_TYPE_CLIENT_PRIVATE", cheader_filename = "gudev/gudev.h")]
100 public struct ClientPrivate {
102 [CCode (cheader_filename = "gudev/gudev.h")]
104 [IntegerType (rank = 0)]
105 public struct DeviceNumber : uint64 {
107 [CCode (type_id = "GUDEV_TYPE_DEVICE_PRIVATE", cheader_filename = "gudev/gudev.h")]
108 public struct DevicePrivate {
110 [CCode (cprefix = "G_UDEV_DEVICE_TYPE_", cheader_filename = "gudev/gudev.h")]
111 public enum DeviceType {
116 [CCode (cheader_filename = "gudev/gudev.h")]
117 public const int GUDEV_INSIDE_GUDEV_H;