comparison src/ui3/bmi/mmiprogressbar.c @ 420:e8ddbb0837ed

src/ui3: initial import of TCS3/LoCosto BMI & MFW code
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 21 Jan 2018 03:09:00 +0000
parents
children
comparison
equal deleted inserted replaced
419:59143cd42ec7 420:e8ddbb0837ed
1 /* =========================================================
2 * Texas Instruments OMAP(TM) Platform Software
3 * (c) Copyright Texas Instruments, Incorporated. All Rights Reserved.
4 *
5 * Use of this software is controlled by the terms and conditions found
6 * in the license agreement under which this software has been supplied.
7 * ========================================================== */
8
9 /*==========================================================
10 * @file mmiprogressbar
11 *
12 * This provides the functionality of File Manager Applications.
13 * It supports mp3/midi file plaback progress
14 *
15 * @path \bmi\condat\ms\src\mmi
16 *
17 * @rev 00.01
18 */
19 /* ========================================================== */
20 /*===========================================================
21 *!
22 *! Revision History
23 *! ===================================
24
25 July 03, 2007 DRT: OMAPS00137912 x0066814
26 Description: AAC player Forward and Rewind feature development
27 Solution: In mmi_progress_dialog_kbd_cb(), under case KCD_MNURIGHT and case KCD_MNULEFT
28 added a condition to check if the selected file is a AAC file.
29
30 Apr 10, 2007 DRT: OMAPS00125151 x0039928
31 Description: MMI displays Progress Bar for only one Minute not for the entire duration of media (MIDI, MP3) play.
32 Solution: playback time from AS is now received in seconds instead of milliseconds.
33
34 Apr 05, 2007 DRT: OMAPS00124890 x0039928
35 Description: MMI back ground screen is some time blue and some time white.
36 Solution: Back ground is set to White color.
37
38 Apr 05, 2007 DRT: OMAPS00124881 x0039928
39 Description: AAC progress bar does not work
40 Solution: Progress bar is displayed if the callback is called from audio service irrespective
41 of any conditions.
42
43 Mar 28, 2007 ER: OMAPS00106188 x0039928
44 Description: Align Midi application menu choices and audio Player menu choices
45
46 * =========================================================== */
47
48 /******************************************************************************
49 Include Files
50 *******************************************************************************/
51 #include <string.h>
52 #include <stdio.h>
53 #include <stdlib.h>
54
55
56 //#include "\bmi\Condat\MS\SRC\aci\aci_cmh.h"
57 //#include "\bmi\Condat\MS\SRC\mfw\mfw_phb.h"
58
59 //#include "\bmi\Condat\MS\SRC\bmi\mmiDummy.h"
60
61 //#include "\bmi\condat\ms\src\mms\mg4def.h"
62 //#include "\bmi\condat\ms\src\mms\Color.h"
63 #include "mfw_sys.h"
64 #include "ATBPb.h"
65 #include "Mfw_mfw.h"
66
67 //#include "\bmi\Condat\MS\SRC\mfw\Mfw_win.h"
68 //#include "MmiDummy.h"
69 #include "mfw_tim.h"
70 #include "mfw_icn.h"
71 #include "Mfw_mnu.h"
72 #include "Mfw_sat.h"
73 #include "mfw_kbd.h"
74 #include "mmiColours.h"
75 #include "MmiDummy.h"
76 #include "mfw_fm.h"
77 //#include "aci_cmh.h"
78
79 //#include "\bmi\Condat\MS\SRC\atb\ATBPb.h"
80 //#include "\bmi\gdi\dspl.h"
81 #include "MmiSoftKeys.h"
82 #include "MmiDialogs.h"
83 #include "MmiLists.h"
84 #include "mmiFileManager.h"
85 #include "Mmiprogressbar.h"
86
87 #define FWD_REW_TIME 10
88
89 #define PAUSE 0
90 #define RESUME 1
91 #define PB_FORWARD 2
92 #define PB_REWIND 4
93
94 UBYTE aud_state = 1;
95 BOOL pb_block_keys = 0;
96 extern T_MMI_FM_STRUCT *fm_data;
97 T_MFW_HND pb_win;
98 MfwHnd tim;
99 int progress;
100 extern BOOL IsMP3Playing;//Daisy tang added for Real Resume feature 20071107
101 extern BOOL IsRealPaused;//Daisy tang added for Real Resume feature 20071107
102
103 static int mmi_progress_dialog_kbd_cb (MfwEvt e, MfwKbd *k);
104
105 void pbar_update(int playback_time, int total_time)
106 {
107 int pp;
108
109 if(playback_time <= total_time)
110 {
111 /* Apr 10, 2007 DRT: OMAPS00125151 x0039928 */
112 pp = (playback_time * 100)/total_time;
113 MmiProgressIndication( x_screen, y_screen, bar_width, bar_height, playback_time, pp);
114 pb_block_keys = 0;
115 aud_state = RESUME;
116 }
117 }
118
119 /******************************************************************************************/
120 // Call-Back function
121
122 static int ProgressBar_cb(MfwEvt e, MfwWin *w)
123 {
124
125 switch(e)
126 {
127 case E_WIN_VISIBLE:
128 //playback_percentage
129 progress = 0;
130 MmiProgressIndication( x_screen, y_screen, bar_width, bar_height, download_percentage, 0);
131 displaySoftKeys(TxtPlayerPause,TxtSoftBack);
132 // winShow(w);
133 break;
134
135
136 default:
137 return 0;
138
139 }
140
141
142
143 return MFW_EVENT_CONSUMED;
144
145 }
146
147
148
149 // Entry Function
150
151 T_MFW_HND progress_bar(T_MFW_HND parent )
152
153 {
154 T_MFW_WIN * win;
155
156
157 tProgressData * data = (tProgressData *)ALLOC_MEMORY (sizeof (tProgressData));
158
159 // T_MFW_HND parent = mfwParent( mfw_header());
160
161
162
163
164 if (data EQ NULL)
165 {
166 return NULL;
167 }
168
169
170 data->win = win_create (parent, 0, E_WIN_VISIBLE, (T_MFW_CB)ProgressBar_cb);
171
172 if (data->win EQ NULL)
173 {
174
175 return NULL;
176 }
177
178 pb_win = data->win;
179 data->mmi_control.data = (void *)data;
180 win = ((T_MFW_HDR *)data->win)->data;
181 win->user = (void *)data;
182 data->parent_win = parent;
183
184 // MmiProgressIndication( x_screen, y_screen, bar_width, bar_height, download_percentage, playback_percentage);
185 data->kbd = kbd_create (data->win,KEY_ALL|KEY_MAKE,(T_MFW_CB)mmi_progress_dialog_kbd_cb);
186 winShow(data->win);
187 return data->win;
188
189
190 }
191
192 // Progress Bar Implementation
193
194 void MmiProgressIndication(UBYTE x, UBYTE y, UBYTE b_width, UBYTE b_height, int pt, int pp)
195 {
196
197
198 int txtId1, x1, y1;
199 char * str1;
200
201 char str3[10];
202 // colour to fill in the Bar for Download & PlayBack Progress
203 // U32 download_Col = COL_Magenta;
204 U32 playback_Col = COL_Blue;
205
206
207 // Width of Progress bar showing Download & Playback progress
208 // Float download_progress_width;
209 Float playback_progress_width;
210
211 /* Apr 05, 2007 DRT: OMAPS00124890 x0039928 */
212 dspl_SetBgdColour (COL_White);
213 dspl_ClearAll();
214
215 // Draw the Progress Bar whose Width = width & Height = height
216 dspl_DrawFilledColRect( x,y,x+b_width, y+b_height, COL_MidGrey);
217
218 #if 0
219 // dspl_Enable(1);
220
221 /*** DOWNLOAD PROGRESS ***/
222
223 if(download_percentage <=0 )
224 {
225
226 // Do nothing
227
228 return;
229
230 }
231
232 else if(download_percentage >=100)
233 {
234 // Fill the Entire Bar
235 dspl_DrawFilledColRect( x,y, x+b_width, y+b_height , download_Col);
236 //return;
237 // dspl_Enable(1);
238 }
239
240 else
241 {
242
243 // download_progress_width = (b_width/100)*download_percentage;
244
245 // Fill the Bar to Show the Download progress
246 // dspl_DrawFilledColRect( x,y, x+( int )download_progress_width, y+b_height , download_Col);
247
248 // dspl_Enable(1);
249
250 /*** PLAYBACK PROGRESS ***/
251
252 dspl_DrawFilledColRect( x,y, x+b_width, y+b_height , download_Col);
253
254 if(playback_percentage <= 0 )
255 {
256 // Do nothing
257
258 return;
259
260 }
261
262 else if(playback_percentage >=100)
263 {
264 // Fill the Entire Bar
265 dspl_DrawFilledColRect( x,y, x+b_width, y+b_height , playback_Col);
266 // dspl_Enable(1);
267 return;
268
269 }
270
271 else
272 {
273 #endif
274
275 /* // Clear the Area to show the Playback progress
276
277 dspl_Clear(x,y, x+playback_percentage,y+height);
278 */
279
280
281 playback_progress_width = (b_width/100.00)*pp;
282 switch(aud_state)
283 {
284 case PAUSE:
285 txtId1 = TxtPlayerPause;
286 break;
287 case RESUME:
288 txtId1 = TxtPlayerPlaying;
289 break;
290 case PB_FORWARD:
291 txtId1 = TxtPlayerForwarding;
292 break;
293 case PB_REWIND:
294 txtId1 = TxtPlayerRewinding;
295 break;
296 default:
297 txtId1=TxtNull;
298 break;
299 }
300 str1 = MmiRsrcGetText(txtId1);
301
302
303 // Fill the Bar to Show the Playback progress
304 dspl_DrawFilledColRect(x,y, x+(int)playback_progress_width ,y+b_height , playback_Col);
305 // displaySoftKeys(TxtSoftOptions,TxtSoftBack);
306 if(aud_state == PAUSE)
307 displaySoftKeys(TxtPlayerResume,TxtSoftBack);
308 else
309 displaySoftKeys(TxtPlayerPause,TxtSoftBack);
310
311 x1= (SCREEN_SIZE_X/2) - (dspl_GetTextExtent(str1,0) / 2) ;
312 y1= (SCREEN_SIZE_Y -Mmi_layout_softkeyHeight())/2 - Mmi_layout_line_height();
313
314 sprintf(str3,"%d:%d", pt/60, pt%60);
315 dspl_TextOut(x,y - 20,DSPL_TXTATTR_NORMAL,str3);
316 dspl_TextOut(x1,y1,DSPL_TXTATTR_NORMAL,str1);
317 dspl_Enable(1);
318
319 #if 0
320 }
321
322
323 }
324 #endif
325
326 }
327
328
329
330 /*******************************************************************************
331 $Function: mmi_progress_dialog_kbd_cb
332
333 $Description: Handler for key events for the copy progress window
334
335 $Returns: Execution status
336
337 $Arguments: e -window event Id
338 k -key event
339 *******************************************************************************/
340 static int mmi_progress_dialog_kbd_cb (MfwEvt e, MfwKbd *k)
341 {
342
343 T_MFW_HND win = mfwParent( mfw_header());
344
345 T_FM_CURDIR *cur_dir = fm_data->cur_dir;
346
347 TRACE_FUNCTION("mmi_progress_dialog_kbd_cb");
348 if (!(e & KEY_MAKE))
349 {
350 return MFW_EVENT_CONSUMED;
351 }
352
353 switch (k->code)
354 {
355 case KCD_LEFT:
356 if(aud_state == PAUSE)
357 {
358 IsMP3Playing = TRUE;//Daisy tang added for Real Resume feature 20071107
359 mfw_fm_audResume();
360 aud_state = RESUME;
361 displaySoftKeys(TxtPlayerPause,TxtSoftBack);
362 }
363 else
364 {
365 IsMP3Playing = FALSE;//Daisy tang added for Real Resume feature 20071107
366 mfw_fm_audPause();
367 aud_state = PAUSE;
368 displaySoftKeys(TxtPlayerResume,TxtSoftBack);
369 }
370 break;
371 case KCD_RIGHT:
372 case KCD_HUP:
373 IsMP3Playing = FALSE;//Daisy tang added for Real Resume feature 20071107
374 mfw_fm_audStop();
375 break;
376
377 case KCD_MNURIGHT:
378 if((cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_MP3)||
379 (cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_MIDI)||
380 /*July 03, 2007 DRT: OMAPS00137912 x0066814*/
381 (cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_AAC))
382 if(pb_block_keys == 0)
383 {
384 pb_block_keys = 1;
385 aud_state = PB_FORWARD;
386 displayMenuKeys(MENU_KEY_WAIT);
387 as_forward(FWD_REW_TIME,NULL);
388 }
389 break;
390
391 case KCD_MNULEFT:
392 if((cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_MP3)||
393 (cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_MIDI)||
394 /*July 03, 2007 DRT: OMAPS00137912 x0066814*/
395 (cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_AAC))
396 if(pb_block_keys == 0)
397 {
398 pb_block_keys = 1;
399 aud_state = PB_REWIND;
400 displayMenuKeys(MENU_KEY_WAIT);
401 as_rewind(FWD_REW_TIME, NULL);
402 }
403 break;
404 }
405 return MFW_EVENT_CONSUMED;
406 }
407
408
409
410
411
412
413
414
415
416
417
418