MT#61856 control_ng: make NG commands consistent

Instead of keeping separate arrays (essentially it's
a duplication) for command strings, escaped strings
or short version of commands, just create one single
macro pattern, which keeps these as an array.

And then using designated array initializers,
use the marco pattern to generate accordingly
an array of the required type (usual strings,
those escaped or the short version of them).

This prevents the human mistakes, or at least
makes them less possible in case of new command
introduction.

Change-Id: I27271ed4852f95760424552ce66fc8bc340c76a3
mr26.1
Donat Zenichev 4 weeks ago
parent e36ad85c00
commit 34bb030bff

@ -31,43 +31,60 @@ const char magic_load_limit_strings[__LOAD_LIMIT_MAX][64] = {
[LOAD_LIMIT_LOAD] = "Load limit exceeded",
[LOAD_LIMIT_BW] = "Bandwidth limit exceeded",
};
#define NG_COMMANDS(X) \
X(OP_PING, "ping", "ping", "Ping") \
X(OP_OFFER, "offer", "offer", "Offer") \
X(OP_ANSWER, "answer", "answer", "Answer") \
X(OP_DELETE, "delete", "delete", "Delete") \
X(OP_QUERY, "query", "query", "Query") \
X(OP_LIST, "list", "list", "List") \
X(OP_START_RECORDING, "start recording", "start_recording", "StartRec") \
X(OP_STOP_RECORDING, "stop recording", "stop_recording", "StopRec") \
X(OP_PAUSE_RECORDING, "pause recording", "pause_recording", "PauseRec") \
X(OP_START_FORWARDING, "start forwarding", "start_forwarding", "StartFwd") \
X(OP_STOP_FORWARDING, "stop forwarding", "stop_forwarding", "StopFwd") \
X(OP_BLOCK_DTMF, "block DTMF", "block_DTMF", "BlkDTMF") \
X(OP_UNBLOCK_DTMF, "unblock DTMF", "unblock_DTMF", "UnblkDTMF") \
X(OP_BLOCK_MEDIA, "block media", "block_media", "BlkMedia") \
X(OP_UNBLOCK_MEDIA, "unblock media", "unblock_media", "UnblkMedia") \
X(OP_PLAY_MEDIA, "play media", "play_media", "PlayMedia") \
X(OP_STOP_MEDIA, "stop media", "stop_media", "StopMedia") \
X(OP_PLAY_DTMF, "play DTMF", "play_DTMF", "PlayDTMF") \
X(OP_STATISTICS, "statistics", "statistics", "Stats") \
X(OP_SILENCE_MEDIA, "silence media", "silence_media", "SlnMedia") \
X(OP_UNSILENCE_MEDIA, "unsilence media", "unsilence_media", "UnslnMedia") \
X(OP_BLOCK_SILENCE_MEDIA, "block silence media", "block_silence_media", "BlkSlnMedia") \
X(OP_UNBLOCK_SILENCE_MEDIA, "unblock silence media", "unblock_silence_media", "UnblkSlnMedia") \
X(OP_PUBLISH, "publish", "publish", "Pub") \
X(OP_SUBSCRIBE_REQ, "subscribe request", "subscribe_request", "SubReq") \
X(OP_SUBSCRIBE_ANS, "subscribe answer", "subscribe_answer", "SubAns") \
X(OP_UNSUBSCRIBE, "unsubscribe", "unsubscribe", "Unsub") \
X(OP_INJECT_START, "inject start", "inject_start", "InjStart") \
X(OP_INJECT_STOP, "inject stop", "inject_stop", "InjStop") \
X(OP_CONNECT, "connect", "connect", "Conn") \
X(OP_CLI, "cli", "cli", "CLI") \
X(OP_TRANSFORM, "transform", "transform", "Trnsfm") \
X(OP_CREATE, "create", "create", "Create") \
X(OP_CREATE_ANSWER, "create answer", "create_answer", "CrtAnsw") \
X(OP_MESH, "mesh", "mesh", "Mesh")
const char *ng_command_strings[OP_COUNT] = {
"ping", "offer", "answer", "delete", "query", "list",
"start recording", "stop recording", "pause recording",
"start forwarding", "stop forwarding", "block DTMF",
"unblock DTMF", "block media", "unblock media", "play media", "stop media",
"play DTMF", "statistics", "silence media", "unsilence media",
"block silence media", "unblock silence media",
"publish", "subscribe request",
"subscribe answer", "unsubscribe",
"inject start", "inject stop",
"connect", "cli", "transform",
"create", "create answer", "mesh",
#define X(op, name, esc, short_name) [op] = name,
NG_COMMANDS(X)
#undef X
};
const char *ng_command_strings_esc[OP_COUNT] = {
"ping", "offer", "answer", "delete", "query", "list",
"start_recording", "stop_recording", "pause_recording",
"start_forwarding", "stop_forwarding", "block_DTMF",
"unblock_DTMF", "block_media", "unblock_media", "play_media", "stop_media",
"play_DTMF", "statistics", "silence_media", "unsilence_media",
"block_silence_media", "unblock_silence_media",
"publish", "subscribe_request",
"subscribe_answer", "unsubscribe",
"inject_start", "inject_stop",
"connect", "cli", "transform",
"create", "create_answer", "mesh",
#define X(op, name, esc, short_name) [op] = esc,
NG_COMMANDS(X)
#undef X
};
const char *ng_command_strings_short[OP_COUNT] = {
"Ping", "Offer", "Answer", "Delete", "Query", "List",
"StartRec", "StopRec", "PauseRec",
"StartFwd", "StopFwd", "BlkDTMF",
"UnblkDTMF", "BlkMedia", "UnblkMedia", "PlayMedia", "StopMedia",
"PlayDTMF", "Stats", "SlnMedia", "UnslnMedia",
"BlkSlnMedia", "UnblkSlnMedia",
"Pub", "SubReq", "SubAns", "Unsub",
"InjStart", "InjStop",
"Conn", "CLI", "Trnsfm",
"Create", "CrtAnsw", "Mesh",
#define X(op, name, esc, short_name) [op] = short_name,
NG_COMMANDS(X)
#undef X
};
typedef struct ng_ctx {

Loading…
Cancel
Save