#ifndef __DDS_H__ #define __DDS_H__ #ifdef __cplusplus extern "C" { #endif #if (!(defined DDS_CALL) || !(defined DDS_IMPORT_OR_EXPORT)) #if defined _WIN32 #if defined _WIN64 #define DDS_CALL __stdcall #else #define DDS_CALL #endif #ifdef DDS_IMPLEMENTION #define DDS_IMPORT_OR_EXPORT __declspec(dllexport) #else #define DDS_IMPORT_OR_EXPORT __declspec(dllimport) #endif #elif defined __ANDROID__ #define DDS_CALL #define DDS_IMPORT_OR_EXPORT #undef JNIEXPORT #define JNIEXPORT __attribute ((visibility("default"))) #elif defined __APPLE__ #define DDS_CALL #define DDS_IMPORT_OR_EXPORT #elif defined __unix__ #define DDS_CALL #define DDS_IMPORT_OR_EXPORT __attribute ((visibility("default"))) #else #define DDS_CALL #define DDS_IMPORT_OR_EXPORT #endif #endif #define DDS_VERSION "DDS 0.2.12" #define DDS_VERSION_NUM 212 /* callback event */ #define DDS_EV_OUT_RECORD_AUDIO 1 #define DDS_EV_OUT_NATIVE_CALL 2 #define DDS_EV_OUT_COMMAND 3 #define DDS_EV_OUT_MEDIA 4 #define DDS_EV_OUT_STATUS 5 #define DDS_EV_OUT_TTS 6 #define DDS_EV_OUT_ERROR 7 #define DDS_EV_OUT_ASR_RESULT 8 #define DDS_EV_OUT_DUI_RESPONSE 9 #define DDS_EV_OUT_DUI_LOGIN 10 #define DDS_EV_OUT_CINFO_RESULT 11 /* external event */ #define DDS_EV_IN_SPEECH 101 #define DDS_EV_IN_WAKEUP 102 #define DDS_EV_IN_NATIVE_RESPONSE 103 #define DDS_EV_IN_RESET 104 #define DDS_EV_IN_EXIT 105 #define DDS_EV_IN_CUSTOM_TTS_TEXT 106 #define DDS_EV_IN_AUDIO_STREAM 107 #define DDS_EV_IN_PLAYER_STATUS 108 #define DDS_EV_IN_NLU_TEXT 109 #define DDS_EV_IN_WAKEUP_WORD 110 #define DDS_EV_IN_CINFO_OPERATE 111 /* error id */ #define DDS_ERROR_BASE 1000 #define DDS_ERROR_FATAL (DDS_ERROR_BASE + 1) #define DDS_ERROR_TIMEOUT (DDS_ERROR_BASE + 2) #define DDS_ERROR_NETWORK (DDS_ERROR_BASE + 3) #define DDS_ERROR_SERVER (DDS_ERROR_BASE + 4) #define DDS_ERROR_LOGIC (DDS_ERROR_BASE + 5) struct dds_msg; typedef int (*dds_ev_callback)(void *userdata, struct dds_msg *msg); struct dds_opt { dds_ev_callback _handler; void *userdata; }; DDS_IMPORT_OR_EXPORT int DDS_CALL dds_start(struct dds_msg *conf, struct dds_opt *opt); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_send(struct dds_msg *msg); /* message pack or unpack */ DDS_IMPORT_OR_EXPORT struct dds_msg * DDS_CALL dds_msg_new(); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_delete(struct dds_msg *msg); DDS_IMPORT_OR_EXPORT void DDS_CALL dds_msg_print(struct dds_msg *msg); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_set_type(struct dds_msg *msg, int value); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_set_integer(struct dds_msg *msg, const char *key, int value); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_set_double(struct dds_msg *msg, const char *key, double value); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_set_boolean(struct dds_msg *msg, const char *key, int value); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_set_string(struct dds_msg *msg, const char *key, const char *value); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_set_bin(struct dds_msg *msg, const char *key, const char *value, int value_len); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_set_bin_p(struct dds_msg *msg, const char *key, const char *value, int value_len); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_get_type(struct dds_msg *msg, int *value); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_get_integer(struct dds_msg *msg, const char *key, int *value); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_get_double(struct dds_msg *msg, const char *key, double *value); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_get_boolean(struct dds_msg *msg, const char *key, int *value); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_get_string(struct dds_msg *msg, const char *key, char **value); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_get_bin(struct dds_msg *msg, const char *key, char **value, int *value_len); DDS_IMPORT_OR_EXPORT int DDS_CALL dds_msg_get_bin_p(struct dds_msg *msg, const char *key, char **value, int *value_len); #ifdef __cplusplus } #endif #endif