1 \hypertarget{hs-helper_8cpp}{}\section{src/hs-\/helper.cpp File Reference}
2 \label{hs-helper_8cpp}\index{src/hs-\/helper.\+cpp@{src/hs-\/helper.\+cpp}}
3 {\ttfamily \#include $<$string.\+h$>$}\\*
4 {\ttfamily \#include $<$cstdarg$>$}\\*
5 {\ttfamily \#include \char`\"{}hs-\/helper.\+h\char`\"{}}\\*
6 \subsection*{Functions}
7 \begin{DoxyCompactItemize}
9 \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8cpp_aba9ca63f68b1991f8650871f4eae8e0b}{get\+\_\+value\+\_\+uint16} (const afb\+\_\+req\+\_\+t request, const char $\ast$source, uint16\+\_\+t $\ast$out\+\_\+id)
11 \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8cpp_af3043612cf74bb92cb073e10cacd594a}{get\+\_\+value\+\_\+int16} (const afb\+\_\+req\+\_\+t request, const char $\ast$source, int16\+\_\+t $\ast$out\+\_\+id)
13 \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899}{R\+E\+Q\+\_\+\+E\+R\+R\+OR} \hyperlink{hs-helper_8cpp_a8121d965b6fd795c16b8576ab03dcaf1}{get\+\_\+value\+\_\+int32} (const afb\+\_\+req\+\_\+t request, const char $\ast$source, int32\+\_\+t $\ast$out\+\_\+id)
15 void \hyperlink{hs-helper_8cpp_a1ba31a6a94515ff1730ba0043a67d59e}{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object} (struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)
17 void \hyperlink{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str} (struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)
19 void \hyperlink{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func} (struct json\+\_\+object $\ast$j\+\_\+obj, const char $\ast$verb\+\_\+name, int count,...)
21 int \hyperlink{hs-helper_8cpp_a2ff1b894941c3b461ca8119079c4146a}{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index} (const char $\ast$value)
22 \end{DoxyCompactItemize}
23 \subsection*{Variables}
24 \begin{DoxyCompactItemize}
26 const char $\ast$ \hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist} \mbox{[}$\,$\mbox{]}
27 \end{DoxyCompactItemize}
30 \subsection{Function Documentation}
31 \index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!get\+\_\+value\+\_\+int16@{get\+\_\+value\+\_\+int16}}
32 \index{get\+\_\+value\+\_\+int16@{get\+\_\+value\+\_\+int16}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
33 \subsubsection[{\texorpdfstring{get\+\_\+value\+\_\+int16(const afb\+\_\+req\+\_\+t request, const char $\ast$source, int16\+\_\+t $\ast$out\+\_\+id)}{get_value_int16(const afb_req_t request, const char *source, int16_t *out_id)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+int16 (
34 \begin{DoxyParamCaption}
35 \item[{const afb\+\_\+req\+\_\+t}]{request, }
36 \item[{const char $\ast$}]{source, }
37 \item[{int16\+\_\+t $\ast$}]{out\+\_\+id}
38 \end{DoxyParamCaption}
39 )}\hypertarget{hs-helper_8cpp_af3043612cf74bb92cb073e10cacd594a}{}\label{hs-helper_8cpp_af3043612cf74bb92cb073e10cacd594a}
40 get int16 value from source
42 \subparagraph*{Parameters}
46 \item request \+: Describes the request by bindings from afb-\/daemon
47 \item source \+: input source
48 \item out\+\_\+id \+: output int16 value
51 \subparagraph*{Return}
55 Definition at line 82 of file hs-\/helper.\+cpp.
60 84 \textcolor{keywordtype}{char}* endptr;
61 85 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
62 86 \textcolor{keywordflow}{if}(!tmp)
64 88 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
66 90 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
68 92 \textcolor{comment}{/* error check of range */}
69 93 \textcolor{keywordflow}{if}( (tmp\_id > INT16\_MAX) || (tmp\_id < INT16\_MIN) )
71 95 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
73 97 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
75 99 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
78 102 *out\_id = (int16\_t)tmp\_id;
79 103 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
82 \index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!get\+\_\+value\+\_\+int32@{get\+\_\+value\+\_\+int32}}
83 \index{get\+\_\+value\+\_\+int32@{get\+\_\+value\+\_\+int32}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
84 \subsubsection[{\texorpdfstring{get\+\_\+value\+\_\+int32(const afb\+\_\+req\+\_\+t request, const char $\ast$source, int32\+\_\+t $\ast$out\+\_\+id)}{get_value_int32(const afb_req_t request, const char *source, int32_t *out_id)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+int32 (
85 \begin{DoxyParamCaption}
86 \item[{const afb\+\_\+req\+\_\+t}]{request, }
87 \item[{const char $\ast$}]{source, }
88 \item[{int32\+\_\+t $\ast$}]{out\+\_\+id}
89 \end{DoxyParamCaption}
90 )}\hypertarget{hs-helper_8cpp_a8121d965b6fd795c16b8576ab03dcaf1}{}\label{hs-helper_8cpp_a8121d965b6fd795c16b8576ab03dcaf1}
91 get int32 value from source
93 \subparagraph*{Parameters}
97 \item request \+: Describes the request by bindings from afb-\/daemon
98 \item source \+: input source
99 \item out\+\_\+id \+: output int32 value
102 \subparagraph*{Return}
106 Definition at line 118 of file hs-\/helper.\+cpp.
111 120 \textcolor{keywordtype}{char}* endptr;
112 121 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
113 122 \textcolor{keywordflow}{if}(!tmp)
115 124 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
117 126 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
119 128 \textcolor{comment}{/* error check of range */}
120 129 \textcolor{keywordflow}{if}( (tmp\_id > INT32\_MAX) || (tmp\_id < INT32\_MIN) )
122 131 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
124 133 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
126 135 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
129 138 *out\_id = (int32\_t)tmp\_id;
130 139 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
133 \index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!get\+\_\+value\+\_\+uint16@{get\+\_\+value\+\_\+uint16}}
134 \index{get\+\_\+value\+\_\+uint16@{get\+\_\+value\+\_\+uint16}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
135 \subsubsection[{\texorpdfstring{get\+\_\+value\+\_\+uint16(const afb\+\_\+req\+\_\+t request, const char $\ast$source, uint16\+\_\+t $\ast$out\+\_\+id)}{get_value_uint16(const afb_req_t request, const char *source, uint16_t *out_id)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf R\+E\+Q\+\_\+\+E\+R\+R\+OR} get\+\_\+value\+\_\+uint16 (
136 \begin{DoxyParamCaption}
137 \item[{const afb\+\_\+req\+\_\+t}]{request, }
138 \item[{const char $\ast$}]{source, }
139 \item[{uint16\+\_\+t $\ast$}]{out\+\_\+id}
140 \end{DoxyParamCaption}
141 )}\hypertarget{hs-helper_8cpp_aba9ca63f68b1991f8650871f4eae8e0b}{}\label{hs-helper_8cpp_aba9ca63f68b1991f8650871f4eae8e0b}
142 get uint16 value from source
144 \subparagraph*{Parameters}
148 \item request \+: Describes the request by bindings from afb-\/daemon
149 \item source \+: input source
150 \item out\+\_\+id \+: output uint16 value
153 \subparagraph*{Return}
157 Definition at line 46 of file hs-\/helper.\+cpp.
162 48 \textcolor{keywordtype}{char}* endptr;
163 49 \textcolor{keyword}{const} \textcolor{keywordtype}{char}* tmp = afb\_req\_value (request, source);
164 50 \textcolor{keywordflow}{if}(!tmp)
166 52 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899a96a855966bc63045222b3dcac524cee1}{REQ\_FAIL};
168 54 \textcolor{keywordtype}{long} tmp\_id = strtol(tmp,&endptr,10);
170 56 \textcolor{comment}{/* error check of range */}
171 57 \textcolor{keywordflow}{if}( (tmp\_id > UINT16\_MAX) || (tmp\_id < 0) )
173 59 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899add1c84bf80c5f80741ee8f37fef1e12b}{OUT\_RANGE};
175 61 \textcolor{keywordflow}{if}(*endptr != \textcolor{charliteral}{'\(\backslash\)0'})
177 63 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899aa223eed65c9bee2bf1f4cdecaf90d66a}{NOT\_NUMBER};
180 66 *out\_id = (uint16\_t)tmp\_id;
181 67 \textcolor{keywordflow}{return} \hyperlink{hs-helper_8h_aa49f1dbbf26f01627a5737cf43aad899ab093abb14c097b3b7719debb04d5e8ee}{REQ\_OK};
184 \index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object}}
185 \index{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
186 \subsubsection[{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object(struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)}{hs_add_object_to_json_object(struct json_object *j_obj, int count,...)}}]{\setlength{\rightskip}{0pt plus 5cm}void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object (
187 \begin{DoxyParamCaption}
188 \item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }
189 \item[{int}]{count, }
191 \end{DoxyParamCaption}
192 )}\hypertarget{hs-helper_8cpp_a1ba31a6a94515ff1730ba0043a67d59e}{}\label{hs-helper_8cpp_a1ba31a6a94515ff1730ba0043a67d59e}
193 add int object to json object
195 \subparagraph*{Parameters}
199 \item j\+\_\+obj \+: the json object will join in int json object
200 \item count \+: input parameter number
201 \item ... \+: parameter list
204 \subparagraph*{Return}
208 Definition at line 154 of file hs-\/helper.\+cpp.
214 157 va\_start(args, count);
215 158 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
217 160 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
218 161 \textcolor{keywordtype}{int} value = va\_arg(args, \textcolor{keywordtype}{int});
219 162 json\_object\_object\_add(j\_obj, key, json\_object\_new\_int((int32\_t)value));
225 \index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func}}
226 \index{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
227 \subsubsection[{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func(struct json\+\_\+object $\ast$j\+\_\+obj, const char $\ast$verb\+\_\+name, int count,...)}{hs_add_object_to_json_object_func(struct json_object *j_obj, const char *verb_name, int count,...)}}]{\setlength{\rightskip}{0pt plus 5cm}void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+func (
228 \begin{DoxyParamCaption}
229 \item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }
230 \item[{const char $\ast$}]{verb\+\_\+name, }
231 \item[{int}]{count, }
233 \end{DoxyParamCaption}
234 )}\hypertarget{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}{}\label{hs-helper_8cpp_ae83604a37134e7bdee3ce4f10bb0b47a}
235 add new json object to json object
237 \subparagraph*{Parameters}
241 \item j\+\_\+obj \+: the json object will join in new json object
242 \item verb\+\_\+name \+: new json object\textquotesingle{}s verb value
243 \item count \+: input parameter number
244 \item ... \+: parameter list
247 \subparagraph*{Return}
251 Definition at line 207 of file hs-\/helper.\+cpp.
257 210 va\_start(args, count);
259 212 json\_object\_object\_add(j\_obj,\textcolor{stringliteral}{"verb"}, json\_object\_new\_string(verb\_name));
261 214 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
263 216 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
264 217 \textcolor{keywordtype}{int} value = va\_arg(args, \textcolor{keywordtype}{int});
265 218 json\_object\_object\_add(j\_obj, key, json\_object\_new\_int((int32\_t)value));
271 \index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str}}
272 \index{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str@{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
273 \subsubsection[{\texorpdfstring{hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str(struct json\+\_\+object $\ast$j\+\_\+obj, int count,...)}{hs_add_object_to_json_object_str(struct json_object *j_obj, int count,...)}}]{\setlength{\rightskip}{0pt plus 5cm}void hs\+\_\+add\+\_\+object\+\_\+to\+\_\+json\+\_\+object\+\_\+str (
274 \begin{DoxyParamCaption}
275 \item[{struct json\+\_\+object $\ast$}]{j\+\_\+obj, }
276 \item[{int}]{count, }
278 \end{DoxyParamCaption}
279 )}\hypertarget{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}{}\label{hs-helper_8cpp_a8777c53f1d4d5412f19b134ad85ffedf}
280 add string object to json object
282 \subparagraph*{Parameters}
286 \item j\+\_\+obj \+: the json object will join in string json object
287 \item count \+: input parameter number
288 \item ... \+: parameter list
291 \subparagraph*{Return}
295 Definition at line 180 of file hs-\/helper.\+cpp.
301 183 va\_start(args, count);
302 184 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{int} i = 0; i < count; ++i )
304 186 \textcolor{keywordtype}{char} *key = va\_arg(args, \textcolor{keywordtype}{char}*);
305 187 \textcolor{keywordtype}{char} *value = va\_arg(args, \textcolor{keywordtype}{char}*);
306 188 json\_object\_object\_add(j\_obj, key, json\_object\_new\_string(value));
312 \index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index@{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index}}
313 \index{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index@{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
314 \subsubsection[{\texorpdfstring{hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index(const char $\ast$value)}{hs_search_event_name_index(const char *value)}}]{\setlength{\rightskip}{0pt plus 5cm}int hs\+\_\+search\+\_\+event\+\_\+name\+\_\+index (
315 \begin{DoxyParamCaption}
316 \item[{const char $\ast$}]{value}
317 \end{DoxyParamCaption}
318 )}\hypertarget{hs-helper_8cpp_a2ff1b894941c3b461ca8119079c4146a}{}\label{hs-helper_8cpp_a2ff1b894941c3b461ca8119079c4146a}
319 search event position in event list
321 \subparagraph*{Parameters}
325 \item value \+: searched event name
328 \subparagraph*{Return}
330 event\textquotesingle{}s index in event list
332 Definition at line 234 of file hs-\/helper.\+cpp.
337 236 \textcolor{keywordtype}{size\_t} buf\_size = 50;
338 237 \textcolor{keywordtype}{size\_t} size = \textcolor{keyword}{sizeof} \hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist} / \textcolor{keyword}{sizeof} *\hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist};
339 238 \textcolor{keywordtype}{int} ret = -1;
340 239 \textcolor{keywordflow}{for}(\textcolor{keywordtype}{size\_t} i = 0 ; i < size ; ++i)
342 241 \textcolor{keywordflow}{if}(!strncmp(value, \hyperlink{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{evlist}[i], buf\_size))
345 244 \textcolor{keywordflow}{break};
348 247 \textcolor{keywordflow}{return} ret;
353 \subsection{Variable Documentation}
354 \index{hs-\/helper.\+cpp@{hs-\/helper.\+cpp}!evlist@{evlist}}
355 \index{evlist@{evlist}!hs-\/helper.\+cpp@{hs-\/helper.\+cpp}}
356 \subsubsection[{\texorpdfstring{evlist}{evlist}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ evlist\mbox{[}$\,$\mbox{]}}\hypertarget{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}{}\label{hs-helper_8cpp_a0cd84b1a2184c9b84d1b7bf24582f28e}
357 {\bfseries Initial value\+:}
360 \textcolor{stringliteral}{"tap\_shortcut"},
361 \textcolor{stringliteral}{"on\_screen\_message"},
362 \textcolor{stringliteral}{"on\_screen\_reply"},
363 \textcolor{stringliteral}{"showWindow"},
364 \textcolor{stringliteral}{"hideWindow"},
365 \textcolor{stringliteral}{"replyShowWindow"},
366 \textcolor{stringliteral}{"showNotification"},
367 \textcolor{stringliteral}{"showInformation"},
368 \textcolor{stringliteral}{"reserved"}
373 Definition at line 22 of file hs-\/helper.\+cpp.