A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 89 lines 3.1 kB view raw
1/*************************************************************************** 2 * __________ __ ___. 3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___ 4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / 5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < 6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ 7 * \/ \/ \/ \/ \/ 8 * $Id$ 9 * 10 * Copyright (C) 2007 Copyright Kévin Ferrare 11 * 12 * This program is free software; you can redistribute it and/or 13 * modify it under the terms of the GNU General Public License 14 * as published by the Free Software Foundation; either version 2 15 * of the License, or (at your option) any later version. 16 * 17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 18 * KIND, either express or implied. 19 * 20 ****************************************************************************/ 21 22#include "clock.h" 23#include "clock_draw.h" 24#include "clock_draw_digital.h" 25#include "clock_draw_analog.h" 26#include "clock_draw_binary.h" 27#include "clock_settings.h" 28 29static void black_background(struct screen* display){ 30#if (LCD_DEPTH > 1) || (defined(LCD_REMOTE_DEPTH) && (LCD_REMOTE_DEPTH > 1)) 31 if(display->depth>1){ 32 display->set_background(LCD_BLACK); 33 display->clear_display(); 34 }else 35#endif 36 { 37 display->clear_display(); 38 display->fillrect(0,0,display->getwidth(),display->getheight()); 39 } 40} 41 42static void white_background(struct screen* display){ 43#if (LCD_DEPTH > 1) || (defined(LCD_REMOTE_DEPTH) && (LCD_REMOTE_DEPTH > 1)) 44 if(display->depth>1){ 45#if defined(HAVE_LCD_COLOR) 46 if(display->is_color)/* restore to the bitmap's background */ 47 display->set_background(LCD_RGBPACK(180,200,230)); 48 else 49#endif 50 display->set_background(LCD_WHITE); 51 } 52#endif 53 display->clear_display(); 54} 55 56static bool skin_require_black_background(int mode, int skin){ 57 return((mode==BINARY && skin==2) || (mode==DIGITAL && skin==1 )); 58} 59 60static void skin_set_background(struct screen* display, int mode, int skin){ 61 if(skin_require_black_background(mode, skin) ) 62 black_background(display); 63 else 64 white_background(display); 65} 66 67void clock_draw_set_colors(void){ 68 FOR_NB_SCREENS(i) 69 skin_set_background(rb->screens[i], 70 clock_settings.mode, 71 clock_settings.skin[clock_settings.mode]); 72} 73 74void clock_draw(struct screen* display, struct time* time, 75 struct counter* counter){ 76 if(!show_counter) 77 counter=0; 78 int skin=clock_settings.skin[clock_settings.mode]; 79 skin_set_background(display, clock_settings.mode, skin); 80 if(clock_settings.mode == ANALOG) 81 analog_clock_draw(display, time, &clock_settings, counter, skin); 82 83 else if(clock_settings.mode == DIGITAL) 84 digital_clock_draw(display, time, &clock_settings, counter, skin); 85 86 else if(clock_settings.mode == BINARY) 87 binary_clock_draw(display, time, skin); 88 display->update(); 89}