Package phones ::
Module p_lgvx9400
|
|
1
2
3 """Various descriptions of data specific to LG VX9400"""
4
5 from prototypes import *
6 from prototypeslg import *
7
8
9 from p_lg import *
10
11
12
13 from p_lgvx9900 import *
14
15 BREW_FILE_SYSTEM = 2
16 BREW_READ_SIZE = 0x400
17 BREW_WRITE_SIZE = 0x1F00
18
19
20 UINT=UINTlsb
21 BOOL=BOOLlsb
22
23 CALENDAR_HAS_SEPARATE_END_TIME_AND_DATE=1
24
25
26 RTPathIndexFile='pim/pbRingIdSetAsPath.dat'
27 WPPathIndexFile='pim/pbPictureIdSetAsPath.dat'
28 pb_file_name='pim/pbentry.dat'
29
31 __fields=['pos', 'description', 'cdate', 'mdate', 'start', 'end_time', 'end_date', 'repeat', 'alarmindex_vibrate', 'ringtone', 'unknown1', 'alarmminutes', 'alarmhours', 'unknown2', 'unknown3', 'unknown4', 'serial_number']
32
41
42
45
46
58
59
60
61 - def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
62 'Writes this packet to the supplied buffer'
63 self._bufferstartoffset=buf.getcurrentoffset()
64 self.__field_pos.writetobuffer(buf)
65 self.__field_description.writetobuffer(buf)
66 try: self.__field_cdate
67 except:
68 self.__field_cdate=GPSDATE(**{'sizeinbytes': 4, 'default': GPSDATE.now() })
69 self.__field_cdate.writetobuffer(buf)
70 try: self.__field_mdate
71 except:
72 self.__field_mdate=GPSDATE(**{'sizeinbytes': 4, 'default': GPSDATE.now() })
73 self.__field_mdate.writetobuffer(buf)
74 self.__field_start.writetobuffer(buf)
75 self.__field_end_time.writetobuffer(buf)
76 self.__field_end_date.writetobuffer(buf)
77 self.__field_repeat.writetobuffer(buf)
78 self.__field_alarmindex_vibrate.writetobuffer(buf)
79 self.__field_ringtone.writetobuffer(buf)
80 self.__field_unknown1.writetobuffer(buf)
81 self.__field_alarmminutes.writetobuffer(buf)
82 self.__field_alarmhours.writetobuffer(buf)
83 try: self.__field_unknown2
84 except:
85 self.__field_unknown2=UINT(**{'sizeinbytes': 1, 'default': 0 })
86 self.__field_unknown2.writetobuffer(buf)
87 try: self.__field_unknown3
88 except:
89 self.__field_unknown3=UINT(**{'sizeinbytes': 2, 'default': 0 })
90 self.__field_unknown3.writetobuffer(buf)
91 try: self.__field_unknown4
92 except:
93 self.__field_unknown4=USTRING(**{'sizeinbytes': 256, 'default': '', 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False })
94 self.__field_unknown4.writetobuffer(buf)
95 try: self.__field_serial_number
96 except:
97 self.__field_serial_number=USTRING(**{'sizeinbytes': 64, 'default': '000000c9-00000000-00000000-T9MVZV02', 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False })
98 self.__field_serial_number.writetobuffer(buf)
99 self._bufferendoffset=buf.getcurrentoffset()
100 if autolog and self._bufferstartoffset==0: self.autologwrite(buf, logtitle=logtitle)
101
102
104 'Reads this packet from the supplied buffer'
105 self._bufferstartoffset=buf.getcurrentoffset()
106 if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
107 self.__field_pos=UINT(**{'sizeinbytes': 4})
108 self.__field_pos.readfrombuffer(buf)
109 self.__field_description=USTRING(**{'sizeinbytes': 33, 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False })
110 self.__field_description.readfrombuffer(buf)
111 self.__field_cdate=GPSDATE(**{'sizeinbytes': 4, 'default': GPSDATE.now() })
112 self.__field_cdate.readfrombuffer(buf)
113 self.__field_mdate=GPSDATE(**{'sizeinbytes': 4, 'default': GPSDATE.now() })
114 self.__field_mdate.readfrombuffer(buf)
115 self.__field_start=LGCALDATE(**{'sizeinbytes': 4})
116 self.__field_start.readfrombuffer(buf)
117 self.__field_end_time=LGCALDATE(**{'sizeinbytes': 4})
118 self.__field_end_time.readfrombuffer(buf)
119 self.__field_end_date=LGCALDATE(**{'sizeinbytes': 4})
120 self.__field_end_date.readfrombuffer(buf)
121 self.__field_repeat=LGCALREPEAT(**{'sizeinbytes': 4})
122 self.__field_repeat.readfrombuffer(buf)
123 self.__field_alarmindex_vibrate=UINT(**{'sizeinbytes': 1})
124 self.__field_alarmindex_vibrate.readfrombuffer(buf)
125 self.__field_ringtone=UINT(**{'sizeinbytes': 1})
126 self.__field_ringtone.readfrombuffer(buf)
127 self.__field_unknown1=UINT(**{'sizeinbytes': 1})
128 self.__field_unknown1.readfrombuffer(buf)
129 self.__field_alarmminutes=UINT(**{'sizeinbytes': 1})
130 self.__field_alarmminutes.readfrombuffer(buf)
131 self.__field_alarmhours=UINT(**{'sizeinbytes': 1})
132 self.__field_alarmhours.readfrombuffer(buf)
133 self.__field_unknown2=UINT(**{'sizeinbytes': 1, 'default': 0 })
134 self.__field_unknown2.readfrombuffer(buf)
135 self.__field_unknown3=UINT(**{'sizeinbytes': 2, 'default': 0 })
136 self.__field_unknown3.readfrombuffer(buf)
137 self.__field_unknown4=USTRING(**{'sizeinbytes': 256, 'default': '', 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False })
138 self.__field_unknown4.readfrombuffer(buf)
139 self.__field_serial_number=USTRING(**{'sizeinbytes': 64, 'default': '000000c9-00000000-00000000-T9MVZV02', 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False })
140 self.__field_serial_number.readfrombuffer(buf)
141 self._bufferendoffset=buf.getcurrentoffset()
142
143
146
148 if isinstance(value,UINT):
149 self.__field_pos=value
150 else:
151 self.__field_pos=UINT(value,**{'sizeinbytes': 4})
152
154
155 pos=property(__getfield_pos, __setfield_pos, __delfield_pos, "position within file, used as an event id")
156
158 return self.__field_description.getvalue()
159
161 if isinstance(value,USTRING):
162 self.__field_description=value
163 else:
164 self.__field_description=USTRING(value,**{'sizeinbytes': 33, 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False })
165
167
168 description=property(__getfield_description, __setfield_description, __delfield_description, None)
169
171 try: self.__field_cdate
172 except:
173 self.__field_cdate=GPSDATE(**{'sizeinbytes': 4, 'default': GPSDATE.now() })
174 return self.__field_cdate.getvalue()
175
177 if isinstance(value,GPSDATE):
178 self.__field_cdate=value
179 else:
180 self.__field_cdate=GPSDATE(value,**{'sizeinbytes': 4, 'default': GPSDATE.now() })
181
183
184 cdate=property(__getfield_cdate, __setfield_cdate, __delfield_cdate, None)
185
187 try: self.__field_mdate
188 except:
189 self.__field_mdate=GPSDATE(**{'sizeinbytes': 4, 'default': GPSDATE.now() })
190 return self.__field_mdate.getvalue()
191
193 if isinstance(value,GPSDATE):
194 self.__field_mdate=value
195 else:
196 self.__field_mdate=GPSDATE(value,**{'sizeinbytes': 4, 'default': GPSDATE.now() })
197
199
200 mdate=property(__getfield_mdate, __setfield_mdate, __delfield_mdate, None)
201
203 return self.__field_start.getvalue()
204
206 if isinstance(value,LGCALDATE):
207 self.__field_start=value
208 else:
209 self.__field_start=LGCALDATE(value,**{'sizeinbytes': 4})
210
212
213 start=property(__getfield_start, __setfield_start, __delfield_start, None)
214
216 return self.__field_end_time.getvalue()
217
219 if isinstance(value,LGCALDATE):
220 self.__field_end_time=value
221 else:
222 self.__field_end_time=LGCALDATE(value,**{'sizeinbytes': 4})
223
225
226 end_time=property(__getfield_end_time, __setfield_end_time, __delfield_end_time, None)
227
229 return self.__field_end_date.getvalue()
230
232 if isinstance(value,LGCALDATE):
233 self.__field_end_date=value
234 else:
235 self.__field_end_date=LGCALDATE(value,**{'sizeinbytes': 4})
236
238
239 end_date=property(__getfield_end_date, __setfield_end_date, __delfield_end_date, None)
240
242 return self.__field_repeat.getvalue()
243
245 if isinstance(value,LGCALREPEAT):
246 self.__field_repeat=value
247 else:
248 self.__field_repeat=LGCALREPEAT(value,**{'sizeinbytes': 4})
249
251
252 repeat=property(__getfield_repeat, __setfield_repeat, __delfield_repeat, None)
253
255 return self.__field_alarmindex_vibrate.getvalue()
256
258 if isinstance(value,UINT):
259 self.__field_alarmindex_vibrate=value
260 else:
261 self.__field_alarmindex_vibrate=UINT(value,**{'sizeinbytes': 1})
262
264
265 alarmindex_vibrate=property(__getfield_alarmindex_vibrate, __setfield_alarmindex_vibrate, __delfield_alarmindex_vibrate, None)
266
268 return self.__field_ringtone.getvalue()
269
271 if isinstance(value,UINT):
272 self.__field_ringtone=value
273 else:
274 self.__field_ringtone=UINT(value,**{'sizeinbytes': 1})
275
277
278 ringtone=property(__getfield_ringtone, __setfield_ringtone, __delfield_ringtone, None)
279
281 return self.__field_unknown1.getvalue()
282
284 if isinstance(value,UINT):
285 self.__field_unknown1=value
286 else:
287 self.__field_unknown1=UINT(value,**{'sizeinbytes': 1})
288
290
291 unknown1=property(__getfield_unknown1, __setfield_unknown1, __delfield_unknown1, None)
292
294 return self.__field_alarmminutes.getvalue()
295
297 if isinstance(value,UINT):
298 self.__field_alarmminutes=value
299 else:
300 self.__field_alarmminutes=UINT(value,**{'sizeinbytes': 1})
301
303
304 alarmminutes=property(__getfield_alarmminutes, __setfield_alarmminutes, __delfield_alarmminutes, "a value of 0xFF indicates not set")
305
307 return self.__field_alarmhours.getvalue()
308
310 if isinstance(value,UINT):
311 self.__field_alarmhours=value
312 else:
313 self.__field_alarmhours=UINT(value,**{'sizeinbytes': 1})
314
316
317 alarmhours=property(__getfield_alarmhours, __setfield_alarmhours, __delfield_alarmhours, "a value of 0xFF indicates not set")
318
320 try: self.__field_unknown2
321 except:
322 self.__field_unknown2=UINT(**{'sizeinbytes': 1, 'default': 0 })
323 return self.__field_unknown2.getvalue()
324
326 if isinstance(value,UINT):
327 self.__field_unknown2=value
328 else:
329 self.__field_unknown2=UINT(value,**{'sizeinbytes': 1, 'default': 0 })
330
332
333 unknown2=property(__getfield_unknown2, __setfield_unknown2, __delfield_unknown2, None)
334
336 try: self.__field_unknown3
337 except:
338 self.__field_unknown3=UINT(**{'sizeinbytes': 2, 'default': 0 })
339 return self.__field_unknown3.getvalue()
340
342 if isinstance(value,UINT):
343 self.__field_unknown3=value
344 else:
345 self.__field_unknown3=UINT(value,**{'sizeinbytes': 2, 'default': 0 })
346
348
349 unknown3=property(__getfield_unknown3, __setfield_unknown3, __delfield_unknown3, None)
350
352 try: self.__field_unknown4
353 except:
354 self.__field_unknown4=USTRING(**{'sizeinbytes': 256, 'default': '', 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False })
355 return self.__field_unknown4.getvalue()
356
358 if isinstance(value,USTRING):
359 self.__field_unknown4=value
360 else:
361 self.__field_unknown4=USTRING(value,**{'sizeinbytes': 256, 'default': '', 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False })
362
364
365 unknown4=property(__getfield_unknown4, __setfield_unknown4, __delfield_unknown4, None)
366
368 try: self.__field_serial_number
369 except:
370 self.__field_serial_number=USTRING(**{'sizeinbytes': 64, 'default': '000000c9-00000000-00000000-T9MVZV02', 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False })
371 return self.__field_serial_number.getvalue()
372
374 if isinstance(value,USTRING):
375 self.__field_serial_number=value
376 else:
377 self.__field_serial_number=USTRING(value,**{'sizeinbytes': 64, 'default': '000000c9-00000000-00000000-T9MVZV02', 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False })
378
380
381 serial_number=property(__getfield_serial_number, __setfield_serial_number, __delfield_serial_number, None)
382
385
387 yield ('pos', self.__field_pos, "position within file, used as an event id")
388 yield ('description', self.__field_description, None)
389 yield ('cdate', self.__field_cdate, None)
390 yield ('mdate', self.__field_mdate, None)
391 yield ('start', self.__field_start, None)
392 yield ('end_time', self.__field_end_time, None)
393 yield ('end_date', self.__field_end_date, None)
394 yield ('repeat', self.__field_repeat, None)
395 yield ('alarmindex_vibrate', self.__field_alarmindex_vibrate, None)
396 yield ('ringtone', self.__field_ringtone, None)
397 yield ('unknown1', self.__field_unknown1, None)
398 yield ('alarmminutes', self.__field_alarmminutes, "a value of 0xFF indicates not set")
399 yield ('alarmhours', self.__field_alarmhours, "a value of 0xFF indicates not set")
400 yield ('unknown2', self.__field_unknown2, None)
401 yield ('unknown3', self.__field_unknown3, None)
402 yield ('unknown4', self.__field_unknown4, None)
403 yield ('serial_number', self.__field_serial_number, None)
404
405
406
407
409 __fields=['numactiveitems', 'events']
410
419
420
423
424
436
437
438
439 - def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
440 'Writes this packet to the supplied buffer'
441 self._bufferstartoffset=buf.getcurrentoffset()
442 self.__field_numactiveitems.writetobuffer(buf)
443 try: self.__field_events
444 except:
445 self.__field_events=LIST(**{'elementclass': scheduleevent})
446 self.__field_events.writetobuffer(buf)
447 self._bufferendoffset=buf.getcurrentoffset()
448 if autolog and self._bufferstartoffset==0: self.autologwrite(buf, logtitle=logtitle)
449
450
452 'Reads this packet from the supplied buffer'
453 self._bufferstartoffset=buf.getcurrentoffset()
454 if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
455 self.__field_numactiveitems=UINT(**{'sizeinbytes': 2})
456 self.__field_numactiveitems.readfrombuffer(buf)
457 self.__field_events=LIST(**{'elementclass': scheduleevent})
458 self.__field_events.readfrombuffer(buf)
459 self._bufferendoffset=buf.getcurrentoffset()
460
461
463 return self.__field_numactiveitems.getvalue()
464
466 if isinstance(value,UINT):
467 self.__field_numactiveitems=value
468 else:
469 self.__field_numactiveitems=UINT(value,**{'sizeinbytes': 2})
470
472
473 numactiveitems=property(__getfield_numactiveitems, __setfield_numactiveitems, __delfield_numactiveitems, None)
474
476 try: self.__field_events
477 except:
478 self.__field_events=LIST(**{'elementclass': scheduleevent})
479 return self.__field_events.getvalue()
480
482 if isinstance(value,LIST):
483 self.__field_events=value
484 else:
485 self.__field_events=LIST(value,**{'elementclass': scheduleevent})
486
488
489 events=property(__getfield_events, __setfield_events, __delfield_events, None)
490
493
495 yield ('numactiveitems', self.__field_numactiveitems, None)
496 yield ('events', self.__field_events, None)
497
498
499
500
501 -class pbfileentry(BaseProtogenClass):
502 __fields=['serial1', 'entrynumber', 'data1', 'ringtone', 'wallpaper', 'data2']
503
504 - def __init__(self, *args, **kwargs):
505 dict={}
506
507 dict.update(kwargs)
508
509 super(pbfileentry,self).__init__(**dict)
510 if self.__class__ is pbfileentry:
511 self._update(args,dict)
512
513
514 - def getfields(self):
516
517
518 - def _update(self, args, kwargs):
519 super(pbfileentry,self)._update(args,kwargs)
520 keys=kwargs.keys()
521 for key in keys:
522 if key in self.__fields:
523 setattr(self, key, kwargs[key])
524 del kwargs[key]
525
526 if __debug__:
527 self._complainaboutunusedargs(pbfileentry,kwargs)
528 if len(args): raise TypeError('Unexpected arguments supplied: '+`args`)
529
530
531
532 - def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
533 'Writes this packet to the supplied buffer'
534 self._bufferstartoffset=buf.getcurrentoffset()
535 self.__field_serial1.writetobuffer(buf)
536 self.__field_entrynumber.writetobuffer(buf)
537 self.__field_data1.writetobuffer(buf)
538 self.__field_ringtone.writetobuffer(buf)
539 self.__field_wallpaper.writetobuffer(buf)
540 self.__field_data2.writetobuffer(buf)
541 self._bufferendoffset=buf.getcurrentoffset()
542 if autolog and self._bufferstartoffset==0: self.autologwrite(buf, logtitle=logtitle)
543
544
545 - def readfrombuffer(self,buf,autolog=True,logtitle="<read data>"):
546 'Reads this packet from the supplied buffer'
547 self._bufferstartoffset=buf.getcurrentoffset()
548 if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
549 self.__field_serial1=UINT(**{'sizeinbytes': 4})
550 self.__field_serial1.readfrombuffer(buf)
551 self.__field_entrynumber=UINT(**{'sizeinbytes': 2})
552 self.__field_entrynumber.readfrombuffer(buf)
553 self.__field_data1=UNKNOWN(**{'sizeinbytes': 127})
554 self.__field_data1.readfrombuffer(buf)
555 self.__field_ringtone=UINT(**{'sizeinbytes': 2})
556 self.__field_ringtone.readfrombuffer(buf)
557 self.__field_wallpaper=UINT(**{'sizeinbytes': 2})
558 self.__field_wallpaper.readfrombuffer(buf)
559 self.__field_data2=UNKNOWN(**{'sizeinbytes': 248})
560 self.__field_data2.readfrombuffer(buf)
561 self._bufferendoffset=buf.getcurrentoffset()
562
563
565 return self.__field_serial1.getvalue()
566
567 - def __setfield_serial1(self, value):
568 if isinstance(value,UINT):
569 self.__field_serial1=value
570 else:
571 self.__field_serial1=UINT(value,**{'sizeinbytes': 4})
572
573 - def __delfield_serial1(self): del self.__field_serial1
574
575 serial1=property(__getfield_serial1, __setfield_serial1, __delfield_serial1, None)
576
578 return self.__field_entrynumber.getvalue()
579
580 - def __setfield_entrynumber(self, value):
581 if isinstance(value,UINT):
582 self.__field_entrynumber=value
583 else:
584 self.__field_entrynumber=UINT(value,**{'sizeinbytes': 2})
585
586 - def __delfield_entrynumber(self): del self.__field_entrynumber
587
588 entrynumber=property(__getfield_entrynumber, __setfield_entrynumber, __delfield_entrynumber, None)
589
591 return self.__field_data1.getvalue()
592
593 - def __setfield_data1(self, value):
594 if isinstance(value,UNKNOWN):
595 self.__field_data1=value
596 else:
597 self.__field_data1=UNKNOWN(value,**{'sizeinbytes': 127})
598
599 - def __delfield_data1(self): del self.__field_data1
600
601 data1=property(__getfield_data1, __setfield_data1, __delfield_data1, None)
602
604 return self.__field_ringtone.getvalue()
605
606 - def __setfield_ringtone(self, value):
607 if isinstance(value,UINT):
608 self.__field_ringtone=value
609 else:
610 self.__field_ringtone=UINT(value,**{'sizeinbytes': 2})
611
612 - def __delfield_ringtone(self): del self.__field_ringtone
613
614 ringtone=property(__getfield_ringtone, __setfield_ringtone, __delfield_ringtone, None)
615
617 return self.__field_wallpaper.getvalue()
618
619 - def __setfield_wallpaper(self, value):
620 if isinstance(value,UINT):
621 self.__field_wallpaper=value
622 else:
623 self.__field_wallpaper=UINT(value,**{'sizeinbytes': 2})
624
625 - def __delfield_wallpaper(self): del self.__field_wallpaper
626
627 wallpaper=property(__getfield_wallpaper, __setfield_wallpaper, __delfield_wallpaper, None)
628
630 return self.__field_data2.getvalue()
631
632 - def __setfield_data2(self, value):
633 if isinstance(value,UNKNOWN):
634 self.__field_data2=value
635 else:
636 self.__field_data2=UNKNOWN(value,**{'sizeinbytes': 248})
637
638 - def __delfield_data2(self): del self.__field_data2
639
640 data2=property(__getfield_data2, __setfield_data2, __delfield_data2, None)
641
642 - def iscontainer(self):
644
646 yield ('serial1', self.__field_serial1, None)
647 yield ('entrynumber', self.__field_entrynumber, None)
648 yield ('data1', self.__field_data1, None)
649 yield ('ringtone', self.__field_ringtone, None)
650 yield ('wallpaper', self.__field_wallpaper, None)
651 yield ('data2', self.__field_data2, None)
652
653
654
655
656 -class pbfile(BaseProtogenClass):
657 __fields=['items']
658
667
668
671
672
688
689
690
691 - def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
697
698
706
707
709 return self.__field_items.getvalue()
710
712 if isinstance(value,LIST):
713 self.__field_items=value
714 else:
715 self.__field_items=LIST(value,**{ 'elementclass': pbfileentry })
716
718
719 items=property(__getfield_items, __setfield_items, __delfield_items, None)
720
723
725 yield ('items', self.__field_items, None)
726
727
728
729
730 -class PathIndexEntry(BaseProtogenClass):
731 __fields=['pathname']
732
733 - def __init__(self, *args, **kwargs):
734 dict={}
735
736 dict.update(kwargs)
737
738 super(PathIndexEntry,self).__init__(**dict)
739 if self.__class__ is PathIndexEntry:
740 self._update(args,dict)
741
742
743 - def getfields(self):
745
746
747 - def _update(self, args, kwargs):
748 super(PathIndexEntry,self)._update(args,kwargs)
749 keys=kwargs.keys()
750 for key in keys:
751 if key in self.__fields:
752 setattr(self, key, kwargs[key])
753 del kwargs[key]
754
755 if __debug__:
756 self._complainaboutunusedargs(PathIndexEntry,kwargs)
757 if len(args):
758 dict2={'sizeinbytes': 255, 'encoding': PHONE_ENCODING, 'default': '' }
759 dict2.update(kwargs)
760 kwargs=dict2
761 self.__field_pathname=USTRING(*args,**dict2)
762
763
764
765 - def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
766 'Writes this packet to the supplied buffer'
767 self._bufferstartoffset=buf.getcurrentoffset()
768 try: self.__field_pathname
769 except:
770 self.__field_pathname=USTRING(**{'sizeinbytes': 255, 'encoding': PHONE_ENCODING, 'default': '' })
771 self.__field_pathname.writetobuffer(buf)
772 self._bufferendoffset=buf.getcurrentoffset()
773 if autolog and self._bufferstartoffset==0: self.autologwrite(buf, logtitle=logtitle)
774
775
776 - def readfrombuffer(self,buf,autolog=True,logtitle="<read data>"):
777 'Reads this packet from the supplied buffer'
778 self._bufferstartoffset=buf.getcurrentoffset()
779 if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
780 self.__field_pathname=USTRING(**{'sizeinbytes': 255, 'encoding': PHONE_ENCODING, 'default': '' })
781 self.__field_pathname.readfrombuffer(buf)
782 self._bufferendoffset=buf.getcurrentoffset()
783
784
786 try: self.__field_pathname
787 except:
788 self.__field_pathname=USTRING(**{'sizeinbytes': 255, 'encoding': PHONE_ENCODING, 'default': '' })
789 return self.__field_pathname.getvalue()
790
791 - def __setfield_pathname(self, value):
792 if isinstance(value,USTRING):
793 self.__field_pathname=value
794 else:
795 self.__field_pathname=USTRING(value,**{'sizeinbytes': 255, 'encoding': PHONE_ENCODING, 'default': '' })
796
797 - def __delfield_pathname(self): del self.__field_pathname
798
799 pathname=property(__getfield_pathname, __setfield_pathname, __delfield_pathname, None)
800
801 - def iscontainer(self):
803
805 yield ('pathname', self.__field_pathname, None)
806
807
808
809
811 __fields=['items']
812
821
822
825
826
842
843
844
845 - def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
854
855
863
864
870
876
878
879 items=property(__getfield_items, __setfield_items, __delfield_items, None)
880
883
885 yield ('items', self.__field_items, None)
886