diff options
Diffstat (limited to 'firmware/powermgmt.c')
-rw-r--r-- | firmware/powermgmt.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c index 6cac300cdf..969d6167da 100644 --- a/firmware/powermgmt.c +++ b/firmware/powermgmt.c | |||
@@ -48,6 +48,9 @@ | |||
48 | #if (CONFIG_PLATFORM & PLATFORM_HOSTED) | 48 | #if (CONFIG_PLATFORM & PLATFORM_HOSTED) |
49 | #include <time.h> | 49 | #include <time.h> |
50 | #endif | 50 | #endif |
51 | #ifdef USB_ENABLE_HID | ||
52 | #include "usbstack/usb_hid.h" | ||
53 | #endif | ||
51 | 54 | ||
52 | #if (defined(IAUDIO_X5) || defined(IAUDIO_M5) || defined(COWON_D2)) \ | 55 | #if (defined(IAUDIO_X5) || defined(IAUDIO_M5) || defined(COWON_D2)) \ |
53 | && !defined (SIMULATOR) | 56 | && !defined (SIMULATOR) |
@@ -637,6 +640,17 @@ static void collect_power_history(void) | |||
637 | power_history[0] = power_hist_item(); | 640 | power_history[0] = power_hist_item(); |
638 | } | 641 | } |
639 | 642 | ||
643 | #ifdef USB_ENABLE_HID | ||
644 | static bool battery_reporting = false; | ||
645 | static int battery_report_percent = -1; | ||
646 | |||
647 | void set_battery_reporting(bool enable) | ||
648 | { | ||
649 | battery_reporting = enable; | ||
650 | battery_report_percent = -1; | ||
651 | } | ||
652 | #endif | ||
653 | |||
640 | /* | 654 | /* |
641 | * Monitor the presence of a charger and perform critical frequent steps | 655 | * Monitor the presence of a charger and perform critical frequent steps |
642 | * such as running the battery voltage filter. | 656 | * such as running the battery voltage filter. |
@@ -750,6 +764,13 @@ static void power_thread(void) | |||
750 | next_power_hist += HZ*60; | 764 | next_power_hist += HZ*60; |
751 | collect_power_history(); | 765 | collect_power_history(); |
752 | } | 766 | } |
767 | |||
768 | #ifdef USB_ENABLE_HID | ||
769 | if (battery_reporting && battery_report_percent != battery_percent) { | ||
770 | battery_report_percent = battery_percent; | ||
771 | usb_hid_send(HID_USAGE_PAGE_GENERIC_DEVICE_CONTROLS, battery_report_percent); | ||
772 | } | ||
773 | #endif | ||
753 | } | 774 | } |
754 | } /* power_thread */ | 775 | } /* power_thread */ |
755 | 776 | ||