summaryrefslogtreecommitdiff
path: root/apps/plugins/clock/clock_draw_binary.c
diff options
context:
space:
mode:
authorKevin Ferrare <kevin@rockbox.org>2007-08-04 03:01:46 +0000
committerKevin Ferrare <kevin@rockbox.org>2007-08-04 03:01:46 +0000
commit93b2f9fd447b73fff736d71826880ef9ac64bd94 (patch)
tree1a4f54016c312738d66fb9dd2348ea0ef14f1255 /apps/plugins/clock/clock_draw_binary.c
parentffbbc60f38ddc8aeadc9cea1102077e22ca84a1a (diff)
downloadrockbox-93b2f9fd447b73fff736d71826880ef9ac64bd94.zip
rockbox-93b2f9fd447b73fff736d71826880ef9ac64bd94.tar.gz
rockbox-93b2f9fd447b73fff736d71826880ef9ac64bd94.tar.bz2
rockbox-93b2f9fd447b73fff736d71826880ef9ac64bd94.tar.xz
Rewrote the clock plugin in a cleaner and more modular way so that it can scale on remote screens. Use left-right keys to change the type of clock displayed (analogic, digital, binary) and up/downto change the look of the clock
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14174 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/clock/clock_draw_binary.c')
-rw-r--r--apps/plugins/clock/clock_draw_binary.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/apps/plugins/clock/clock_draw_binary.c b/apps/plugins/clock/clock_draw_binary.c
new file mode 100644
index 0000000..5bc84f1
--- /dev/null
+++ b/apps/plugins/clock/clock_draw_binary.c
@@ -0,0 +1,51 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id: jackpot.c 14034 2007-07-28 05:42:55Z kevin $
+ *
+ * Copyright (C) 2007 Copyright 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.
+ *
+ ****************************************************************************/
+#include "clock_draw_binary.h"
+#include "clock_bitmap_strings.h"
+#include "clock_bitmaps.h"
+#include "picture.h"
+
+const struct picture* binary_skin[]={binary,digits,segments};
+
+void print_binary(char* buffer, int number, int nb_bits){
+ int i;
+ int mask=1;
+ buffer[nb_bits]='\0';
+ for(i=0; i<nb_bits; i++){
+ if((number & mask) !=0)
+ buffer[nb_bits-i-1]='1';
+ else
+ buffer[nb_bits-i-1]='0';
+ mask=mask<<1;
+ }
+}
+
+void binary_clock_draw(struct screen* display, struct time* time, int skin){
+ int lines_values[]={
+ time->hour,time->minute,time->second
+ };
+ char buffer[9];
+ int i;
+ const struct picture* binary_bitmaps = &(binary_skin[skin][display->screen_type]);
+ for(i=0;i<3;i++){
+ print_binary(buffer, lines_values[i], 6);
+ draw_string(display, binary_bitmaps, buffer, 0,
+ binary_bitmaps->height*i);
+ }
+}