hc
2023-05-26 a23f51ed7a39e452c1037343a84d7db1ca2c5bd7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#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