8 #define IMPACTFM_DECL __attribute__ ((visibility ("default")))
9#elif defined(_WIN32) || defined(WIN32)
11 #ifdef BUILDING_IMPACTFM_DLL
12 #define IMPACTFM_DECL __declspec(dllexport)
14 #define IMPACTFM_DECL __declspec(dllimport)
17 #pragma warning(disable : 4996)
19#elif defined(__APPLE__)
20 #include <sys/types.h>
21 #define IMPACTFM_DECL __attribute__ ((visibility ("default")))
25#define IMPACTFM_HAS_WEBSERVER 1
26#define IMPACTFM_HAS_CLOUDBUS 0
46#define IMPACTFM_AUDIOFRAME_COUNT 64
52#define IMPACTFM_CHANNEL_COUNT 2
58#define IMPACTFM_AUDIO_INPUT_COUNT 1
64#define IMPACTFM_AUDIO_OUTPUT_COUNT 1
70#define IMPACTFM_SAMPLE_RATE 48000
278 const char *LoginKey,
279 const char *RadioName,
280 const char *Access_Key_ID,
281 const char *Access_Key_Secret,
282 const char *save_path
293 const char *LoginKey,
294 const char *RadioName,
295 const char *Access_Key_ID,
296 const char *Access_Key_Secret,
297 const char *save_path,
329 const char *LoginKey,
330 const char *RadioName,
331 const char *Access_Key_ID,
332 const char *Access_Key_Secret,
333 const char *save_path,
335 unsigned int frames_per_chunk
371#if IMPACTFM_HAS_CLOUDBUS
396IMPACTFM_DECL void impactfm_FreeBus(
struct impactfm_CBus *bus);
417#ifndef TLG_HAVE_EVENT_SET_INFORMATION
418 struct _tlgProvider_t;
489typedef char * (*impactfm_storage_reader) (
const fs_char *filename,
void* userdata);
525typedef fs_char** (*impactfm_storage_getall) (
void* userdata);
753 ,
float const *
const *input
754 ,
float *
const *output);
872 #define __BYTE_ORDER__ REG_DWORD
873 #define __ORDER_LITTLE_ENDIAN__ REG_DWORD_LITTLE_ENDIAN
874 #define __ORDER_BIG_ENDIAN__ REG_DWORD_BIG_ENDIAN
892 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
1114 ,
size_t payl_ch,
size_t payl_ch_offset
1213#if IMPACTFM_HAS_WEBSERVER
1339#define SOUND4_INVALID_WEBSERVER_ID ((uint64_t)-1)
1344#define SOUND4_WEBSERVER_HTTP_OK (1<<0)
1348#define SOUND4_WEBSERVER_HTTPS_OK (1<<1)
unsigned int impactfm_AddAudio(struct impactfm_CInstance *instance, const uint8_t *payload, unsigned int nFrame, enum impactfm_SampleFormat fmt)
unsigned int impactfm_GetMaxPacketFrame(struct impactfm_CInstance *instance)
unsigned int impactfm_GetAudio(struct impactfm_CInstance *instance, uint8_t *payload, unsigned int max_nFrame, enum impactfm_SampleFormat fmt)
const char * impactfm_GetFormatName(const enum impactfm_SampleFormat fmt)
unsigned int impactfm_AddPadAudio(struct impactfm_CInstance *instance)
unsigned int impactfm_GetOutputCount(struct impactfm_CInstance *instance)
unsigned int impactfm_GetBytesFromFormat(const enum impactfm_SampleFormat fmt)
enum impactfm_SampleFormat impactfm_GetFormatFromName(const char *name)
@ F32_NATIVE
32-bit floating-point, native
@ S16_NATIVE
16-bit signed integer, native
@ F32_LE
32-bit floating-point, little-endian
@ S16_BE
16-bit signed integer, big-endian
@ S32_BE
32-bit signed integer, big-endian
@ S24_BE
24-bit signed integer, big-endian
@ S16_LE
16-bit signed integer, little-endian
@ F32_BE
32-bit floating-point, big-endian
@ S32_NATIVE
32-bit signed integer, native
@ S24_LE
24-bit signed integer, little-endian
@ S32_LE
32-bit signed integer, little-endian
@ S24_NATIVE
24-bit signed integer, native
unsigned int impactfm_GetAuxiliaryAudioEstimatedDelay(struct impactfm_CInstance *instance, const char *id)
struct SOUND4_AuxiliaryOutputInfos ** impactfm_GetAuxiliaryAudioOutputInfos(struct impactfm_CInstance *instance)
void impactfm_FreeAuxiliaryAudioInfos(struct SOUND4_AuxiliaryOutputInfos **infos)
int impactfm_ActivateAuxiliaryAudioID(struct impactfm_CInstance *instance, const char *id)
void impactfm_FreeJsonAnswer(const char *json_str)
const char * impactfm_ProcessJson(struct impactfm_CClientInstance *client, const char *json_str, int *need_save)
int impactfm_SaveState(struct impactfm_CInstance *instance)
struct impactfm_CClientInstance * impactfm_NewClient(struct impactfm_CInstance *instance)
void impactfm_DeleteClient(struct impactfm_CClientInstance *client)
void impactfm_StereoToMono(const float *input, float *output, size_t nFrame)
void impactfm_AudioConvertFrom(const uint8_t *payload, float *output, size_t nSpl, enum impactfm_SampleFormat fmt)
void impactfm_MonoToStereo(const float *input, float *output, size_t nFrame)
void impactfm_MonoToStereo_Planar(const float *input, float *outputL, float *outputR, size_t nFrame)
impactfm_ConverterTargetMode
void impactfm_StereoToMono_Planar(const float *inputL, const float *inputR, float *output, size_t nFrame)
struct impactfm_CAudioConverter * impactfm_GetAudioConverter(enum impactfm_SampleFormat fmt, size_t nFrame, size_t payl_ch, size_t payl_ch_offset, enum impactfm_ConverterTargetMode target_mode)
void impactfm_AudioConverter_From(struct impactfm_CAudioConverter *converter, const uint8_t *payload, float *output)
void impactfm_AudioConverter_To(struct impactfm_CAudioConverter *converter, const float *input, uint8_t *payload)
void impactfm_AudioConvertTo(const float *input, uint8_t *payload, size_t nSpl, enum impactfm_SampleFormat fmt)
void impactfm_AudioMonoToLiveStereo(const float *input, uint8_t *payload)
void impactfm_AudioMonoFromLiveStereo(const uint8_t *payload, float *output)
void impactfm_FreeAudioConverter(struct impactfm_CAudioConverter *converter)
@ ConverterTargetMode_Mono
Mono process (using mono extract/payload)
@ ConverterTargetMode_StereoToMono
Mono process, using stereo extract/payload (converts stereo to mono)
@ ConverterTargetMode_AsInput
Same channels as input (no extract/insert)
@ ConverterTargetMode_Stereo
Stereo process (using stereo extract/payload)
@ ConverterTargetMode_MonoToStereo
Stereo process, using mono extract/payload (converts mono to stereo)
unsigned int impactfm_GetEstimatedDelay(struct impactfm_CInstance *instance)
float * impactfm_GetBufferOut(struct impactfm_CInstance *instance)
float * impactfm_GetBufferIn(struct impactfm_CInstance *instance)
void impactfm_ProcessAudio_Planar(struct impactfm_CInstance *instance, float const *const *input, float *const *output)
void impactfm_ProcessAudio(struct impactfm_CInstance *instance, const float *input, float *output)
const struct SOUND4_ProcessInfo * SOUND4_GetProcessInfo()
void impactfm_SetLoggerCallback(impactfm_loggerfn logger)
unsigned int impactfm_GetChannelCount()
unsigned int impactfm_GetAudioInputCount()
unsigned int * impactfm_GetPossibleChunkSizeInFrames()
const char * impactfm_GetVersion()
unsigned int impactfm_GetChunkSizeInFrames()
unsigned int impactfm_GetAudioOutputCount()
void(* impactfm_loggerfn)(enum impactfm_LogSeverity, const char *)
unsigned int impactfm_GetSampleRate()
void impactfm_SetLogSeverity(enum impactfm_LogSeverity severity)
void impactfm_SetParameter(struct impactfm_CParameters *params, const char *name, const char *value)
void impactfm_FreeParameterValue(const char *value)
struct impactfm_CInstance * impactfm_InitProcess3(const char *LoginKey, const char *RadioName, const char *Access_Key_ID, const char *Access_Key_Secret, const char *save_path, const struct impactfm_CParameters *parameters, unsigned int frames_per_chunk)
struct impactfm_CInstance * impactfm_InitProcess2(const char *LoginKey, const char *RadioName, const char *Access_Key_ID, const char *Access_Key_Secret, const char *save_path, const struct impactfm_CParameters *parameters)
int impactfm_TerminateProcess(struct impactfm_CInstance *instance)
void impactfm_ExitProcess(struct impactfm_CInstance *instance)
struct impactfm_CParameters * impactfm_NewParameters()
const char * impactfm_GetParameter(struct impactfm_CParameters *params, const char *name)
void impactfm_FreeParameters(struct impactfm_CParameters *params)
unsigned int impactfm_GetProcessChunkFrames(struct impactfm_CInstance *instance)
struct impactfm_CInstance * impactfm_InitProcess(const char *LoginKey, const char *RadioName, const char *Access_Key_ID, const char *Access_Key_Secret, const char *save_path)
int(* impactfm_storage_remove)(const fs_char *filename, void *userdata)
fs_char **(* impactfm_storage_getall)(void *userdata)
int(* impactfm_storage_rename)(const fs_char *from, const fs_char *to, void *userdata)
impactfm_PresetChange_Kind
void impactfm_SetPresetManager(struct impactfm_CParameters *params, impactfm_storage_reader reader, impactfm_storage_reader_free, impactfm_storage_writer writer, impactfm_storage_exists exists, impactfm_storage_getall getall, impactfm_storage_getall_free getall_free, impactfm_storage_remove remove, impactfm_storage_rename rename, int IsReadOnly, void *userdata)
void impactfm_PresetManager_InformChange(struct impactfm_CInstance *instance, const fs_char *relative_path, enum impactfm_PresetChange_Kind change_kind)
int(* impactfm_storage_exists)(const fs_char *filename, void *userdata)
void(* impactfm_storage_reader_free)(char *content, void *userdata)
void(* impactfm_storage_getall_free)(fs_char **all, void *userdata)
int(* impactfm_storage_writer)(const fs_char *filename, const char *content, void *userdata)
char *(* impactfm_storage_reader)(const fs_char *filename, void *userdata)
@ change_kind_modified
Path has been modified.
@ change_kind_created
Path has been created.
@ change_kind_deleted
Path has been deleted.
void impactfm_SetInstanceTracing(struct impactfm_CParameters *params, TraceLoggingHProvider tracing_provider, GUID activity_guid)
void impactfm_SetInstanceTracingProcessActivity(struct impactfm_CInstance *instance, GUID activity_guid)
void impactfm_StopUpdateThread(struct impactfm_CInstance *instance)
int impactfm_WaitUpdateThreadReady(struct impactfm_CInstance *instance, int milliseconds)
void impactfm_StartUpdateThread(struct impactfm_CInstance *instance, unsigned int port)
int impactfm_Webserver_Status(uint64_t id)
uint64_t impactfm_Webserver(unsigned int listenport, unsigned int listenport_secure, struct impactfm_CInstance *instance)
void impactfm_Webserver_GetAppHealth(struct impactfm_CInstance *instance, int *httpcode, char **contenttype, char **content)
uint64_t impactfm_Webserver_tcp(unsigned int listenport, unsigned int listenport_secure, const char *socket_ip, unsigned int socket_port)
int impactfm_Webserver_Stop(uint64_t id, int timeout_ms)
void impactfm_Webserver_FreeString(char *str)
uint64_t impactfm_Webserver_tcp2(unsigned int listenport, unsigned int listenport_secure, const char *socket_ip, unsigned int socket_port, const struct impactfm_CParameters *parameters)
void impactfm_Webserver_SetAppHealth(struct impactfm_CInstance *instance, int httpcode, const char *contenttype, const char *content)
struct _tlgProvider_t const * TraceLoggingHProvider
const float * buffer
The output buffer of the output. See impactfm_ProcessAudio for format.
char * id
The ID of the output (fixed across versions)
char * description
The description of the output.
unsigned int sample_rate
The sampling rate of this output.
unsigned int channel_count
The number of channels of this output.
const char * version
Library version.
const char * shortname
A short name of the processor, single word.
const char * prefix
The prefix of this processor functions.
size_t struct_size
The size of total this structure, for compatibility checking.
const char * name
The name of the processor.