summaryrefslogtreecommitdiff
path: root/powerprofiles/src
diff options
context:
space:
mode:
Diffstat (limited to 'powerprofiles/src')
-rw-r--r--powerprofiles/src/cli.vala80
-rw-r--r--powerprofiles/src/config.vala.in6
-rw-r--r--powerprofiles/src/meson.build75
-rw-r--r--powerprofiles/src/power-profiles.vala205
4 files changed, 0 insertions, 366 deletions
diff --git a/powerprofiles/src/cli.vala b/powerprofiles/src/cli.vala
deleted file mode 100644
index 7be01d2..0000000
--- a/powerprofiles/src/cli.vala
+++ /dev/null
@@ -1,80 +0,0 @@
-static bool help;
-static bool version;
-static bool daemonize;
-static bool list;
-static string set;
-
-const OptionEntry[] options = {
- { "version", 'v', OptionFlags.NONE, OptionArg.NONE, ref version, null, null },
- { "help", 'h', OptionFlags.NONE, OptionArg.NONE, ref help, null, null },
- { "daemonize", 'd', OptionFlags.NONE, OptionArg.NONE, ref daemonize, null, null },
- { "list", 'l', OptionFlags.NONE, OptionArg.NONE, ref list, null, null },
- { "set", 's', OptionFlags.NONE, OptionArg.STRING, ref set, null, null },
- { null },
-};
-
-int main(string[] argv) {
- try {
- var opts = new OptionContext();
- opts.add_main_entries(options, null);
- opts.set_help_enabled(false);
- opts.set_ignore_unknown_options(false);
- opts.parse(ref argv);
- } catch (OptionError err) {
- printerr (err.message);
- return 1;
- }
-
- if (help) {
- print("Usage:\n");
- print(" %s [flags]\n\n", argv[0]);
- print("Flags:\n");
- print(" -h, --help Print this help and exit\n");
- print(" -v, --version Print version number and exit\n");
- print(" -d, --daemonize Monitor for changes\n");
- print(" -l, --list List available profiles\n");
- return 0;
- }
-
- if (version) {
- print(AstalPowerProfiles.VERSION);
- return 0;
- }
-
- var profiles = AstalPowerProfiles.get_default();
- if (set != null) {
- profiles.active_profile = set;
- }
-
- else if (list) {
- foreach (var p in profiles.profiles) {
- print("%s\n", p.profile);
- }
- return 0;
- }
-
- if (daemonize) {
- var loop = new MainLoop();
-
- stdout.printf("%s\n", profiles.to_json_string());
- stdout.flush();
-
- profiles.notify.connect(() => {
- stdout.printf("%s\n", profiles.to_json_string());
- stdout.flush();
- });
-
- profiles.profile_released.connect(() => {
- stdout.printf("%s\n", profiles.to_json_string());
- stdout.flush();
- });
-
- loop.run();
- }
-
- if (set == null && !daemonize) {
- stdout.printf("%s\n", profiles.to_json_string());
- }
-
- return 0;
-}
diff --git a/powerprofiles/src/config.vala.in b/powerprofiles/src/config.vala.in
deleted file mode 100644
index 79034f1..0000000
--- a/powerprofiles/src/config.vala.in
+++ /dev/null
@@ -1,6 +0,0 @@
-namespace AstalPowerProfiles {
- public const int MAJOR_VERSION = @MAJOR_VERSION@;
- public const int MINOR_VERSION = @MINOR_VERSION@;
- public const int MICRO_VERSION = @MICRO_VERSION@;
- public const string VERSION = "@VERSION@";
-}
diff --git a/powerprofiles/src/meson.build b/powerprofiles/src/meson.build
deleted file mode 100644
index fdb8580..0000000
--- a/powerprofiles/src/meson.build
+++ /dev/null
@@ -1,75 +0,0 @@
-version_split = meson.project_version().split('.')
-api_version = version_split[0] + '.' + version_split[1]
-gir = 'AstalPowerProfiles-' + api_version + '.gir'
-typelib = 'AstalPowerProfiles-' + api_version + '.typelib'
-
-config = configure_file(
- input: 'config.vala.in',
- output: 'config.vala',
- configuration: {
- 'VERSION': meson.project_version(),
- 'MAJOR_VERSION': version_split[0],
- 'MINOR_VERSION': version_split[1],
- 'MICRO_VERSION': version_split[2],
- },
-)
-
-deps = [
- dependency('glib-2.0'),
- dependency('gobject-2.0'),
- dependency('gio-2.0'),
- dependency('json-glib-1.0'),
-]
-
-sources = [
- config,
- 'power-profiles.vala',
-]
-
-if get_option('lib')
- lib = library(
- meson.project_name(),
- sources,
- dependencies: deps,
- vala_header: meson.project_name() + '.h',
- vala_vapi: meson.project_name() + '-' + api_version + '.vapi',
- vala_gir: gir,
- version: meson.project_version(),
- install: true,
- install_dir: [true, true, true, true],
- )
-
- import('pkgconfig').generate(
- lib,
- name: meson.project_name(),
- filebase: meson.project_name() + '-' + api_version,
- version: meson.project_version(),
- subdirs: meson.project_name(),
- requires: deps,
- install_dir: get_option('libdir') / 'pkgconfig',
- )
-
- custom_target(
- typelib,
- command: [
- find_program('g-ir-compiler'),
- '--output', '@OUTPUT@',
- '--shared-library', get_option('prefix') / get_option('libdir') / '@PLAINNAME@',
- meson.current_build_dir() / gir,
- ],
- input: lib,
- output: typelib,
- depends: lib,
- install: true,
- install_dir: get_option('libdir') / 'girepository-1.0',
- )
-endif
-
-if get_option('cli')
- executable(
- meson.project_name(),
- ['cli.vala', sources],
- dependencies: deps,
- install: true,
- )
-endif
diff --git a/powerprofiles/src/power-profiles.vala b/powerprofiles/src/power-profiles.vala
deleted file mode 100644
index ab98505..0000000
--- a/powerprofiles/src/power-profiles.vala
+++ /dev/null
@@ -1,205 +0,0 @@
-namespace AstalPowerProfiles {
-[DBus (name = "org.freedesktop.UPower.PowerProfiles")]
-private interface IPowerProfiles : DBusProxy {
- public abstract string[] actions { owned get; }
- public abstract string active_profile { owned get; set; }
- public abstract HashTable<string, Variant>[] active_profile_holds { owned get; }
- public abstract string performance_degraded { owned get; }
- public abstract string performance_inhibited { owned get; }
- public abstract HashTable<string, Variant>[] profiles { owned get; }
- public abstract string version { owned get; }
-
- public signal void profile_released (uint cookie);
-
- public abstract uint hold_profile(string profile, string reason, string application_id) throws Error;
- public abstract void release_profile(uint cookie) throws Error;
-}
-
-public PowerProfiles get_default() {
- return PowerProfiles.get_default();
-}
-
-public class PowerProfiles : Object {
- private static PowerProfiles instance;
- public static PowerProfiles get_default() {
- if (instance == null)
- instance = new PowerProfiles();
-
- return instance;
- }
-
- private IPowerProfiles proxy;
-
- construct {
- try {
- proxy = Bus.get_proxy_sync(
- GLib.BusType.SYSTEM,
- "org.freedesktop.UPower.PowerProfiles",
- "/org/freedesktop/UPower/PowerProfiles"
- );
-
- proxy.profile_released.connect((cookie) => profile_released(cookie));
- proxy.g_properties_changed.connect((props) => {
- var map = (HashTable<string, Variant>)props;
- foreach (var key in map.get_keys()) {
- notify_property(kebab_case(key));
- if (key == "ActiveProfile")
- notify_property("icon-name");
- }
- });
- } catch (Error error){
- critical(error.message);
- }
- }
-
- public string active_profile {
- owned get { return proxy.active_profile; }
- set { proxy.active_profile = value; }
- }
-
- public string icon_name {
- owned get { return @"power-profile-$active_profile-symbolic"; }
- }
-
- public string[] actions {
- owned get { return proxy.actions.copy(); }
- }
-
- public Hold[] active_profile_holds {
- owned get {
- Hold[] holds = new Hold[proxy.active_profile_holds.length];
- for (var i = 0; i < proxy.active_profile_holds.length; ++i) {
- var hold = proxy.active_profile_holds[i];
- holds[i] = Hold() {
- application_id = hold.get("ApplicationId").get_string(),
- profile = hold.get("Profile").get_string(),
- reason = hold.get("Reason").get_string()
- };
- }
- return holds;
- }
- }
-
- public string performance_degraded {
- owned get { return proxy.performance_degraded; }
- }
-
- public string performance_inhibited {
- owned get { return proxy.performance_degraded; }
- }
-
- public Profile[] profiles {
- owned get {
- Profile[] profs = new Profile[proxy.profiles.length];
- for (var i = 0; i < proxy.profiles.length; ++i) {
- var prof = proxy.profiles[i];
- profs[i] = Profile() {
- profile = prof.get("Profile").get_string(),
- cpu_driver = prof.get("CpuDriver").get_string(),
- platform_driver = prof.get("PlatformDriver").get_string(),
- driver = prof.get("Driver").get_string()
- };
- }
- return profs;
- }
- }
-
- public string version {
- owned get { return proxy.version; }
- }
-
- public signal void profile_released (uint cookie);
-
- public int hold_profile(string profile, string reason, string application_id) {
- try {
- return (int)proxy.hold_profile(profile, reason, application_id);
- } catch (Error error) {
- critical(error.message);
- return -1;
- }
- }
-
- public void release_profile(uint cookie) {
- try {
- proxy.release_profile(cookie);
- } catch (Error error) {
- critical(error.message);
- }
- }
-
- public string to_json_string() {
- var acts = new Json.Builder().begin_array();
- foreach (var action in actions) {
- acts.add_string_value(action);
- }
-
- var active_holds = new Json.Builder().begin_array();
- foreach (var action in active_profile_holds) {
- active_holds.add_value(new Json.Builder()
- .begin_object()
- .set_member_name("application_id").add_string_value(action.application_id)
- .set_member_name("profile").add_string_value(action.profile)
- .set_member_name("reason").add_string_value(action.reason)
- .end_object()
- .get_root());
- }
-
- var profs = new Json.Builder().begin_array();
- foreach (var prof in profiles) {
- profs.add_value(new Json.Builder()
- .begin_object()
- .set_member_name("profie").add_string_value(prof.profile)
- .set_member_name("driver").add_string_value(prof.driver)
- .set_member_name("cpu_driver").add_string_value(prof.cpu_driver)
- .set_member_name("platform_driver").add_string_value(prof.platform_driver)
- .end_object()
- .get_root());
- }
-
- return Json.to_string(new Json.Builder()
- .begin_object()
- .set_member_name("active_profile").add_string_value(active_profile)
- .set_member_name("icon_name").add_string_value(icon_name)
- .set_member_name("performance_degraded").add_string_value(performance_degraded)
- .set_member_name("performance_inhibited").add_string_value(performance_inhibited)
- .set_member_name("actions").add_value(acts.end_array().get_root())
- .set_member_name("active_profile_holds").add_value(active_holds.end_array().get_root())
- .set_member_name("profiles").add_value(profs.end_array().get_root())
- .end_object()
- .get_root(), false);
- }
-}
-
-public struct Profile {
- public string profile;
- public string cpu_driver;
- public string platform_driver;
- public string driver;
-}
-
-public struct Hold {
- public string application_id;
- public string profile;
- public string reason;
-}
-
-private string kebab_case(string pascal_case) {
- StringBuilder kebab_case = new StringBuilder();
-
- for (int i = 0; i < pascal_case.length; i++) {
- char c = pascal_case[i];
-
- if (c >= 'A' && c <= 'Z') {
- if (i != 0) {
- kebab_case.append_c('-');
- }
-
- kebab_case.append_c((char)(c + 32));
- } else {
- kebab_case.append_c(c);
- }
- }
-
- return kebab_case.str;
-}
-}