📄 aplayer.c
字号:
head 1.2;access;symbols START:1.1.1.1 F[Cujitsu:1.1.1;locks; strict;comment @ * @;1.2date 2004.09.30.04.01.43; author floyd; state Exp;branches;next 1.1;deltatype text;permissions 644;commitid dc8415b84a31938;kopt kv;filename @guitest.c@;1.1date 2004.09.30.01.37.06; author floyd; state Exp;branches 1.1.1.1;next ;deltatype text;permissions 644;1.1.1.1date 2004.09.30.01.37.06; author floyd; state Exp;branches;next ;deltatype text;permissions 644;desc@@1.2log@replace to new file@text@/*************************************************//** **//** Reference program for SPD **//** GUI (Widget Manager) test **//** Application Reference program **//** Copyright (C) 2004 FMC / Fujitsu **//** **//*************************************************//* * $Log: guitest.c,v $ * Revision 1.3 2004/06/10 16:30:48 root * local bug fix * * Revision 1.2 2004/06/10 16:30:00 root * to make simple * * Revision 1.1 2004/05/29 12:36:17 root * Initial revision * * */#include <stdio.h>#include <stdio.h>#include <string.h>#include <SubApplication/WidgetMgr/inc/sa_widget_manager.h>#include <AbsDeviceDrv/FRV_Companion/VideoDevice/inc/ADD_VideoOut.h>#include <AbsDeviceDrv/ADK_Hard/FPGAdevice/inc/ADD_FPGAswitch.h>WMWidget *mplayer;WMWidget *vbutton;WMWidget *mediaframe;WMWidget *skin, *title, *ruller, *play, *stop, *pause, *ff, *rw, *qqvga;WMWidget *mtitle, *id_title, *martist, *id_artist;WMWidget *vplay, *vstop, *vpause, *vff, *vrw, *vnull;int status_flag = 1; // 0: play 1: stop 2: pause 3: ff 4: rwvoid make_widget_list(void);void cb_play(WMWindow *);void cb_stop(WMWindow *);void cb_pause(WMWindow *);void cb_ff(WMWindow *);void cb_rw(WMWindow *);void cb_display_time(WMWindow *);WMContext wc;char fname[32];int main(int argc, char** argv){ if(argc < 2){ printf("guiplay filename\n"); exit(-1); } strcpy(fname, argv[1]); // setting graphic information wc.Graphic = GON; wc.GSIZE = C2_QVGA; wc.width = QVGA_W; wc.height = QVGA_H; wc.MonitorSW = MON; wc.InputDevice = KEY_DEVICE; wc.handle_interval = 30; // [ms] if(argc > 3 && !strcmp(argv[2], "-fb")){ printf("Frame buffer specified mode\n"); wc.fb = atoi(argv[3]); } // initialize widget context if(SA_WM_init(&wc) != 0){ exit(-1); } // make widget GUI design and enable make_widget_list(); SA_WM_widget_show(mplayer); // activate player skin graphic SA_WM_widget_show(mediaframe); // activate player skin graphic SA_WM_widget_show(vbutton); // activate button action // list up prepared widget for debug// SA_WM_CheckWidget(); // start event watching SA_WM_main();}void make_widget_list(){ WMEvent *ev_play, *ev_stop, *ev_pause, *ev_ff, *ev_rw, *ev_null; char titile[20], artist[20]; int ret; ev_play = (WMEvent *)malloc(sizeof(WMEvent)); ev_stop = (WMEvent *)malloc(sizeof(WMEvent)); ev_pause = (WMEvent *)malloc(sizeof(WMEvent)); ev_ff = (WMEvent *)malloc(sizeof(WMEvent)); ev_rw = (WMEvent *)malloc(sizeof(WMEvent)); ev_null = (WMEvent *)malloc(sizeof(WMEvent)); // create new window graphic designed window mplayer = SA_WM_window_new(WM_WINDOW_TOPLEVEL); // entry graphic data skin = SA_WM_pixmap_create_from_xpm(NULL, 0, 0, "icon/skin.bmp"); ruller= SA_WM_pixmap_create_from_xpm(NULL, 10, 187, "icon/ruller.bmp"); play = SA_WM_pixmap_create_from_xpm(NULL, 100, 200, "icon/play.bmp"); stop = SA_WM_pixmap_create_from_xpm(NULL, 40, 200, "icon/stop.bmp"); pause = SA_WM_pixmap_create_from_xpm(NULL, 70, 200, "icon/pause.bmp"); ff = SA_WM_pixmap_create_from_xpm(NULL, 130, 200, "icon/ff.bmp"); rw = SA_WM_pixmap_create_from_xpm(NULL, 10, 200, "icon/rw.bmp"); id_title = SA_WM_label_new("歌曲名称:", 34, 50, 80, 16); mtitle = SA_WM_label_new("No inform.", 114, 50, 160, 16); id_artist = SA_WM_label_new("歌手姓名:", 34, 70, 80, 16); martist = SA_WM_label_new("No inform.", 114, 70, 160, 16); SA_WM_reverse_image(stop); status_flag = 1; // pack all of graphic objects SA_WM_container_add(mplayer, skin); //SA_WM_container_add(mplayer, ruller); SA_WM_container_add(mplayer, play); SA_WM_container_add(mplayer, stop); SA_WM_container_add(mplayer, pause); SA_WM_container_add(mplayer, ff); SA_WM_container_add(mplayer, rw); //SA_WM_container_add(mplayer, id_album); SA_WM_container_add(mplayer, id_title); SA_WM_container_add(mplayer, mtitle); SA_WM_container_add(mplayer, id_artist); SA_WM_container_add(mplayer, martist); // button group (this is vertual widget. no graphic) vbutton = SA_WM_window_new(WM_WINDOW_TOPLEVEL); // set button vplay = SA_WM_button_new(); vstop = SA_WM_button_new(); vpause = SA_WM_button_new(); vff = SA_WM_button_new(); vrw = SA_WM_button_new(); vnull = SA_WM_button_new(); SA_WM_container_add(vbutton, vplay); SA_WM_container_add(vbutton, vstop); SA_WM_container_add(vbutton, vpause); SA_WM_container_add(vbutton, vff); SA_WM_container_add(vbutton, vrw); SA_WM_container_add(vbutton, vnull); // connect button - event - action ev_play->keyval = SW2; SA_WM_signal_connect(vplay, ev_play, &cb_play, NULL); ev_stop->keyval = SW5; SA_WM_signal_connect(vstop, ev_stop, &cb_stop, NULL); ev_pause->keyval = SW3; SA_WM_signal_connect(vpause, ev_pause, &cb_pause, NULL); ev_ff->keyval = SW4; SA_WM_signal_connect(vff, ev_ff, &cb_ff, NULL); ev_rw->keyval = SW1; SA_WM_signal_connect(vrw, ev_rw, &cb_rw, NULL); ev_null->keyval = SW_OFF; // without key SA_WM_signal_connect(vnull, ev_null, &cb_display_time, NULL); start_audio_play(fname); ret = audio_get_title(title); if(ret == 0){ printf("[%s]\n", title); SA_WM_label(mtitle, title); } ret = audio_get_artist(artist); if(ret == 0){ printf("[%s]\n", artist); SA_WM_label(martist, artist); }}void cb_play(WMWindow *win){ switch(status_flag){ case 0: // no Play -> Play return; case 1: printf("* Play Start *\n"); SA_WM_reverse_image(stop); SA_WM_reverse_image(play);// start_audio_play(fname); audio_play(); break; case 2: printf("pause->[Play]\n"); SA_WM_reverse_image(pause); SA_WM_reverse_image(play); audio_play(); break; case 3: printf("ff->[Play]\n"); SA_WM_reverse_image(ff); SA_WM_reverse_image(play); audio_play(); break; case 4: printf("rw->[Play]\n"); SA_WM_reverse_image(rw); SA_WM_reverse_image(play); audio_play(); break; default: break; } status_flag = 0;}void cb_stop(WMWindow *win){ printf("Bye-bye\n"); exit(1);}void cb_pause(WMWindow *win){ switch(status_flag){ case 0: printf("[PAUSE]\n"); SA_WM_reverse_image(pause); SA_WM_reverse_image(play); audio_pause(); break; case 1: return; case 2: return; case 3: return; case 4: return; default: return; } status_flag = 2;}void cb_ff(WMWindow *win){ switch(status_flag){ case 0: printf("[FF]\n"); SA_WM_reverse_image(ff); SA_WM_reverse_image(play); break; case 1: return; case 2: return; case 3: return; case 4: return; default: return; } status_flag = 3;}void cb_rw(WMWindow *win){ switch(status_flag){ case 0: printf("[RW]\n"); SA_WM_reverse_image(rw); SA_WM_reverse_image(play); break; case 1: return; case 2: return; case 3: return; case 4: return; default: return; } status_flag = 4;}void cb_display_time(WMWindow *win){// printf("NULL event\n"); audio_get_play_time();}@1.1log@Initial revision@text@@1.1.1.1log@native SPD@text@@
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -