Diffstat (limited to 'gammu/emb/common/phone/at/sonyeric.c') (more/less context) (ignore whitespace changes)
-rw-r--r-- | gammu/emb/common/phone/at/sonyeric.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/gammu/emb/common/phone/at/sonyeric.c b/gammu/emb/common/phone/at/sonyeric.c index 8eeb39b..363e043 100644 --- a/gammu/emb/common/phone/at/sonyeric.c +++ b/gammu/emb/common/phone/at/sonyeric.c | |||
@@ -5,28 +5,29 @@ | |||
5 | #ifdef GSM_ENABLE_ATGEN | 5 | #ifdef GSM_ENABLE_ATGEN |
6 | 6 | ||
7 | #include <string.h> | 7 | #include <string.h> |
8 | #include <time.h> | 8 | #include <time.h> |
9 | #include <ctype.h> | 9 | #include <ctype.h> |
10 | 10 | ||
11 | #include "../../gsmcomon.h" | 11 | #include "../../gsmcomon.h" |
12 | #include "../../misc/coding/coding.h" | 12 | #include "../../misc/coding/coding.h" |
13 | 13 | ||
14 | #include "atgen.h" | 14 | #include "atgen.h" |
15 | #include "sonyeric.h" | 15 | #include "sonyeric.h" |
16 | 16 | ||
17 | #ifdef GSM_ENABLE_OBEXGEN | 17 | #if defined(GSM_ENABLE_BLUEOBEX) || defined(GSM_ENABLE_IRDAOBEX) |
18 | 18 | ||
19 | #include "../obex/obexgen.h" | 19 | #include "../obex/obexgen.h" |
20 | 20 | ||
21 | extern GSM_Protocol_Functions OBEXProtocol; | ||
21 | extern GSM_Reply_FunctionOBEXGENReplyFunctions[]; | 22 | extern GSM_Reply_FunctionOBEXGENReplyFunctions[]; |
22 | extern GSM_Reply_FunctionATGENReplyFunctions[]; | 23 | extern GSM_Reply_FunctionATGENReplyFunctions[]; |
23 | 24 | ||
24 | static GSM_Error SONYERIC_SetOBEXMode(GSM_StateMachine *s) | 25 | static GSM_Error SONYERIC_SetOBEXMode(GSM_StateMachine *s) |
25 | { | 26 | { |
26 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; | 27 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; |
27 | GSM_Error error; | 28 | GSM_Error error; |
28 | 29 | ||
29 | if (Priv->OBEX) return ERR_NONE; | 30 | if (Priv->OBEX) return ERR_NONE; |
30 | 31 | ||
31 | dbgprintf ("Changing to OBEX\n"); | 32 | dbgprintf ("Changing to OBEX\n"); |
32 | 33 | ||
@@ -115,25 +116,25 @@ static GSM_Error SONYERIC_SetFile(GSM_StateMachine *s, unsigned char *FileName, | |||
115 | error = ERR_NONE; | 116 | error = ERR_NONE; |
116 | while (error == ERR_NONE) error = OBEXGEN_AddFilePart(s,&File,&Pos); | 117 | while (error == ERR_NONE) error = OBEXGEN_AddFilePart(s,&File,&Pos); |
117 | free(File.Buffer); | 118 | free(File.Buffer); |
118 | if (error != ERR_EMPTY) return error; | 119 | if (error != ERR_EMPTY) return error; |
119 | 120 | ||
120 | return SONYERIC_SetATMode(s); | 121 | return SONYERIC_SetATMode(s); |
121 | } | 122 | } |
122 | 123 | ||
123 | #endif | 124 | #endif |
124 | 125 | ||
125 | GSM_Error SONYERIC_GetNextCalendar(GSM_StateMachine *s, GSM_CalendarEntry *Note, bool start) | 126 | GSM_Error SONYERIC_GetNextCalendar(GSM_StateMachine *s, GSM_CalendarEntry *Note, bool start) |
126 | { | 127 | { |
127 | #ifdef GSM_ENABLE_OBEXGEN | 128 | #if defined(GSM_ENABLE_BLUEOBEX) || defined(GSM_ENABLE_IRDAOBEX) |
128 | GSM_Error error; | 129 | GSM_Error error; |
129 | GSM_ToDoEntry ToDo; | 130 | GSM_ToDoEntry ToDo; |
130 | int Pos, num, Loc; | 131 | int Pos, num, Loc; |
131 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; | 132 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; |
132 | 133 | ||
133 | if (start) { | 134 | if (start) { |
134 | error = SONYERIC_GetFile(s, &Priv->file, "telecom/cal.vcs"); | 135 | error = SONYERIC_GetFile(s, &Priv->file, "telecom/cal.vcs"); |
135 | if (error != ERR_NONE) return error; | 136 | if (error != ERR_NONE) return error; |
136 | 137 | ||
137 | Note->Location = 1; | 138 | Note->Location = 1; |
138 | } else { | 139 | } else { |
139 | Note->Location++; | 140 | Note->Location++; |
@@ -151,25 +152,25 @@ GSM_Error SONYERIC_GetNextCalendar(GSM_StateMachine *s, GSM_CalendarEntry *Note, | |||
151 | num++; | 152 | num++; |
152 | if (num == Loc) return ERR_NONE; | 153 | if (num == Loc) return ERR_NONE; |
153 | } | 154 | } |
154 | } | 155 | } |
155 | return ERR_EMPTY; | 156 | return ERR_EMPTY; |
156 | #else | 157 | #else |
157 | return ERR_SOURCENOTAVAILABLE; | 158 | return ERR_SOURCENOTAVAILABLE; |
158 | #endif | 159 | #endif |
159 | } | 160 | } |
160 | 161 | ||
161 | GSM_Error SONYERIC_GetNextToDo(GSM_StateMachine *s, GSM_ToDoEntry *ToDo, bool start) | 162 | GSM_Error SONYERIC_GetNextToDo(GSM_StateMachine *s, GSM_ToDoEntry *ToDo, bool start) |
162 | { | 163 | { |
163 | #ifdef GSM_ENABLE_OBEXGEN | 164 | #if defined(GSM_ENABLE_BLUEOBEX) || defined(GSM_ENABLE_IRDAOBEX) |
164 | GSM_Error error; | 165 | GSM_Error error; |
165 | GSM_CalendarEntryCalendar; | 166 | GSM_CalendarEntryCalendar; |
166 | int Pos, num, Loc; | 167 | int Pos, num, Loc; |
167 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; | 168 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; |
168 | 169 | ||
169 | if (Priv->Manufacturer!=AT_Ericsson) return ERR_NOTSUPPORTED; | 170 | if (Priv->Manufacturer!=AT_Ericsson) return ERR_NOTSUPPORTED; |
170 | 171 | ||
171 | if (start) { | 172 | if (start) { |
172 | error = SONYERIC_GetFile(s, &Priv->file, "telecom/cal.vcs"); | 173 | error = SONYERIC_GetFile(s, &Priv->file, "telecom/cal.vcs"); |
173 | if (error != ERR_NONE) return error; | 174 | if (error != ERR_NONE) return error; |
174 | 175 | ||
175 | ToDo->Location = 1; | 176 | ToDo->Location = 1; |
@@ -190,25 +191,25 @@ GSM_Error SONYERIC_GetNextToDo(GSM_StateMachine *s, GSM_ToDoEntry *ToDo, bool st | |||
190 | if (num == Loc) return ERR_NONE; | 191 | if (num == Loc) return ERR_NONE; |
191 | } | 192 | } |
192 | } | 193 | } |
193 | 194 | ||
194 | return ERR_EMPTY; | 195 | return ERR_EMPTY; |
195 | #else | 196 | #else |
196 | return ERR_SOURCENOTAVAILABLE; | 197 | return ERR_SOURCENOTAVAILABLE; |
197 | #endif | 198 | #endif |
198 | } | 199 | } |
199 | 200 | ||
200 | GSM_Error SONYERIC_GetToDoStatus(GSM_StateMachine *s, GSM_ToDoStatus *status) | 201 | GSM_Error SONYERIC_GetToDoStatus(GSM_StateMachine *s, GSM_ToDoStatus *status) |
201 | { | 202 | { |
202 | #ifdef GSM_ENABLE_OBEXGEN | 203 | #if defined(GSM_ENABLE_BLUEOBEX) || defined(GSM_ENABLE_IRDAOBEX) |
203 | GSM_Error error; | 204 | GSM_Error error; |
204 | GSM_ToDoEntry ToDo; | 205 | GSM_ToDoEntry ToDo; |
205 | GSM_CalendarEntry Calendar; | 206 | GSM_CalendarEntry Calendar; |
206 | int Pos; | 207 | int Pos; |
207 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; | 208 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; |
208 | 209 | ||
209 | if (Priv->Manufacturer!=AT_Ericsson) return ERR_NOTSUPPORTED; | 210 | if (Priv->Manufacturer!=AT_Ericsson) return ERR_NOTSUPPORTED; |
210 | 211 | ||
211 | smprintf(s,"Getting ToDo status\n"); | 212 | smprintf(s,"Getting ToDo status\n"); |
212 | 213 | ||
213 | error = SONYERIC_GetFile(s, &Priv->file, "telecom/cal.vcs"); | 214 | error = SONYERIC_GetFile(s, &Priv->file, "telecom/cal.vcs"); |
214 | if (error != ERR_NONE) return error; | 215 | if (error != ERR_NONE) return error; |
@@ -221,60 +222,60 @@ GSM_Error SONYERIC_GetToDoStatus(GSM_StateMachine *s, GSM_ToDoStatus *status) | |||
221 | if (error != ERR_NONE) return error; | 222 | if (error != ERR_NONE) return error; |
222 | if (ToDo.EntriesNum != 0) status->Used++; | 223 | if (ToDo.EntriesNum != 0) status->Used++; |
223 | } | 224 | } |
224 | 225 | ||
225 | return ERR_NONE; | 226 | return ERR_NONE; |
226 | #else | 227 | #else |
227 | return ERR_SOURCENOTAVAILABLE; | 228 | return ERR_SOURCENOTAVAILABLE; |
228 | #endif | 229 | #endif |
229 | } | 230 | } |
230 | 231 | ||
231 | GSM_Error SONYERIC_AddCalendarNote(GSM_StateMachine *s, GSM_CalendarEntry *Note) | 232 | GSM_Error SONYERIC_AddCalendarNote(GSM_StateMachine *s, GSM_CalendarEntry *Note) |
232 | { | 233 | { |
233 | #ifdef GSM_ENABLE_OBEXGEN | 234 | #if defined(GSM_ENABLE_BLUEOBEX) || defined(GSM_ENABLE_IRDAOBEX) |
234 | unsigned char req[5000]; | 235 | unsigned char req[5000]; |
235 | int size=0; | 236 | int size=0; |
236 | 237 | ||
237 | smprintf(s,"Adding calendar note\n"); | 238 | smprintf(s,"Adding calendar note\n"); |
238 | 239 | ||
239 | GSM_EncodeVCALENDAR(req,&size,Note,true,SonyEricsson_VCalendar); | 240 | GSM_EncodeVCALENDAR(req,&size,Note,true,SonyEricsson_VCalendar); |
240 | 241 | ||
241 | return SONYERIC_SetFile(s, "telecom/cal/luid/.vcs", req, size); | 242 | return SONYERIC_SetFile(s, "telecom/cal/luid/.vcs", req, size); |
242 | #else | 243 | #else |
243 | return ERR_SOURCENOTAVAILABLE; | 244 | return ERR_SOURCENOTAVAILABLE; |
244 | #endif | 245 | #endif |
245 | } | 246 | } |
246 | 247 | ||
247 | GSM_Error SONYERIC_AddToDo(GSM_StateMachine *s, GSM_ToDoEntry *ToDo) | 248 | GSM_Error SONYERIC_AddToDo(GSM_StateMachine *s, GSM_ToDoEntry *ToDo) |
248 | { | 249 | { |
249 | #ifdef GSM_ENABLE_OBEXGEN | 250 | #if defined(GSM_ENABLE_BLUEOBEX) || defined(GSM_ENABLE_IRDAOBEX) |
250 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; | 251 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; |
251 | unsigned char req[5000]; | 252 | unsigned char req[5000]; |
252 | int size=0; | 253 | int size=0; |
253 | 254 | ||
254 | if (Priv->Manufacturer!=AT_Ericsson) return ERR_NOTSUPPORTED; | 255 | if (Priv->Manufacturer!=AT_Ericsson) return ERR_NOTSUPPORTED; |
255 | 256 | ||
256 | smprintf(s,"Adding ToDo\n"); | 257 | smprintf(s,"Adding ToDo\n"); |
257 | 258 | ||
258 | GSM_EncodeVTODO(req,&size,ToDo,true,SonyEricsson_VToDo); | 259 | GSM_EncodeVTODO(req,&size,ToDo,true,SonyEricsson_VToDo); |
259 | 260 | ||
260 | return SONYERIC_SetFile(s, "telecom/cal/luid/.vcs", req, size); | 261 | return SONYERIC_SetFile(s, "telecom/cal/luid/.vcs", req, size); |
261 | #else | 262 | #else |
262 | return ERR_SOURCENOTAVAILABLE; | 263 | return ERR_SOURCENOTAVAILABLE; |
263 | #endif | 264 | #endif |
264 | } | 265 | } |
265 | 266 | ||
266 | GSM_Error SONYERIC_DeleteAllToDo(GSM_StateMachine *s) | 267 | GSM_Error SONYERIC_DeleteAllToDo(GSM_StateMachine *s) |
267 | { | 268 | { |
268 | #ifdef GSM_ENABLE_OBEXGEN | 269 | #if defined(GSM_ENABLE_BLUEOBEX) || defined(GSM_ENABLE_IRDAOBEX) |
269 | GSM_Error error; | 270 | GSM_Error error; |
270 | int Pos,Level = 0,Used; | 271 | int Pos,Level = 0,Used; |
271 | unsigned char *Buf; | 272 | unsigned char *Buf; |
272 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; | 273 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; |
273 | unsigned char Line[2000]; | 274 | unsigned char Line[2000]; |
274 | 275 | ||
275 | if (Priv->Manufacturer!=AT_Ericsson) return ERR_NOTSUPPORTED; | 276 | if (Priv->Manufacturer!=AT_Ericsson) return ERR_NOTSUPPORTED; |
276 | 277 | ||
277 | smprintf(s,"Deleting all ToDo\n"); | 278 | smprintf(s,"Deleting all ToDo\n"); |
278 | 279 | ||
279 | error = SONYERIC_GetFile(s, &Priv->file, "telecom/cal.vcs"); | 280 | error = SONYERIC_GetFile(s, &Priv->file, "telecom/cal.vcs"); |
280 | if (error != ERR_NONE) return error; | 281 | if (error != ERR_NONE) return error; |
@@ -308,25 +309,25 @@ GSM_Error SONYERIC_DeleteAllToDo(GSM_StateMachine *s) | |||
308 | } | 309 | } |
309 | 310 | ||
310 | error = SONYERIC_SetFile(s, "telecom/cal.vcs", Buf, Used); | 311 | error = SONYERIC_SetFile(s, "telecom/cal.vcs", Buf, Used); |
311 | //if (Buf != NULL) free(Buf); | 312 | //if (Buf != NULL) free(Buf); |
312 | return error; | 313 | return error; |
313 | #else | 314 | #else |
314 | return ERR_SOURCENOTAVAILABLE; | 315 | return ERR_SOURCENOTAVAILABLE; |
315 | #endif | 316 | #endif |
316 | } | 317 | } |
317 | 318 | ||
318 | GSM_Error SONYERIC_DelCalendarNote(GSM_StateMachine *s, GSM_CalendarEntry *Note) | 319 | GSM_Error SONYERIC_DelCalendarNote(GSM_StateMachine *s, GSM_CalendarEntry *Note) |
319 | { | 320 | { |
320 | #ifdef GSM_ENABLE_OBEXGEN | 321 | #if defined(GSM_ENABLE_BLUEOBEX) || defined(GSM_ENABLE_IRDAOBEX) |
321 | GSM_Error error; | 322 | GSM_Error error; |
322 | int Pos,Level = 0,Loc=0,Used; | 323 | int Pos,Level = 0,Loc=0,Used; |
323 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; | 324 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; |
324 | unsigned char Line[2000]; | 325 | unsigned char Line[2000]; |
325 | unsigned char *Buf; | 326 | unsigned char *Buf; |
326 | 327 | ||
327 | smprintf(s, "Deleting calendar note %i\n",Note->Location); | 328 | smprintf(s, "Deleting calendar note %i\n",Note->Location); |
328 | 329 | ||
329 | error = SONYERIC_GetFile(s, &Priv->file, "telecom/cal.vcs"); | 330 | error = SONYERIC_GetFile(s, &Priv->file, "telecom/cal.vcs"); |
330 | if (error != ERR_NONE) return error; | 331 | if (error != ERR_NONE) return error; |
331 | 332 | ||
332 | Pos = 0; | 333 | Pos = 0; |
@@ -363,25 +364,25 @@ GSM_Error SONYERIC_DelCalendarNote(GSM_StateMachine *s, GSM_CalendarEntry *Note) | |||
363 | DumpMessage(s->di.df, s->di.dl, Buf, Used); | 364 | DumpMessage(s->di.df, s->di.dl, Buf, Used); |
364 | 365 | ||
365 | error = SONYERIC_SetFile(s, "telecom/cal.vcs", Buf, Used); | 366 | error = SONYERIC_SetFile(s, "telecom/cal.vcs", Buf, Used); |
366 | if (Buf != NULL) free(Buf); | 367 | if (Buf != NULL) free(Buf); |
367 | return error; | 368 | return error; |
368 | #else | 369 | #else |
369 | return ERR_SOURCENOTAVAILABLE; | 370 | return ERR_SOURCENOTAVAILABLE; |
370 | #endif | 371 | #endif |
371 | } | 372 | } |
372 | 373 | ||
373 | GSM_Error SONYERIC_GetCalendarStatus(GSM_StateMachine *s, GSM_CalendarStatus *Status) | 374 | GSM_Error SONYERIC_GetCalendarStatus(GSM_StateMachine *s, GSM_CalendarStatus *Status) |
374 | { | 375 | { |
375 | #ifdef GSM_ENABLE_OBEXGEN | 376 | #if defined(GSM_ENABLE_BLUEOBEX) || defined(GSM_ENABLE_IRDAOBEX) |
376 | GSM_Error error; | 377 | GSM_Error error; |
377 | GSM_ToDoEntry ToDo; | 378 | GSM_ToDoEntry ToDo; |
378 | GSM_CalendarEntry Calendar; | 379 | GSM_CalendarEntry Calendar; |
379 | int Pos; | 380 | int Pos; |
380 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; | 381 | GSM_Phone_ATGENData*Priv = &s->Phone.Data.Priv.ATGEN; |
381 | 382 | ||
382 | if (Priv->Manufacturer!=AT_Ericsson) return ERR_NOTSUPPORTED; | 383 | if (Priv->Manufacturer!=AT_Ericsson) return ERR_NOTSUPPORTED; |
383 | 384 | ||
384 | smprintf(s, "Getting calendar status\n"); | 385 | smprintf(s, "Getting calendar status\n"); |
385 | 386 | ||
386 | error = SONYERIC_GetFile(s, &Priv->file, "telecom/cal.vcs"); | 387 | error = SONYERIC_GetFile(s, &Priv->file, "telecom/cal.vcs"); |
387 | if (error != ERR_NONE) return error; | 388 | if (error != ERR_NONE) return error; |