SOUND4 x1.CLOUD Library [1.2.6]
sound4.x1.cloud.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 CLOUDX1_DECL __attribute__ ((visibility ("default")))
10 #elif defined(_WIN32) || defined(WIN32)
11  typedef unsigned int uint;
12  #ifdef BUILDING_CLOUDX1_DLL
13  #define CLOUDX1_DECL __declspec(dllexport)
14  #else
15  #define CLOUDX1_DECL __declspec(dllimport)
16  #endif
17 #endif
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif // __cplusplus
22 
53 // --------------------------------------------------------------
72 // --------------------------------------------------------------
92 // --------------------------------------------------------------
93 
94 // --------------------------------------------------------------
106 #define CLOUDX1_AUDIOFRAME_COUNT 64
112 #define CLOUDX1_CHANNEL_COUNT 2
118 #define CLOUDX1_AUDIO_INPUT_COUNT 1
124 #define CLOUDX1_AUDIO_OUTPUT_COUNT 1
130 #define CLOUDX1_SAMPLE_RATE 48000
131 
138 
150 
159 
169 
179 
188 
193  none = 0,
194  fatal = 1,
195  error = 2,
196  warning = 3,
197  info = 4,
198  verbose = 5,
199  verbose2 = 6,
200  verbose3 = 7,
201  verbose4 = 8,
202  verbose5 = 9,
203 };
204 
211 typedef void (*cloudx1_loggerfn) (enum cloudx1_LogSeverity, const char *);
212 
223 
232 
235 // --------------------------------------------------------------
241 // --------------------------------------------------------------
245 struct cloudx1_CInstance;
246 
250 struct cloudx1_CParameters;
251 
260 
265 
271 CLOUDX1_DECL void cloudx1_SetParameter(struct cloudx1_CParameters *params, const char *name, const char *value);
272 
278 CLOUDX1_DECL const char *cloudx1_GetParameter(struct cloudx1_CParameters *params, const char *name);
279 
285 CLOUDX1_DECL void cloudx1_FreeParameterValue(const char *value);
286 
287 
294  const char *LoginKey,
295  const char *RadioName,
296  const char *AWS_Access_ID,
297  const char *AWS_Access_Secret,
298  const char *save_path
299  );
300 
339  const char *LoginKey,
340  const char *RadioName,
341  const char *AWS_Access_ID,
342  const char *AWS_Access_Secret,
343  const char *save_path,
344  const struct cloudx1_CParameters *parameters
345  );
346 
353 
356 // --------------------------------------------------------------
361 // --------------------------------------------------------------
362 
376 
383 
391 CLOUDX1_DECL int cloudx1_WaitUpdateThreadReady(struct cloudx1_CInstance *instance, int milliseconds);
392 
395 // --------------------------------------------------------------
400 // --------------------------------------------------------------
422 CLOUDX1_DECL void cloudx1_ProcessAudio(struct cloudx1_CInstance *instance, const float *input, float *output );
423 
443  , float const * const (&input)[CLOUDX1_CHANNEL_COUNT*CLOUDX1_AUDIO_INPUT_COUNT]
444  , float * const (&output)[CLOUDX1_CHANNEL_COUNT*CLOUDX1_AUDIO_OUTPUT_COUNT]);
445 
459 
473 
482 
485 // --------------------------------------------------------------
492 // --------------------------------------------------------------
493  #ifdef _MSC_VER
494  #define __BYTE_ORDER__ REG_DWORD
495  #define __ORDER_LITTLE_ENDIAN__ REG_DWORD_LITTLE_ENDIAN
496  #define __ORDER_BIG_ENDIAN__ REG_DWORD_BIG_ENDIAN
497  #endif
498 
512 
513  // Native definitions, only links to the physical ones
514  #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
519  #else
524  #endif
525 };
526 
534 
542 
550 
551 
559 
570 CLOUDX1_DECL uint cloudx1_AddAudio(struct cloudx1_CInstance *instance, const uint8_t *payload, uint nFrame, enum cloudx1_SampleFormat fmt );
571 
579 
587 
597 CLOUDX1_DECL uint cloudx1_GetAudio(struct cloudx1_CInstance *instance, uint8_t *payload, uint max_nFrame, enum cloudx1_SampleFormat fmt );
598 
602 // --------------------------------------------------------------
607 // --------------------------------------------------------------
612 
622 
629 
643 CLOUDX1_DECL const char *cloudx1_ProcessJson(struct cloudx1_CClientInstance *client, const char *json_str, int *need_save);
644 
650 CLOUDX1_DECL void cloudx1_FreeJsonAnswer(const char *json_str);
651 
662 
804 // --------------------------------------------------------------
812 // --------------------------------------------------------------
831 CLOUDX1_DECL uint64_t cloudx1_Webserver_tcp(uint listenport, uint listenport_secure, const char *socket_ip, uint socket_port);
832 
833 // --------------------------------------------------------------
853 CLOUDX1_DECL uint64_t cloudx1_Webserver_tcp2(uint listenport, uint listenport_secure, const char *socket_ip, uint socket_port, const struct cloudx1_CParameters *parameters);
854 
872 CLOUDX1_DECL uint64_t cloudx1_Webserver(uint listenport, uint listenport_secure, struct cloudx1_CInstance *instance);
873 
883 CLOUDX1_DECL int cloudx1_Webserver_Stop(uint64_t id, int timeout_ms);
884 
894 
899 #define SOUND4_INVALID_WEBSERVER_ID ((uint64_t)-1)
900 
904 #define SOUND4_WEBSERVER_HTTP_OK (1<<0)
908 #define SOUND4_WEBSERVER_HTTPS_OK (1<<1)
909 
912 #ifdef __cplusplus
913 } // extern "C"
914 #endif // __cplusplus
enum cloudx1_SampleFormat cloudx1_GetFormatFromName(const char *name)
cloudx1_SampleFormat
uint cloudx1_GetAudio(struct cloudx1_CInstance *instance, uint8_t *payload, uint max_nFrame, enum cloudx1_SampleFormat fmt)
uint cloudx1_GetBytesFromFormat(const enum cloudx1_SampleFormat fmt)
uint cloudx1_GetMaxPacketFrame(struct cloudx1_CInstance *instance)
uint cloudx1_GetOutputCount(struct cloudx1_CInstance *instance)
uint cloudx1_AddAudio(struct cloudx1_CInstance *instance, const uint8_t *payload, uint nFrame, enum cloudx1_SampleFormat fmt)
const char * cloudx1_GetFormatName(const enum cloudx1_SampleFormat fmt)
uint cloudx1_AddPadAudio(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_SaveState(struct cloudx1_CInstance *instance)
struct cloudx1_CClientInstance * cloudx1_NewClient(struct cloudx1_CInstance *instance)
void cloudx1_DeleteClient(struct cloudx1_CClientInstance *client)
void cloudx1_FreeJsonAnswer(const char *json_str)
const char * cloudx1_ProcessJson(struct cloudx1_CClientInstance *client, const char *json_str, int *need_save)
float * cloudx1_GetBufferIn(struct cloudx1_CInstance *instance)
void cloudx1_ProcessAudio(struct cloudx1_CInstance *instance, const float *input, float *output)
uint cloudx1_GetEstimatedDelay(struct cloudx1_CInstance *instance)
void cloudx1_ProcessAudio_Planar(struct cloudx1_CInstance *instance, float const *const (&input)[CLOUDX1_CHANNEL_COUNT *CLOUDX1_AUDIO_INPUT_COUNT], float *const (&output)[CLOUDX1_CHANNEL_COUNT *CLOUDX1_AUDIO_OUTPUT_COUNT])
float * cloudx1_GetBufferOut(struct cloudx1_CInstance *instance)
uint cloudx1_GetSampleRate()
#define CLOUDX1_AUDIO_INPUT_COUNT
uint cloudx1_GetChunkSizeInFrames()
const char * cloudx1_GetVersion()
uint cloudx1_GetAudioOutputCount()
cloudx1_LogSeverity
uint cloudx1_GetChannelCount()
uint cloudx1_GetAudioInputCount()
void cloudx1_SetLoggerCallback(cloudx1_loggerfn logger)
#define CLOUDX1_CHANNEL_COUNT
#define CLOUDX1_AUDIO_OUTPUT_COUNT
void(* cloudx1_loggerfn)(enum cloudx1_LogSeverity, const char *)
void cloudx1_SetLogSeverity(enum cloudx1_LogSeverity severity)
@ verbose5
@ fatal
@ warning
@ verbose4
@ info
@ none
@ error
@ verbose2
@ verbose3
@ verbose
struct cloudx1_CInstance * cloudx1_InitProcess(const char *LoginKey, const char *RadioName, const char *AWS_Access_ID, const char *AWS_Access_Secret, const char *save_path)
void cloudx1_FreeParameterValue(const char *value)
void cloudx1_ExitProcess(struct cloudx1_CInstance *instance)
void cloudx1_FreeParameters(struct cloudx1_CParameters *params)
struct cloudx1_CParameters * cloudx1_NewParameters()
void cloudx1_SetParameter(struct cloudx1_CParameters *params, const char *name, const char *value)
struct cloudx1_CInstance * cloudx1_InitProcess2(const char *LoginKey, const char *RadioName, const char *AWS_Access_ID, const char *AWS_Access_Secret, const char *save_path, const struct cloudx1_CParameters *parameters)
const char * cloudx1_GetParameter(struct cloudx1_CParameters *params, const char *name)
void cloudx1_StartUpdateThread(struct cloudx1_CInstance *instance, uint port)
int cloudx1_WaitUpdateThreadReady(struct cloudx1_CInstance *instance, int milliseconds)
void cloudx1_StopUpdateThread(struct cloudx1_CInstance *instance)
uint64_t cloudx1_Webserver_tcp(uint listenport, uint listenport_secure, const char *socket_ip, uint socket_port)
uint64_t cloudx1_Webserver_tcp2(uint listenport, uint listenport_secure, const char *socket_ip, uint socket_port, const struct cloudx1_CParameters *parameters)
int cloudx1_Webserver_Status(uint64_t id)
uint64_t cloudx1_Webserver(uint listenport, uint listenport_secure, struct cloudx1_CInstance *instance)
int cloudx1_Webserver_Stop(uint64_t id, int timeout_ms)
unsigned int uint
#define CLOUDX1_DECL