SOUND4 x1.CL Library [1.5.11]
Loading...
Searching...
No Matches
sound4.x1.cloud.h
Go to the documentation of this file.
1
4#pragma once
5
6#ifdef __unix__
7 #include <sys/types.h>
8 #define CLOUDX1_DECL __attribute__ ((visibility ("default")))
9#elif defined(_WIN32) || defined(WIN32)
10 #include <windows.h>
11 #ifdef BUILDING_CLOUDX1_DLL
12 #define CLOUDX1_DECL __declspec(dllexport)
13 #else
14 #define CLOUDX1_DECL __declspec(dllimport)
15 #endif
16 #ifdef _MSC_VER
17 #pragma warning(disable : 4996)
18 #endif
19#elif defined(__APPLE__)
20 #include <sys/types.h>
21 #define CLOUDX1_DECL __attribute__ ((visibility ("default")))
22#endif
23#include <stdint.h>
24
25#define CLOUDX1_HAS_WEBSERVER 1
26#define CLOUDX1_HAS_CLOUDBUS 0
27
28#ifdef __cplusplus
29extern "C" {
30#endif // __cplusplus
31
32// --------------------------------------------------------------
46#define CLOUDX1_AUDIOFRAME_COUNT 64
52#define CLOUDX1_CHANNEL_COUNT 2
58#define CLOUDX1_AUDIO_INPUT_COUNT 1
64#define CLOUDX1_AUDIO_OUTPUT_COUNT 1
70#define CLOUDX1_SAMPLE_RATE 48000
71
78 size_t struct_size;
79 const char *name;
80 const char *prefix;
81 const char *shortname;
82 const char *version;
83};
84
93
100
114
124
133
143
153
162
178
185typedef void (*cloudx1_loggerfn) (enum cloudx1_LogSeverity, const char *);
186
197
206
209// --------------------------------------------------------------
217// --------------------------------------------------------------
221struct cloudx1_CInstance;
222
227
236
241
253CLOUDX1_DECL void cloudx1_SetParameter(struct cloudx1_CParameters *params, const char *name, const char *value);
254
260CLOUDX1_DECL const char *cloudx1_GetParameter(struct cloudx1_CParameters *params, const char *name);
261
268
277 const char *LoginKey,
278 const char *RadioName,
279 const char *Access_Key_ID,
280 const char *Access_Key_Secret,
281 const char *save_path
282 );
283
292 const char *LoginKey,
293 const char *RadioName,
294 const char *Access_Key_ID,
295 const char *Access_Key_Secret,
296 const char *save_path,
297 const struct cloudx1_CParameters *parameters
298 );
299
328 const char *LoginKey,
329 const char *RadioName,
330 const char *Access_Key_ID,
331 const char *Access_Key_Secret,
332 const char *save_path,
333 const struct cloudx1_CParameters *parameters,
334 unsigned int frames_per_chunk
335 );
336
349
360
367
370#if CLOUDX1_HAS_CLOUDBUS
371// --------------------------------------------------------------
381struct cloudx1_CBus;
382
388CLOUDX1_DECL struct cloudx1_CBus* cloudx1_NewBus();
389
395CLOUDX1_DECL void cloudx1_FreeBus(struct cloudx1_CBus *bus);
396
406CLOUDX1_DECL void cloudx1_SetInstanceBus(struct cloudx1_CParameters *params, struct cloudx1_CBus *bus);
407
408
410#endif // CLOUDX1_HAS_CLOUDBUS
411
412// --------------------------------------------------------------
413// Tracing (Windows only)
414// --------------------------------------------------------------
415#ifdef _WIN32
416#ifndef TLG_HAVE_EVENT_SET_INFORMATION // TraceLoggingProvider.h has not been included
417 struct _tlgProvider_t;
418 typedef struct _tlgProvider_t const* TraceLoggingHProvider;
419#endif // !TLG_HAVE_EVENT_SET_INFORMATION
420// --------------------------------------------------------------
435CLOUDX1_DECL void cloudx1_SetInstanceTracing(struct cloudx1_CParameters *params, TraceLoggingHProvider tracing_provider, GUID activity_guid);
436
445
447#endif // _WIN32
448
449// --------------------------------------------------------------
472// --------------------------------------------------------------
473
474// OS dependent filesystem path char type
475#ifdef _WIN32
476 typedef wchar_t fs_char;
477#else // !_WIN32
478 typedef char fs_char;
479#endif // !_WIN32
480
488typedef char * (*cloudx1_storage_reader) (const fs_char *filename, void* userdata);
489
496typedef void (*cloudx1_storage_reader_free) (char *content, void* userdata);
497
506typedef int (*cloudx1_storage_writer) (const fs_char *filename, const char *content, void* userdata);
507
515typedef int (*cloudx1_storage_exists) (const fs_char *filename, void* userdata);
516
524typedef fs_char** (*cloudx1_storage_getall) (void* userdata);
525
532typedef void (*cloudx1_storage_getall_free) (fs_char**all, void* userdata);
533
541typedef int (*cloudx1_storage_remove) (const fs_char *filename, void* userdata);
542
551typedef int (*cloudx1_storage_rename) (const fs_char *from, const fs_char *to, void* userdata);
552
577 , int IsReadOnly
578 , void* userdata
579 );
580
589
598CLOUDX1_DECL void cloudx1_PresetManager_InformChange(struct cloudx1_CInstance *instance, const fs_char *relative_path, enum cloudx1_PresetChange_Kind change_kind);
599
602// --------------------------------------------------------------
610// --------------------------------------------------------------
611
628CLOUDX1_DECL void cloudx1_SetMetadata(struct cloudx1_CInstance *instance, const char* key, const char* value);
629
640CLOUDX1_DECL void cloudx1_SetMetadataMulti(struct cloudx1_CInstance *instance, const char** keyvalue);
641
650
657CLOUDX1_DECL void cloudx1_FreeMetadataInfos(struct cloudx1_CInstance *instance, const char** infos);
658
661// --------------------------------------------------------------
668// --------------------------------------------------------------
669
682CLOUDX1_DECL void cloudx1_StartUpdateThread(struct cloudx1_CInstance *instance, unsigned int port);
683
690
698CLOUDX1_DECL int cloudx1_WaitUpdateThreadReady(struct cloudx1_CInstance *instance, int milliseconds);
699
702// --------------------------------------------------------------
709// --------------------------------------------------------------
731CLOUDX1_DECL void cloudx1_ProcessAudio(struct cloudx1_CInstance *instance, const float *input, float *output );
732
752 , float const * const *input
753 , float * const *output);
754
768
782
793
796// --------------------------------------------------------------
806// --------------------------------------------------------------
811 char *id;
813 unsigned int sample_rate;
814 unsigned int channel_count;
815 const float *buffer;
816};
817
826
833
844
856CLOUDX1_DECL unsigned int cloudx1_GetAuxiliaryAudioEstimatedDelay(struct cloudx1_CInstance *instance, const char* id);
857
860// --------------------------------------------------------------
869// --------------------------------------------------------------
870 #ifdef _MSC_VER
871 #define __BYTE_ORDER__ REG_DWORD
872 #define __ORDER_LITTLE_ENDIAN__ REG_DWORD_LITTLE_ENDIAN
873 #define __ORDER_BIG_ENDIAN__ REG_DWORD_BIG_ENDIAN
874 #endif
875
889
890 // Native definitions, only links to the physical ones
891 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
896 #else
901 #endif
902};
903
911
919
927
928
936
947CLOUDX1_DECL unsigned int cloudx1_AddAudio(struct cloudx1_CInstance *instance, const uint8_t *payload, unsigned int nFrame, enum cloudx1_SampleFormat fmt );
948
956
964
974CLOUDX1_DECL unsigned int cloudx1_GetAudio(struct cloudx1_CInstance *instance, uint8_t *payload, unsigned int max_nFrame, enum cloudx1_SampleFormat fmt );
975
979// --------------------------------------------------------------
986// --------------------------------------------------------------
997CLOUDX1_DECL void cloudx1_AudioConvertFrom(const uint8_t *payload, float *output, size_t nSpl, enum cloudx1_SampleFormat fmt);
998
1009CLOUDX1_DECL void cloudx1_AudioConvertTo(const float *input, uint8_t *payload, size_t nSpl, enum cloudx1_SampleFormat fmt);
1010
1020CLOUDX1_DECL void cloudx1_StereoToMono(const float *input, float *output, size_t nFrame);
1021
1031CLOUDX1_DECL void cloudx1_MonoToStereo(const float *input, float *output, size_t nFrame);
1032
1043CLOUDX1_DECL void cloudx1_StereoToMono_Planar(const float *inputL, const float *inputR, float *output, size_t nFrame);
1044
1055CLOUDX1_DECL void cloudx1_MonoToStereo_Planar(const float *input, float *outputL, float *outputR, size_t nFrame);
1056
1063CLOUDX1_DECL void cloudx1_AudioMonoFromLiveStereo(const uint8_t *payload, float *output);
1064
1071CLOUDX1_DECL void cloudx1_AudioMonoToLiveStereo(const float *input, uint8_t *payload);
1072
1075// --------------------------------------------------------------
1082// --------------------------------------------------------------
1087
1097
1104
1118CLOUDX1_DECL const char *cloudx1_ProcessJson(struct cloudx1_CClientInstance *client, const char *json_str, int *need_save);
1119
1125CLOUDX1_DECL void cloudx1_FreeJsonAnswer(const char *json_str);
1126
1139
1142#if CLOUDX1_HAS_WEBSERVER
1143// --------------------------------------------------------------
1161// --------------------------------------------------------------
1169CLOUDX1_DECL uint64_t cloudx1_Webserver_tcp(unsigned int listenport, unsigned int listenport_secure, const char *socket_ip, unsigned int socket_port);
1170
1171// --------------------------------------------------------------
1191CLOUDX1_DECL uint64_t cloudx1_Webserver_tcp2(unsigned int listenport, unsigned int listenport_secure, const char *socket_ip, unsigned int socket_port, const struct cloudx1_CParameters *parameters);
1192
1210CLOUDX1_DECL uint64_t cloudx1_Webserver(unsigned int listenport, unsigned int listenport_secure, struct cloudx1_CInstance *instance);
1211
1221CLOUDX1_DECL int cloudx1_Webserver_Stop(uint64_t id, int timeout_ms);
1222
1232
1243CLOUDX1_DECL void cloudx1_Webserver_SetAppHealth(struct cloudx1_CInstance *instance, int httpcode, const char *contenttype, const char *content);
1244
1253CLOUDX1_DECL void cloudx1_Webserver_GetAppHealth(struct cloudx1_CInstance *instance, int* httpcode, char** contenttype, char** content);
1254
1261
1266#define SOUND4_INVALID_WEBSERVER_ID ((uint64_t)-1)
1267
1271#define SOUND4_WEBSERVER_HTTP_OK (1<<0)
1275#define SOUND4_WEBSERVER_HTTPS_OK (1<<1)
1276
1278#endif // CLOUDX1_HAS_WEBSERVER
1279
1280#ifdef __cplusplus
1281} // extern "C"
1282#endif // __cplusplus
enum cloudx1_SampleFormat cloudx1_GetFormatFromName(const char *name)
cloudx1_SampleFormat
const char * cloudx1_GetFormatName(const enum cloudx1_SampleFormat fmt)
unsigned int cloudx1_GetOutputCount(struct cloudx1_CInstance *instance)
unsigned int cloudx1_AddAudio(struct cloudx1_CInstance *instance, const uint8_t *payload, unsigned int nFrame, enum cloudx1_SampleFormat fmt)
unsigned int cloudx1_AddPadAudio(struct cloudx1_CInstance *instance)
unsigned int cloudx1_GetBytesFromFormat(const enum cloudx1_SampleFormat fmt)
unsigned int cloudx1_GetAudio(struct cloudx1_CInstance *instance, uint8_t *payload, unsigned int max_nFrame, enum cloudx1_SampleFormat fmt)
unsigned int cloudx1_GetMaxPacketFrame(struct cloudx1_CInstance *instance)
@ F32_NATIVE
32-bit floating-point, native
@ INVALID_FORMAT
Invalid.
@ 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
int cloudx1_ActivateAuxiliaryAudioID(struct cloudx1_CInstance *instance, const char *id)
unsigned int cloudx1_GetAuxiliaryAudioEstimatedDelay(struct cloudx1_CInstance *instance, const char *id)
void cloudx1_FreeAuxiliaryAudioInfos(struct SOUND4_AuxiliaryOutputInfos **infos)
struct SOUND4_AuxiliaryOutputInfos ** cloudx1_GetAuxiliaryAudioOutputInfos(struct cloudx1_CInstance *instance)
struct cloudx1_CClientInstance * cloudx1_NewClient(struct cloudx1_CInstance *instance)
int cloudx1_SaveState(struct cloudx1_CInstance *instance)
void cloudx1_DeleteClient(struct cloudx1_CClientInstance *client)
const char * cloudx1_ProcessJson(struct cloudx1_CClientInstance *client, const char *json_str, int *need_save)
void cloudx1_FreeJsonAnswer(const char *json_str)
void cloudx1_AudioConvertTo(const float *input, uint8_t *payload, size_t nSpl, enum cloudx1_SampleFormat fmt)
void cloudx1_AudioMonoToLiveStereo(const float *input, uint8_t *payload)
void cloudx1_MonoToStereo_Planar(const float *input, float *outputL, float *outputR, size_t nFrame)
void cloudx1_StereoToMono(const float *input, float *output, size_t nFrame)
void cloudx1_AudioConvertFrom(const uint8_t *payload, float *output, size_t nSpl, enum cloudx1_SampleFormat fmt)
void cloudx1_MonoToStereo(const float *input, float *output, size_t nFrame)
void cloudx1_AudioMonoFromLiveStereo(const uint8_t *payload, float *output)
void cloudx1_StereoToMono_Planar(const float *inputL, const float *inputR, float *output, size_t nFrame)
float * cloudx1_GetBufferOut(struct cloudx1_CInstance *instance)
void cloudx1_ProcessAudio_Planar(struct cloudx1_CInstance *instance, float const *const *input, float *const *output)
void cloudx1_ProcessAudio(struct cloudx1_CInstance *instance, const float *input, float *output)
unsigned int cloudx1_GetEstimatedDelay(struct cloudx1_CInstance *instance)
float * cloudx1_GetBufferIn(struct cloudx1_CInstance *instance)
unsigned int * cloudx1_GetPossibleChunkSizeInFrames()
unsigned int cloudx1_GetAudioInputCount()
const struct SOUND4_ProcessInfo * SOUND4_GetProcessInfo()
cloudx1_LogSeverity
unsigned int cloudx1_GetChunkSizeInFrames()
unsigned int cloudx1_GetAudioOutputCount()
unsigned int cloudx1_GetChannelCount()
void cloudx1_SetLoggerCallback(cloudx1_loggerfn logger)
unsigned int cloudx1_GetSampleRate()
const char * cloudx1_GetVersion()
void(* cloudx1_loggerfn)(enum cloudx1_LogSeverity, const char *)
void cloudx1_SetLogSeverity(enum cloudx1_LogSeverity severity)
@ verbose5
verbose5
@ fatal
fatal error
@ warning
warning
@ verbose4
verbose4
@ info
info
@ none
Not used.
@ error
error
@ verbose2
verbose2
@ verbose3
verbose3
@ verbose
verbose
void cloudx1_FreeParameterValue(const char *value)
void cloudx1_ExitProcess(struct cloudx1_CInstance *instance)
void cloudx1_FreeParameters(struct cloudx1_CParameters *params)
void cloudx1_SetParameter(struct cloudx1_CParameters *params, const char *name, const char *value)
struct cloudx1_CParameters * cloudx1_NewParameters()
int cloudx1_TerminateProcess(struct cloudx1_CInstance *instance)
struct cloudx1_CInstance * cloudx1_InitProcess2(const char *LoginKey, const char *RadioName, const char *Access_Key_ID, const char *Access_Key_Secret, const char *save_path, const struct cloudx1_CParameters *parameters)
const char * cloudx1_GetParameter(struct cloudx1_CParameters *params, const char *name)
unsigned int cloudx1_GetProcessChunkFrames(struct cloudx1_CInstance *instance)
struct cloudx1_CInstance * cloudx1_InitProcess(const char *LoginKey, const char *RadioName, const char *Access_Key_ID, const char *Access_Key_Secret, const char *save_path)
struct cloudx1_CInstance * cloudx1_InitProcess3(const char *LoginKey, const char *RadioName, const char *Access_Key_ID, const char *Access_Key_Secret, const char *save_path, const struct cloudx1_CParameters *parameters, unsigned int frames_per_chunk)
const char ** cloudx1_GetMetadataInfos(struct cloudx1_CInstance *instance)
void cloudx1_SetMetadata(struct cloudx1_CInstance *instance, const char *key, const char *value)
void cloudx1_FreeMetadataInfos(struct cloudx1_CInstance *instance, const char **infos)
void cloudx1_SetMetadataMulti(struct cloudx1_CInstance *instance, const char **keyvalue)
int(* cloudx1_storage_remove)(const fs_char *filename, void *userdata)
cloudx1_PresetChange_Kind
int(* cloudx1_storage_writer)(const fs_char *filename, const char *content, void *userdata)
fs_char **(* cloudx1_storage_getall)(void *userdata)
char *(* cloudx1_storage_reader)(const fs_char *filename, void *userdata)
void cloudx1_SetPresetManager(struct cloudx1_CParameters *params, cloudx1_storage_reader reader, cloudx1_storage_reader_free, cloudx1_storage_writer writer, cloudx1_storage_exists exists, cloudx1_storage_getall getall, cloudx1_storage_getall_free getall_free, cloudx1_storage_remove remove, cloudx1_storage_rename rename, int IsReadOnly, void *userdata)
void(* cloudx1_storage_reader_free)(char *content, void *userdata)
int(* cloudx1_storage_rename)(const fs_char *from, const fs_char *to, void *userdata)
int(* cloudx1_storage_exists)(const fs_char *filename, void *userdata)
void cloudx1_PresetManager_InformChange(struct cloudx1_CInstance *instance, const fs_char *relative_path, enum cloudx1_PresetChange_Kind change_kind)
void(* cloudx1_storage_getall_free)(fs_char **all, void *userdata)
wchar_t fs_char
@ change_kind_modified
Path has been modified.
@ change_kind_created
Path has been created.
@ change_kind_deleted
Path has been deleted.
void cloudx1_SetInstanceTracingProcessActivity(struct cloudx1_CInstance *instance, GUID activity_guid)
void cloudx1_SetInstanceTracing(struct cloudx1_CParameters *params, TraceLoggingHProvider tracing_provider, GUID activity_guid)
void cloudx1_StartUpdateThread(struct cloudx1_CInstance *instance, unsigned int port)
int cloudx1_WaitUpdateThreadReady(struct cloudx1_CInstance *instance, int milliseconds)
void cloudx1_StopUpdateThread(struct cloudx1_CInstance *instance)
uint64_t cloudx1_Webserver_tcp2(unsigned int listenport, unsigned int listenport_secure, const char *socket_ip, unsigned int socket_port, const struct cloudx1_CParameters *parameters)
uint64_t cloudx1_Webserver(unsigned int listenport, unsigned int listenport_secure, struct cloudx1_CInstance *instance)
uint64_t cloudx1_Webserver_tcp(unsigned int listenport, unsigned int listenport_secure, const char *socket_ip, unsigned int socket_port)
void cloudx1_Webserver_FreeString(char *str)
int cloudx1_Webserver_Status(uint64_t id)
int cloudx1_Webserver_Stop(uint64_t id, int timeout_ms)
void cloudx1_Webserver_GetAppHealth(struct cloudx1_CInstance *instance, int *httpcode, char **contenttype, char **content)
void cloudx1_Webserver_SetAppHealth(struct cloudx1_CInstance *instance, int httpcode, const char *contenttype, const char *content)
struct _tlgProvider_t const * TraceLoggingHProvider
#define CLOUDX1_DECL
const float * buffer
The output buffer of the output. See cloudx1_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.