PLAYBACK_CTRLPLAYBACK_CTRL_STATE = 0PLAYBACK_CTRL_OFF = 1PLAYBACK_CTRL_ON = 2PLAYBACK_CTRL_SWITCH = 3PlaybackArgs_turl : String_tinit_vol : inttimeout_val : intRadioPlayerinitialised : boolplayer_initialised : boolplayer_plugin : Player_t *output_plugin : AudioOut_t *stream_args : PlaybackArgs_tPlayer controlplayer.thread : pthread_tplayer.state : volatile sig_atomic_tlaunchPlayback( void * args ) : void *setPlaybackState( enum PLAYBACK_CTRL ctrl ) : boolCallbackscb.song_change_callback : void (*)( const char * str );cb.volume_change_event_callback : void (*)( const int vol );cb.playback_state_change_cb : void (*)( bool state );Setupinit( void (* song_change_cb)( const char * str ), void (* vol_change_event_cb)( const int vol ) ) : voidsetStateChangeCallback( void (* playback_state_change_cb)( bool ) ) : voidloadPlayerPlugin( Player_t * player ) : boolloadSoundServerPlugin( AudioOut_t * sound_server ) : boolPlayback controlplayRadioStream( const char * url, const int volume, int timeout_val ) : boolstopPlayback( void ) : voidgetPlaybackState( void ) : boolmodifyVolume( int delta ) : voidUtilitiesgetError( void ) : inttestStream( const char * url, int timeout_val, String_t * codec_str, ulong * bitrate ) : boolPlayer_tname : String_thandle : void *abi_version : unsigned int *init( AudioOut_t * sound_server, bool (* playback_ctrl_cb)( enum PLAYBACK_CTRL ), void (* song_change_cb)( const char * str ) ) : voidplayRadioStream( const char * url, const int volume, int timeout_val ) : boolgetError( void ) : inttestStream( const char * url, int timeout_val, String_t * codec_str, ulong * bitrate ) : boolAudioOut_tname : String_thandle : void *abi_version : unsigned int *init( OutputFmt_e fmt, int sample_rate, uint channels, uint samples, int volume ) : intwrite( const void * buffer, int buff_size ) : voidsetVolume( int vol ) : voidchangeVolume( int delta ) : boolgetVolume( void ) : intshutdown( void ) : voidOutputFmt_eAUDIO_OUTPUT_FMT_S16 = 16,AUDIO_OUTPUT_FMT_S32 = 32,