SOUND4 BIGVOICE.CL Library [1.0.3]
sound4.bigvoice.cl.h
Go to the documentation of this file.
1 
4 #pragma once
5 
6 #include <stdint.h>
7 #ifdef __unix__
8  #include <sys/types.h>
9  #define BIGVOICE_DECL __attribute__ ((visibility ("default")))
10 #elif defined(_WIN32) || defined(WIN32)
11  #ifdef BUILDING_BIGVOICE_DLL
12  #define BIGVOICE_DECL __declspec(dllexport)
13  #else
14  #define BIGVOICE_DECL __declspec(dllimport)
15  #endif
16 #endif
17 
18 #define BIGVOICE_HAS_WEBSERVER 1
19 #define BIGVOICE_HAS_CLOUDBUS 1
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif // __cplusplus
24 
70 // --------------------------------------------------------------
89 // --------------------------------------------------------------
142 // --------------------------------------------------------------
143 
144 // --------------------------------------------------------------
156 #define BIGVOICE_AUDIOFRAME_COUNT 12
162 #define BIGVOICE_CHANNEL_COUNT 1
168 #define BIGVOICE_AUDIO_INPUT_COUNT 1
174 #define BIGVOICE_AUDIO_OUTPUT_COUNT 1
180 #define BIGVOICE_SAMPLE_RATE 48000
181 
188  size_t struct_size;
189  const char *name;
190  const char *prefix;
191  const char *shortname;
192  const char *version;
193 };
194 
203 
210 
224 
234 
243 
253 
263 
272 
277  none = 0,
278  fatal = 1,
279  error = 2,
280  warning = 3,
281  info = 4,
282  verbose = 5,
283  verbose2 = 6,
284  verbose3 = 7,
285  verbose4 = 8,
286  verbose5 = 9,
287 };
288 
295 typedef void (*bigvoice_loggerfn) (enum bigvoice_LogSeverity, const char *);
296 
307 
316 
319 // --------------------------------------------------------------
325 // --------------------------------------------------------------
329 struct bigvoice_CInstance;
330 
334 struct bigvoice_CParameters;
335 
344 
349 
361 BIGVOICE_DECL void bigvoice_SetParameter(struct bigvoice_CParameters *params, const char *name, const char *value);
362 
368 BIGVOICE_DECL const char *bigvoice_GetParameter(struct bigvoice_CParameters *params, const char *name);
369 
376 
385  const char *LoginKey,
386  const char *RadioName,
387  const char *Access_Key_ID,
388  const char *Access_Key_Secret,
389  const char *save_path
390  );
391 
400  const char *LoginKey,
401  const char *RadioName,
402  const char *Access_Key_ID,
403  const char *Access_Key_Secret,
404  const char *save_path,
405  const struct bigvoice_CParameters *parameters
406  );
407 
453  const char *LoginKey,
454  const char *RadioName,
455  const char *Access_Key_ID,
456  const char *Access_Key_Secret,
457  const char *save_path,
458  const struct bigvoice_CParameters *parameters,
459  unsigned int frames_per_chunk
460  );
461 
474 
485 
492 
495 #if BIGVOICE_HAS_CLOUDBUS
496 // --------------------------------------------------------------
505 struct bigvoice_CBus;
506 
513 
520 
531 
532 
534 #endif // BIGVOICE_HAS_CLOUDBUS
535 
536 // --------------------------------------------------------------
559 // --------------------------------------------------------------
560 
561 // OS dependent filesystem path char type
562 #ifdef _WIN32
563  typedef wchar_t fs_char;
564 #else // !_WIN32
565  typedef char fs_char;
566 #endif // !_WIN32
567 
575 typedef char * (*bigvoice_storage_reader) (const fs_char *filename, void* userdata);
576 
583 typedef void (*bigvoice_storage_reader_free) (char *content, void* userdata);
584 
593 typedef int (*bigvoice_storage_writer) (const fs_char *filename, const char *content, void* userdata);
594 
602 typedef int (*bigvoice_storage_exists) (const fs_char *filename, void* userdata);
603 
611 typedef fs_char** (*bigvoice_storage_getall) (void* userdata);
612 
619 typedef void (*bigvoice_storage_getall_free) (fs_char**all, void* userdata);
620 
628 typedef int (*bigvoice_storage_remove) (const fs_char *filename, void* userdata);
629 
638 typedef int (*bigvoice_storage_rename) (const fs_char *from, const fs_char *to, void* userdata);
639 
659  , bigvoice_storage_writer writer
660  , bigvoice_storage_exists exists
662  , bigvoice_storage_remove remove
663  , bigvoice_storage_rename rename
664  , int IsReadOnly
665  , void* userdata
666  );
667 
675 };
676 
685 BIGVOICE_DECL void bigvoice_PresetManager_InformChange(struct bigvoice_CInstance *instance, const fs_char *relative_path, enum bigvoice_PresetChange_Kind change_kind);
686 
689 // --------------------------------------------------------------
697 // --------------------------------------------------------------
698 
715 BIGVOICE_DECL void bigvoice_SetMetadata(struct bigvoice_CInstance *instance, const char* key, const char* value);
716 
727 BIGVOICE_DECL void bigvoice_SetMetadataMulti(struct bigvoice_CInstance *instance, const char** keyvalue);
728 
737 
744 BIGVOICE_DECL void bigvoice_FreeMetadataInfos(struct bigvoice_CInstance *instance, const char** infos);
745 
748 // --------------------------------------------------------------
753 // --------------------------------------------------------------
754 
767 BIGVOICE_DECL void bigvoice_StartUpdateThread(struct bigvoice_CInstance *instance, unsigned int port);
768 
775 
783 BIGVOICE_DECL int bigvoice_WaitUpdateThreadReady(struct bigvoice_CInstance *instance, int milliseconds);
784 
787 // --------------------------------------------------------------
792 // --------------------------------------------------------------
814 BIGVOICE_DECL void bigvoice_ProcessAudio(struct bigvoice_CInstance *instance, const float *input, float *output );
815 
835  , float const * const *input
836  , float * const *output);
837 
851 
865 
874 
877 // --------------------------------------------------------------
884 // --------------------------------------------------------------
885  #ifdef _MSC_VER
886  #define __BYTE_ORDER__ REG_DWORD
887  #define __ORDER_LITTLE_ENDIAN__ REG_DWORD_LITTLE_ENDIAN
888  #define __ORDER_BIG_ENDIAN__ REG_DWORD_BIG_ENDIAN
889  #endif
890 
904 
905  // Native definitions, only links to the physical ones
906  #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
911  #else
916  #endif
917 };
918 
926 
934 
942 
943 
951 
962 BIGVOICE_DECL unsigned int bigvoice_AddAudio(struct bigvoice_CInstance *instance, const uint8_t *payload, unsigned int nFrame, enum bigvoice_SampleFormat fmt );
963 
971 
979 
989 BIGVOICE_DECL unsigned int bigvoice_GetAudio(struct bigvoice_CInstance *instance, uint8_t *payload, unsigned int max_nFrame, enum bigvoice_SampleFormat fmt );
990 
994 // --------------------------------------------------------------
998 // --------------------------------------------------------------
1009 BIGVOICE_DECL void bigvoice_AudioConvertFrom(const uint8_t *payload, float *output, size_t nSpl, enum bigvoice_SampleFormat fmt);
1010 
1021 BIGVOICE_DECL void bigvoice_AudioConvertTo(const float *input, uint8_t *payload, size_t nSpl, enum bigvoice_SampleFormat fmt);
1022 
1032 BIGVOICE_DECL void bigvoice_StereoToMono(const float *input, float *output, size_t nFrame);
1033 
1043 BIGVOICE_DECL void bigvoice_MonoToStereo(const float *input, float *output, size_t nFrame);
1044 
1055 BIGVOICE_DECL void bigvoice_StereoToMono_Planar(const float *inputL, const float *inputR, float *output, size_t nFrame);
1056 
1067 BIGVOICE_DECL void bigvoice_MonoToStereo_Planar(const float *input, float *outputL, float *outputR, size_t nFrame);
1068 
1075 BIGVOICE_DECL void bigvoice_AudioMonoFromLiveStereo(const uint8_t *payload, float *output);
1076 
1083 BIGVOICE_DECL void bigvoice_AudioMonoToLiveStereo(const float *input, uint8_t *payload);
1084 
1087 // --------------------------------------------------------------
1092 // --------------------------------------------------------------
1097 
1107 
1114 
1128 BIGVOICE_DECL const char *bigvoice_ProcessJson(struct bigvoice_CClientInstance *client, const char *json_str, int *need_save);
1129 
1135 BIGVOICE_DECL void bigvoice_FreeJsonAnswer(const char *json_str);
1136 
1149 
1445 #if BIGVOICE_HAS_WEBSERVER
1446 // --------------------------------------------------------------
1454 // --------------------------------------------------------------
1473 BIGVOICE_DECL uint64_t bigvoice_Webserver_tcp(unsigned int listenport, unsigned int listenport_secure, const char *socket_ip, unsigned int socket_port);
1474 
1475 // --------------------------------------------------------------
1495 BIGVOICE_DECL uint64_t bigvoice_Webserver_tcp2(unsigned int listenport, unsigned int listenport_secure, const char *socket_ip, unsigned int socket_port, const struct bigvoice_CParameters *parameters);
1496 
1514 BIGVOICE_DECL uint64_t bigvoice_Webserver(unsigned int listenport, unsigned int listenport_secure, struct bigvoice_CInstance *instance);
1515 
1525 BIGVOICE_DECL int bigvoice_Webserver_Stop(uint64_t id, int timeout_ms);
1526 
1536 
1541 #define SOUND4_INVALID_WEBSERVER_ID ((uint64_t)-1)
1542 
1546 #define SOUND4_WEBSERVER_HTTP_OK (1<<0)
1550 #define SOUND4_WEBSERVER_HTTPS_OK (1<<1)
1551 
1553 #endif // BIGVOICE_HAS_WEBSERVER
1554 
1555 #ifdef __cplusplus
1556 } // extern "C"
1557 #endif // __cplusplus
unsigned int bigvoice_GetOutputCount(struct bigvoice_CInstance *instance)
unsigned int bigvoice_GetAudio(struct bigvoice_CInstance *instance, uint8_t *payload, unsigned int max_nFrame, enum bigvoice_SampleFormat fmt)
unsigned int bigvoice_GetMaxPacketFrame(struct bigvoice_CInstance *instance)
bigvoice_SampleFormat
const char * bigvoice_GetFormatName(const enum bigvoice_SampleFormat fmt)
unsigned int bigvoice_GetBytesFromFormat(const enum bigvoice_SampleFormat fmt)
unsigned int bigvoice_AddPadAudio(struct bigvoice_CInstance *instance)
enum bigvoice_SampleFormat bigvoice_GetFormatFromName(const char *name)
unsigned int bigvoice_AddAudio(struct bigvoice_CInstance *instance, const uint8_t *payload, unsigned int nFrame, enum bigvoice_SampleFormat fmt)
@ 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 bigvoice_SaveState(struct bigvoice_CInstance *instance)
void bigvoice_DeleteClient(struct bigvoice_CClientInstance *client)
const char * bigvoice_ProcessJson(struct bigvoice_CClientInstance *client, const char *json_str, int *need_save)
void bigvoice_FreeJsonAnswer(const char *json_str)
struct bigvoice_CClientInstance * bigvoice_NewClient(struct bigvoice_CInstance *instance)
struct bigvoice_CBus * bigvoice_NewBus()
void bigvoice_FreeBus(struct bigvoice_CBus *bus)
void bigvoice_SetInstanceBus(struct bigvoice_CParameters *params, struct bigvoice_CBus *bus)
void bigvoice_AudioConvertTo(const float *input, uint8_t *payload, size_t nSpl, enum bigvoice_SampleFormat fmt)
void bigvoice_AudioConvertFrom(const uint8_t *payload, float *output, size_t nSpl, enum bigvoice_SampleFormat fmt)
void bigvoice_AudioMonoToLiveStereo(const float *input, uint8_t *payload)
void bigvoice_StereoToMono_Planar(const float *inputL, const float *inputR, float *output, size_t nFrame)
void bigvoice_MonoToStereo_Planar(const float *input, float *outputL, float *outputR, size_t nFrame)
void bigvoice_AudioMonoFromLiveStereo(const uint8_t *payload, float *output)
void bigvoice_MonoToStereo(const float *input, float *output, size_t nFrame)
void bigvoice_StereoToMono(const float *input, float *output, size_t nFrame)
void bigvoice_ProcessAudio(struct bigvoice_CInstance *instance, const float *input, float *output)
unsigned int bigvoice_GetEstimatedDelay(struct bigvoice_CInstance *instance)
float * bigvoice_GetBufferOut(struct bigvoice_CInstance *instance)
void bigvoice_ProcessAudio_Planar(struct bigvoice_CInstance *instance, float const *const *input, float *const *output)
float * bigvoice_GetBufferIn(struct bigvoice_CInstance *instance)
const char * bigvoice_GetVersion()
bigvoice_LogSeverity
unsigned int * bigvoice_GetPossibleChunkSizeInFrames()
void(* bigvoice_loggerfn)(enum bigvoice_LogSeverity, const char *)
unsigned int bigvoice_GetAudioInputCount()
unsigned int bigvoice_GetChannelCount()
void bigvoice_SetLoggerCallback(bigvoice_loggerfn logger)
void bigvoice_SetLogSeverity(enum bigvoice_LogSeverity severity)
const struct SOUND4_ProcessInfo * SOUND4_GetProcessInfo()
unsigned int bigvoice_GetChunkSizeInFrames()
unsigned int bigvoice_GetAudioOutputCount()
unsigned int bigvoice_GetSampleRate()
@ verbose5
@ warning
@ verbose4
@ verbose2
@ verbose3
@ verbose
void bigvoice_FreeParameterValue(const char *value)
int bigvoice_TerminateProcess(struct bigvoice_CInstance *instance)
void bigvoice_FreeParameters(struct bigvoice_CParameters *params)
struct bigvoice_CInstance * bigvoice_InitProcess(const char *LoginKey, const char *RadioName, const char *Access_Key_ID, const char *Access_Key_Secret, const char *save_path)
void bigvoice_ExitProcess(struct bigvoice_CInstance *instance)
unsigned int bigvoice_GetProcessChunkFrames(struct bigvoice_CInstance *instance)
const char * bigvoice_GetParameter(struct bigvoice_CParameters *params, const char *name)
struct bigvoice_CParameters * bigvoice_NewParameters()
void bigvoice_SetParameter(struct bigvoice_CParameters *params, const char *name, const char *value)
struct bigvoice_CInstance * bigvoice_InitProcess2(const char *LoginKey, const char *RadioName, const char *Access_Key_ID, const char *Access_Key_Secret, const char *save_path, const struct bigvoice_CParameters *parameters)
struct bigvoice_CInstance * bigvoice_InitProcess3(const char *LoginKey, const char *RadioName, const char *Access_Key_ID, const char *Access_Key_Secret, const char *save_path, const struct bigvoice_CParameters *parameters, unsigned int frames_per_chunk)
void bigvoice_FreeMetadataInfos(struct bigvoice_CInstance *instance, const char **infos)
void bigvoice_SetMetadata(struct bigvoice_CInstance *instance, const char *key, const char *value)
void bigvoice_SetMetadataMulti(struct bigvoice_CInstance *instance, const char **keyvalue)
const char ** bigvoice_GetMetadataInfos(struct bigvoice_CInstance *instance)
char *(* bigvoice_storage_reader)(const fs_char *filename, void *userdata)
void(* bigvoice_storage_getall_free)(fs_char **all, void *userdata)
int(* bigvoice_storage_exists)(const fs_char *filename, void *userdata)
fs_char **(* bigvoice_storage_getall)(void *userdata)
int(* bigvoice_storage_remove)(const fs_char *filename, void *userdata)
int(* bigvoice_storage_writer)(const fs_char *filename, const char *content, void *userdata)
bigvoice_PresetChange_Kind
void bigvoice_SetPresetManager(struct bigvoice_CParameters *params, bigvoice_storage_reader reader, bigvoice_storage_reader_free, bigvoice_storage_writer writer, bigvoice_storage_exists exists, bigvoice_storage_getall getall, bigvoice_storage_getall_free getall_free, bigvoice_storage_remove remove, bigvoice_storage_rename rename, int IsReadOnly, void *userdata)
void(* bigvoice_storage_reader_free)(char *content, void *userdata)
void bigvoice_PresetManager_InformChange(struct bigvoice_CInstance *instance, const fs_char *relative_path, enum bigvoice_PresetChange_Kind change_kind)
wchar_t fs_char
int(* bigvoice_storage_rename)(const fs_char *from, const fs_char *to, void *userdata)
@ change_kind_modified
Path has been modified.
@ change_kind_created
Path has been created.
@ change_kind_deleted
Path has been deleted.
void bigvoice_StopUpdateThread(struct bigvoice_CInstance *instance)
int bigvoice_WaitUpdateThreadReady(struct bigvoice_CInstance *instance, int milliseconds)
void bigvoice_StartUpdateThread(struct bigvoice_CInstance *instance, unsigned int port)
uint64_t bigvoice_Webserver_tcp(unsigned int listenport, unsigned int listenport_secure, const char *socket_ip, unsigned int socket_port)
uint64_t bigvoice_Webserver(unsigned int listenport, unsigned int listenport_secure, struct bigvoice_CInstance *instance)
int bigvoice_Webserver_Stop(uint64_t id, int timeout_ms)
uint64_t bigvoice_Webserver_tcp2(unsigned int listenport, unsigned int listenport_secure, const char *socket_ip, unsigned int socket_port, const struct bigvoice_CParameters *parameters)
int bigvoice_Webserver_Status(uint64_t id)
#define BIGVOICE_DECL
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.