summaryrefslogtreecommitdiff
path: root/apps/gui/statusbar.h
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2005-10-28 00:00:00 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2005-10-28 00:00:00 +0000
commit7da9477bc3401cbd90b2984f625f96f451ecaf6b (patch)
tree8aea2c154ad0f666f57c4752fa541fa539de757c /apps/gui/statusbar.h
parent3efa91ed03797dd533c0add6db750ade67499587 (diff)
Initial multi screen support by Kévin Ferrare (Patch #1318081)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7666 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/statusbar.h')
-rw-r--r--apps/gui/statusbar.h107
1 files changed, 107 insertions, 0 deletions
diff --git a/apps/gui/statusbar.h b/apps/gui/statusbar.h
new file mode 100644
index 0000000000..434d679e29
--- /dev/null
+++ b/apps/gui/statusbar.h
@@ -0,0 +1,107 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2005 by Kévin FERRARE
+ *
+ * All files in this archive are subject to the GNU General Public License.
+ * See the file COPYING in the source tree root for full license agreement.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+#ifndef _GUI_STATUSBAR_H_
+#define _GUI_STATUSBAR_H_
+
+#include "config.h"
+#include "status.h"
+
+struct status_info {
+ int battlevel;
+ int volume;
+ int hour;
+ int minute;
+ int playmode;
+ int repeat;
+ bool inserted;
+ bool shuffle;
+ bool keylock;
+ bool battery_safe;
+ bool redraw_volume; /* true if the volume gauge needs updating */
+#if CONFIG_LED == LED_VIRTUAL
+ bool led; /* disk LED simulation in the status bar */
+#endif
+#ifdef HAVE_USB_POWER
+ bool usb_power;
+#endif
+};
+
+struct gui_statusbar
+{
+ /* Volume icon stuffs */
+ long volume_icon_switch_tick;
+ int last_volume;
+
+ long battery_icon_switch_tick;
+
+#ifdef HAVE_CHARGING
+ int battery_charge_step;
+#endif
+
+ struct status_info info;
+ struct status_info lastinfo;
+
+ struct screen * display;
+};
+
+/*
+ * Initializes a status bar
+ * - bar : the bar to initialize
+ */
+extern void gui_statusbar_init(struct gui_statusbar * bar);
+
+/*
+ * Attach the status bar to a screen
+ * (The previous screen attachement is lost)
+ * - bar : the statusbar structure
+ * - display : the screen to attach
+ */
+extern void gui_statusbar_set_screen(struct gui_statusbar * bar, struct screen * display);
+
+/*
+ * Draws the status bar on the attached screen
+ * - bar : the statusbar structure
+ */
+extern void gui_statusbar_draw(struct gui_statusbar * bar, bool force_redraw);
+
+void gui_statusbar_icon_battery(struct screen * display, int percent);
+bool gui_statusbar_icon_volume(struct gui_statusbar * bar, int percent);
+void gui_statusbar_icon_play_state(struct screen * display, int state);
+void gui_statusbar_icon_play_mode(struct screen * display, int mode);
+void gui_statusbar_icon_shuffle(struct screen * display);
+void gui_statusbar_icon_lock(struct screen * display);
+#if CONFIG_LED == LED_VIRTUAL
+void gui_statusbar_led(struct screen * display);
+#endif
+
+#ifdef HAVE_RTC
+void gui_statusbar_time(struct screen * display, int hour, int minute);
+#endif
+
+
+struct gui_syncstatusbar
+{
+ struct gui_statusbar statusbars[NB_SCREENS];
+};
+
+extern void gui_syncstatusbar_init(struct gui_syncstatusbar * bars);
+extern void gui_syncstatusbar_draw(struct gui_syncstatusbar * bars, bool force_redraw);
+
+#endif /*_GUI_STATUSBAR_H_*/