|
Package phones ::
Module p_lgvx9800
|
|
1
2
3 """Various descriptions of data specific to LG VX9800"""
4
5 from prototypes import *
6 from prototypeslg import *
7
8
9 from p_lg import *
10
11
12
13 from p_lgvx8100 import *
14
15
16 UINT=UINTlsb
17 BOOL=BOOLlsb
18
19
20 NUMPHONEBOOKENTRIES=1000
21 NUMEMAILS=2
22 NUMPHONENUMBERS=5
23 pb_file_name='pim/pbentry.dat'
24 wallpaper_id_file_name='pim/pbPictureIdSetAsPath.dat'
25 WALLPAPER_ID_PATH_MAX_LEN=80
26
27
28 MEDIA_TYPE_RINGTONE=0x0201
29 MEDIA_TYPE_IMAGE=0x0100
30 MEDIA_TYPE_SOUND=0x0402
31 MEDIA_TYPE_SDIMAGE=0x0008
32 MEDIA_TYPE_SDSOUND=0x000C
33 MEDIA_TYPE_VIDEO=0x0304
34 MEDIA_RINGTONE_DEFAULT_ICON=1
35 MEDIA_IMAGE_DEFAULT_ICON=0
36 MEDIA_VIDEO_DEFAULT_ICON=0
37
38
39 NUMCALENDARENTRIES=300
40
41
42
43 SPEEDDIALINDEX=1
44 MAXCALENDARDESCRIPTION=32
45
46 SMS_CANNED_MAX_ITEMS=18
47 SMS_CANNED_MAX_LENGTH=101
48
49 BREW_FILE_SYSTEM=1
50
51 PHONE_ENCODING='iso-8859-1'
52
53
54 pl_dir='mmc1/my_mp3_playlist'
55 pl_dir_len=len(pl_dir)+1
56 pl_extension='.pl'
57 pl_extension_len=len(pl_extension)
58 mp3_dir='mmc1/my_mp3'
59 mp3_dir_len=len(mp3_dir)+1
60 mp3_index_file='dload/my_mp3.dat'
61
62
63 broken_filelist_date=True
64
65
66 -class indexentry(BaseProtogenClass):
67 __fields=['index', 'type', 'filename', 'icon', 'date', 'dunno', 'size']
68
69 - def __init__(self, *args, **kwargs):
70 dict={}
71
72 dict.update(kwargs)
73
74 super(indexentry,self).__init__(**dict)
75 if self.__class__ is indexentry:
76 self._update(args,dict)
77
78
79 - def getfields(self):
81
82
83 - def _update(self, args, kwargs):
84 super(indexentry,self)._update(args,kwargs)
85 keys=kwargs.keys()
86 for key in keys:
87 if key in self.__fields:
88 setattr(self, key, kwargs[key])
89 del kwargs[key]
90
91 if __debug__:
92 self._complainaboutunusedargs(indexentry,kwargs)
93 if len(args): raise TypeError('Unexpected arguments supplied: '+`args`)
94
95
96
97 - def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
98 'Writes this packet to the supplied buffer'
99 self._bufferstartoffset=buf.getcurrentoffset()
100 self.__field_index.writetobuffer(buf)
101 self.__field_type.writetobuffer(buf)
102 self.__field_filename.writetobuffer(buf)
103 try: self.__field_icon
104 except:
105 self.__field_icon=UINT(**{'sizeinbytes': 4, 'default':0})
106 self.__field_icon.writetobuffer(buf)
107 try: self.__field_date
108 except:
109 self.__field_date=UINT(**{'sizeinbytes': 4, 'default': 0})
110 self.__field_date.writetobuffer(buf)
111 self.__field_dunno.writetobuffer(buf)
112 try: self.__field_size
113 except:
114 self.__field_size=UINT(**{'sizeinbytes': 4, 'default': 0})
115 self.__field_size.writetobuffer(buf)
116 self._bufferendoffset=buf.getcurrentoffset()
117 if autolog and self._bufferstartoffset==0: self.autologwrite(buf, logtitle=logtitle)
118
119
120 - def readfrombuffer(self,buf,autolog=True,logtitle="<read data>"):
121 'Reads this packet from the supplied buffer'
122 self._bufferstartoffset=buf.getcurrentoffset()
123 if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
124 self.__field_index=UINT(**{'sizeinbytes': 2})
125 self.__field_index.readfrombuffer(buf)
126 self.__field_type=UINT(**{'sizeinbytes': 2})
127 self.__field_type.readfrombuffer(buf)
128 self.__field_filename=USTRING(**{'sizeinbytes': 80, 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False })
129 self.__field_filename.readfrombuffer(buf)
130 self.__field_icon=UINT(**{'sizeinbytes': 4, 'default':0})
131 self.__field_icon.readfrombuffer(buf)
132 self.__field_date=UINT(**{'sizeinbytes': 4, 'default': 0})
133 self.__field_date.readfrombuffer(buf)
134 self.__field_dunno=UINT(**{'sizeinbytes': 4})
135 self.__field_dunno.readfrombuffer(buf)
136 self.__field_size=UINT(**{'sizeinbytes': 4, 'default': 0})
137 self.__field_size.readfrombuffer(buf)
138 self._bufferendoffset=buf.getcurrentoffset()
139
140
142 return self.__field_index.getvalue()
143
144 - def __setfield_index(self, value):
145 if isinstance(value,UINT):
146 self.__field_index=value
147 else:
148 self.__field_index=UINT(value,**{'sizeinbytes': 2})
149
150 - def __delfield_index(self): del self.__field_index
151
152 index=property(__getfield_index, __setfield_index, __delfield_index, None)
153
154 - def __getfield_type(self):
155 return self.__field_type.getvalue()
156
157 - def __setfield_type(self, value):
158 if isinstance(value,UINT):
159 self.__field_type=value
160 else:
161 self.__field_type=UINT(value,**{'sizeinbytes': 2})
162
163 - def __delfield_type(self): del self.__field_type
164
165 type=property(__getfield_type, __setfield_type, __delfield_type, None)
166
168 return self.__field_filename.getvalue()
169
170 - def __setfield_filename(self, value):
171 if isinstance(value,USTRING):
172 self.__field_filename=value
173 else:
174 self.__field_filename=USTRING(value,**{'sizeinbytes': 80, 'encoding': PHONE_ENCODING, 'raiseonunterminatedread': False, 'raiseontruncate': False })
175
176 - def __delfield_filename(self): del self.__field_filename
177
178 filename=property(__getfield_filename, __setfield_filename, __delfield_filename, "includes full pathname")
179
180 - def __getfield_icon(self):
181 try: self.__field_icon
182 except:
183 self.__field_icon=UINT(**{'sizeinbytes': 4, 'default':0})
184 return self.__field_icon.getvalue()
185
186 - def __setfield_icon(self, value):
187 if isinstance(value,UINT):
188 self.__field_icon=value
189 else:
190 self.__field_icon=UINT(value,**{'sizeinbytes': 4, 'default':0})
191
192 - def __delfield_icon(self): del self.__field_icon
193
194 icon=property(__getfield_icon, __setfield_icon, __delfield_icon, None)
195
196 - def __getfield_date(self):
197 try: self.__field_date
198 except:
199 self.__field_date=UINT(**{'sizeinbytes': 4, 'default': 0})
200 return self.__field_date.getvalue()
201
202 - def __setfield_date(self, value):
203 if isinstance(value,UINT):
204 self.__field_date=value
205 else:
206 self.__field_date=UINT(value,**{'sizeinbytes': 4, 'default': 0})
207
208 - def __delfield_date(self): del self.__field_date
209
210 date=property(__getfield_date, __setfield_date, __delfield_date, "i think this is bitfield of the date")
211
213 return self.__field_dunno.getvalue()
214
215 - def __setfield_dunno(self, value):
216 if isinstance(value,UINT):
217 self.__field_dunno=value
218 else:
219 self.__field_dunno=UINT(value,**{'sizeinbytes': 4})
220
221 - def __delfield_dunno(self): del self.__field_dunno
222
223 dunno=property(__getfield_dunno, __setfield_dunno, __delfield_dunno, None)
224
225 - def __getfield_size(self):
226 try: self.__field_size
227 except:
228 self.__field_size=UINT(**{'sizeinbytes': 4, 'default': 0})
229 return self.__field_size.getvalue()
230
231 - def __setfield_size(self, value):
232 if isinstance(value,UINT):
233 self.__field_size=value
234 else:
235 self.__field_size=UINT(value,**{'sizeinbytes': 4, 'default': 0})
236
237 - def __delfield_size(self): del self.__field_size
238
239 size=property(__getfield_size, __setfield_size, __delfield_size, "size of the file, can be set to zero")
240
241 - def iscontainer(self):
243
245 yield ('index', self.__field_index, None)
246 yield ('type', self.__field_type, None)
247 yield ('filename', self.__field_filename, "includes full pathname")
248 yield ('icon', self.__field_icon, None)
249 yield ('date', self.__field_date, "i think this is bitfield of the date")
250 yield ('dunno', self.__field_dunno, None)
251 yield ('size', self.__field_size, "size of the file, can be set to zero")
252
253
254
255
257 "Used for tracking wallpaper and ringtones"
258 __fields=['items']
259
268
269
272
273
289
290
291
292 - def writetobuffer(self,buf,autolog=True,logtitle="<written data>"):
293 'Writes this packet to the supplied buffer'
294 self._bufferstartoffset=buf.getcurrentoffset()
295 try: self.__field_items
296 except:
297 self.__field_items=LIST(**{'elementclass': indexentry, 'createdefault': True})
298 self.__field_items.writetobuffer(buf)
299 self._bufferendoffset=buf.getcurrentoffset()
300 if autolog and self._bufferstartoffset==0: self.autologwrite(buf, logtitle=logtitle)
301
302
304 'Reads this packet from the supplied buffer'
305 self._bufferstartoffset=buf.getcurrentoffset()
306 if autolog and self._bufferstartoffset==0: self.autologread(buf, logtitle=logtitle)
307 self.__field_items=LIST(**{'elementclass': indexentry, 'createdefault': True})
308 self.__field_items.readfrombuffer(buf)
309 self._bufferendoffset=buf.getcurrentoffset()
310
311
313 try: self.__field_items
314 except:
315 self.__field_items=LIST(**{'elementclass': indexentry, 'createdefault': True})
316 return self.__field_items.getvalue()
317
319 if isinstance(value,LIST):
320 self.__field_items=value
321 else:
322 self.__field_items=LIST(value,**{'elementclass': indexentry, 'createdefault': True})
323
325
326 items=property(__getfield_items, __setfield_items, __delfield_items, None)
327
330
332 yield ('items', self.__field_items, None)
333
334
335
336
337 -class playlistentry(BaseProtogenClass):
338 __fields=['name', 'date', 'dunno1', 'dunno2', 'dunno3']
339
340 - def __init__(self, *args, **kwargs):
341 dict={}
342
343 dict.update(kwargs)
344
345 super(playlistentry,self).__init__(**dict)
346 if self.__class__ is playlistentry:
347 self._update(args,dict)
348
349
350 - def getfields(self):