A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 58 lines 2.0 kB view raw
1/*************************************************************************** 2* __________ __ ___. 3* Open \______ \ ____ ____ | | _\_ |__ _______ ___ 4* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / 5* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < 6* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ 7* \/ \/ \/ \/ \/ 8* $Id$ 9* 10* Copyright (C) 2009 by Maurus Cuelenaere 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#ifndef __PLUGINLIB_EXIT_H__ 23#define __PLUGINLIB_EXIT_H__ 24 25/* make sure we are in sync with the real definitions, especially on 26 * hosted systems */ 27#include <stdlib.h> 28#include "gcc_extensions.h" 29 30/* these are actually implemented in plugin_crt0.c which all plugins link 31 * 32 * the cygwin/mingw shared library stub also defines atexit, so give our 33 * implementation a prefix */ 34#define atexit rb_atexit 35extern int rb_atexit(void (*func)(void)); 36extern void exit(int status) NORETURN_ATTR; 37/* these don't call the exit handlers */ 38extern void _exit(int status) NORETURN_ATTR; 39/* C99 version */ 40#define _Exit _exit 41 42#ifndef EXIT_SUCCESS 43#define EXIT_SUCCESS 0 44#define EXIT_FAILURE 1 45#endif 46 47/** 48 * helper function to handle USB connected events coming from 49 * button_get() 50 * 51 * it will exit the plugin if usb is detected, but it will call the atexit func 52 * before actually showing the usb screen 53 * 54 * it additionally handles power off as well, with the same behavior 55 */ 56extern void exit_on_usb(int button); 57 58#endif /* __PLUGINLIB_EXIT_H__ */