A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 80 lines 2.1 kB view raw
1/*************************************************************************** 2 * __________ __ ___. 3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___ 4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / 5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < 6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ 7 * \/ \/ \/ \/ \/ 8 * $Id$ 9 * 10 * Copyright (C) 2002 by Alan Korr 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#include "config.h" 22#include <stdbool.h> 23#include "cpu.h" 24#include "led.h" 25#include "system.h" 26#include "kernel.h" 27 28#if (CONFIG_LED == LED_REAL) 29 30#if defined(SAMSUNG_YH920) || defined(SAMSUNG_YH925) 31 32#define LED_ON GPIO_CLEAR_BITWISE(GPIOF_OUTPUT_VAL, 0x20) 33#define LED_OFF GPIO_SET_BITWISE(GPIOF_OUTPUT_VAL, 0x20) 34 35#else 36 37#define LED_ON or_b(0x40, &PBDRL) 38#define LED_OFF and_b(~0x40, &PBDRL) 39 40#endif /* SAMSUNG_YH920 || SAMSUNG_YH925 */ 41 42void led(bool on) 43{ 44 if ( on ) 45 { 46 LED_ON; 47 } 48 else 49 { 50 LED_OFF; 51 } 52} 53 54#elif (CONFIG_LED == LED_VIRTUAL) || defined(HAVE_REMOTE_LCD) 55 56static bool current; 57static long last_on; /* timestamp of switching off */ 58 59void led(bool on) 60{ 61 if (current && !on) /* switching off */ 62 { 63 last_on = current_tick; /* remember for off delay */ 64 } 65 current = on; 66} 67 68bool led_read(int delayticks) /* read by status bar update */ 69{ 70 /* reading "off" is delayed by user-supplied monoflop value */ 71 return (current || TIME_BEFORE(current_tick, last_on+delayticks)); 72} 73 74#else 75 76void led(bool on) 77{ 78 (void)on; 79} 80#endif /* CONFIG_LED, HAVE_REMOTE_LCD */