diff options
author | David <dbphillipsnz@gmail.com> | 2014-03-30 11:50:03 +1300 |
---|---|---|
committer | David <dbphillipsnz@gmail.com> | 2014-03-30 11:55:04 +1300 |
commit | 1b7114310f135ca81dfdc228c1c188c731a2d6e6 (patch) | |
tree | 11263c755b3cd98254dfebff0fd38c6a85d8d7b7 /src/bat_tray | |
parent | 6532d80ed657c0cbd8c56d2e875ea093dcfadacd (diff) | |
download | paramano-1b7114310f135ca81dfdc228c1c188c731a2d6e6.tar.xz |
Moved src/* to ./
Diffstat (limited to 'src/bat_tray')
-rw-r--r-- | src/bat_tray/bat_tray.c | 192 | ||||
-rw-r--r-- | src/bat_tray/bat_tray.h | 40 |
2 files changed, 0 insertions, 232 deletions
diff --git a/src/bat_tray/bat_tray.c b/src/bat_tray/bat_tray.c deleted file mode 100644 index 9f6adfb..0000000 --- a/src/bat_tray/bat_tray.c +++ /dev/null @@ -1,192 +0,0 @@ -/************************************************************************ - * This file is part of trayfreq-archlinux. * - * * - * trayfreq-archlinux 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 3 of the * - * License, or (at your option) any later version. * - * * - * trayfreq-archlinux 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 trayfreq-archlinux. If not, see * - * <http://www.gnu.org/licenses/>. * - ************************************************************************/ - -#include "bat_tray.h" -#include "../common.h" - -#include <gtk/gtk.h> -#include <string.h> -#include <stdio.h> -#include <stdlib.h> - -static GtkStatusIcon* tray; - - -int _BAT_NUM; -char CHARGE_VALUE_PATH[512]; -char CHARGE_STATE_PATH[512]; - -/*********************************************************************** - * Return the battery level percentage - **********************************************************************/ -//#define get_bat_percent() get_int_value_from_file(CHARGE_VALUE_PATH); -int get_bat_percent(){return get_int_value_from_file(CHARGE_VALUE_PATH); } - - -#define TOOLTIP_TEXT_SIZE 128 -gchar tooltip_text[TOOLTIP_TEXT_SIZE]; - - -/*********************************************************************** - * Updates the battery tray tooltip text - **********************************************************************/ -static gboolean update_tooltip(GtkStatusIcon* status_icon,gint x,gint y,gboolean keyboard_mode,GtkTooltip* tooltip,gpointer data) -{ - gchar msg[TOOLTIP_TEXT_SIZE]; - //memset(msg,0,TOOLTIP_TEXT_SIZE); - switch(get_battery_state()) - { - case STATE_DISCHARGING: - sprintf(msg, "Discharging (%i%% left)", get_bat_percent()); - break; - - case STATE_CHARGING: - sprintf(msg, "Charging (%i%%)", get_bat_percent()); - break; - case STATE_CHARGED: - sprintf(msg, "Fully charged"); - break; - - default: - sprintf(msg, "Unknown status"); - break; - } - - gtk_tooltip_set_text(tooltip, msg); - - return TRUE; -} - - -/*********************************************************************** - * Updates the battery tray icon based upon battery percent - **********************************************************************/ -static gboolean update_icon(gpointer user_data) -{ - gchar* icon_file; - unsigned int percent = get_bat_percent(); - unsigned int adjusted_percent; - gchar adjusted_percent_string[4]; - - if(percent > 90) - adjusted_percent=100; - else if(percent > 70) - adjusted_percent=80; - else if(percent > 50) - adjusted_percent=60; - else if(percent > 30) - adjusted_percent=40; - else if(percent > 10) - adjusted_percent=20; - else - adjusted_percent=0; - - sprintf(adjusted_percent_string, "%i", adjusted_percent); - - switch ( get_battery_state() ) - { - case STATE_DISCHARGING: - icon_file = g_strconcat("/usr/share/trayfreq/traybat-", adjusted_percent_string, ".png", NULL); - break; - case STATE_CHARGING: - icon_file = g_strconcat("/usr/share/trayfreq/traybat-", adjusted_percent_string, "-charging.png", NULL); - break; - - default: - icon_file = g_strconcat("/usr/share/trayfreq/traybat-charged.png", NULL); - break; - } - gtk_status_icon_set_from_file(tray, icon_file); - return TRUE; -} - - - - -void bat_tray_init() -{ - // Get the battery number, store it for later - _BAT_NUM = get_bat_num(); - - // Set up battery info filenames/paths - sprintf(CHARGE_VALUE_PATH, "/sys/class/power_supply/BAT%i/capacity", _BAT_NUM); - sprintf(CHARGE_STATE_PATH, "/sys/class/power_supply/BAT%i/status", _BAT_NUM); - // NOT USED : sprintf(CURRENT_PATH, "/sys/class/power_supply/BAT%i/charge_now", _BAT_NUM); - - - tray = gtk_status_icon_new(); - gchar* icon_file = g_strconcat("/usr/share/trayfreq/traybat-charged.png", NULL); - gtk_status_icon_set_from_file(tray, icon_file); - gtk_status_icon_set_has_tooltip (tray, TRUE); - g_signal_connect(G_OBJECT(tray), "query-tooltip", GTK_SIGNAL_FUNC(update_tooltip), NULL); - gtk_timeout_add(5000, update_icon, NULL); -} - - -void bat_tray_show() -{ - gtk_status_icon_set_visible(tray, TRUE); -} - -void bat_tray_hide() -{ - gtk_status_icon_set_visible(tray, FALSE); -} - - -/*********************************************************************** - * Return the battery state - **********************************************************************/ -int get_battery_state() -{ - if (file_has_line(CHARGE_STATE_PATH, "Discharging")) - return STATE_DISCHARGING; - - if (file_has_line(CHARGE_STATE_PATH, "Full")) - return STATE_CHARGED; - - if (file_has_line(CHARGE_STATE_PATH, "Charging")) - return STATE_CHARGING; - - return STATE_UNKNOWN; -} - -/*********************************************************************** - * Get the number of the first (who has more than one?) battery - * Returns -1 if no battery present - **********************************************************************/ -int get_bat_num() -{ - FILE* fd; - gchar file[40]; - unsigned int i; - for(i = 0; i < 3; i++) - { - sprintf(file, "/sys/class/power_supply/BAT%i/present", i); - - if( (fd = fopen(file, "r")) ) - { - if (fgetc(fd) == '1') - { - fclose(fd); - return i; - } - } - } - return -1; -} diff --git a/src/bat_tray/bat_tray.h b/src/bat_tray/bat_tray.h deleted file mode 100644 index c20a833..0000000 --- a/src/bat_tray/bat_tray.h +++ /dev/null @@ -1,40 +0,0 @@ -/************************************************************************ - * This file is part of trayfreq-archlinux. * - * * - * trayfreq-archlinux 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 3 of the * - * License, or (at your option) any later version. * - * * - * trayfreq-archlinux 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 trayfreq-archlinux. If not, see * - * <http://www.gnu.org/licenses/>. * - ************************************************************************/ - -#ifndef BAT_TRAY_H -#define BAT_TRAY_H 1 - -#include <glib.h> - - -// already defined in bat_tray.c : #define gb_percent get_int_value_from_file(CHARGE_VALUE_PATH); - -#define STATE_CHARGING 0 -#define STATE_DISCHARGING 1 -#define STATE_CHARGED 2 -#define STATE_FULL STATE_CHARGED -#define STATE_UNKNOWN 3 - -void bat_tray_init(); -void bat_tray_show(); -void bat_tray_hide(); - -int get_battery_state(); -int get_bat_num(); - -#endif /* ifndef BAT_TRAY_H */
\ No newline at end of file |