Profile Drivers

Profile Drivers — Profile Drivers


gchar * driver-name Read / Write / Construct Only
gchar * performance-inhibited Read / Write
PpdProfile profiles Read / Write / Construct Only

Types and Values

Object Hierarchy

    ╰── PpdDriver


Profile drivers are the implementation of the different profiles for the whole system. A driver will implement support for one or more profiles, usually one or both of the performance and power-saver profiles, for a particular system. Only one driver will be selected and running per profile.

If no system-specific driver is available, some placeholder balanced and power-saver drivers will be put in place, and the performance profile will be unavailable.

Common implementation of drivers might be:

  • a driver handling all three profiles, relying on a firmware feature exposed in the kernel,

  • a driver that only implements the performance profile on a particular system it has intimate knowledge of, leaving the balanced and power-saver profiles using placeholder

When a driver implements the performance profile, it might set the “performance-inhibited” property if the profile isn't available for any reason, such as thermal limits being reached, or because a part of the user's body is too close for safety, for example.


Types and Values

struct PpdDriverClass

struct PpdDriverClass {
  GObjectClass   parent_class;

  gboolean       (* probe)            (PpdDriver   *driver);
  gboolean       (* activate_profile) (PpdDriver   *driver,
                                       PpdProfile   profile,
                                       GError     **error);

New profile drivers should derive from PpdDriver and implement at least one of probe() and activate_profile .


probe ()

Called by the daemon on startup.


activate_profile ()

Called by the daemon for every profile change.



typedef struct _PpdDriver PpdDriver;

Property Details

The “driver-name” property

  “driver-name”              gchar *

Profile driver name.

Owner: PpdDriver

Flags: Read / Write / Construct Only

Default value: NULL

The “performance-inhibited” property

  “performance-inhibited”    gchar *

If set to a non-NULL value, the reason why the performance profile is unavailable. The value must be one of the options listed in the D-Bus API reference.

Owner: PpdDriver

Flags: Read / Write

Default value: NULL

The “profiles” property

  “profiles”                 PpdProfile

Profiles implemented by this driver.

Owner: PpdDriver

Flags: Read / Write / Construct Only