A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita
audio
rust
zig
deno
mpris
rockbox
mpd
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__ */