📄 audio.c
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#ifndef WIN32#include <unistd.h>#include <time.h>#include <sys/time.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#endif#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>#include <minigui/mywindows.h>#include <minigui/mgext.h>#include <minigui/skin.h>#include "bitmap.h"
#include "english_config.h"//controlbar skin id#define SIID_MUSICPLAY_SETUP 1#define SIID_MUSICPLAY_OPTION 2#define SIID_MUSICPLAY_BROWSER 3//music play main skin id#define SIID_MUSICPLAY_MAIN_VOLUME 10#define SIID_MUSICPLAY_MAIN_PROGRESS 11#define IDC_MUSICPLAY_CONTROL_BAR 100#define IDC_MUSICPLAY_CONTROL_MAIN 101#define ID_TIMER_VOLUME 300#define ID_TIME 200static int musicplay_controlbar_main_event_cb(HWND hwnd, skin_item_t *item, int event, void *data);static int musicplay_controlbar_msg_cb(HWND hWnd, int message, WPARAM wParam, LPARAM lParam, int *result);volatile static skin_item_t musicplay_controlbar_items[] ={ {SIID_MUSICPLAY_SETUP, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE, 13, 2, {0}, 1, "setup"}, {SIID_MUSICPLAY_OPTION, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE, 116, 2, {0}, 2, "options"}, {SIID_MUSICPLAY_BROWSER, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE, 219, 2, {0}, 3, "browser"}};skin_head_t musicplay_controlbar_skin_temp;skin_item_t musicplay_controlbar_items_temp[TABLESIZE(musicplay_controlbar_items)];volatile static skin_head_t musicplay_controlbar_skin ={ "", SKIN_STYLE_NONE, NULL, NULL, 0, 3, musicplay_controlbar_items_temp, FALSE};const char *musicplay_bmp_name[] ={ "playbar_bg.bmp", "button_up.bmp", "button_file.bmp", "button_other.bmp"};#define MUSICPLAY_BMP_NR sizeof(musicplay_bmp_name) / sizeof (char *)#define SIID_TIMER_ELAPSE 12#define SIID_TIMER_REMAIN 13#define SIID_TIMER_TOTAL 14static int totaltime = 97;static int musicplay_main_event_cb (HWND hwnd, skin_item_t *item, int event, void *data);static int musicplay_msg_cb (HWND hWnd, int message, WPARAM wParam, LPARAM lParam, int *result);static si_nrmslider_t musicplay_main_volume = {{0, 31, 0}, 3};static si_nrmslider_t musicplay_main_progress = {{0, 280, 0}, 3};static si_bmplabel_t timer_elapse = {"00:00", "0123456789:-"};//static si_bmplabel_t timer_remain = {"00:00", "0123456789:-"};static si_bmplabel_t timer_total = {"00:00", "0123456789:-"};volatile static skin_item_t musicplay_items[] ={ {SIID_MUSICPLAY_MAIN_PROGRESS, SI_TYPE_NRMSLIDER | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE | SI_NRMSLIDER_HORZ, 13, 128, {0}, 1, "", 0, &musicplay_main_progress}, {SIID_MUSICPLAY_MAIN_VOLUME, SI_TYPE_NRMSLIDER | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE | SI_NRMSLIDER_HORZ, 28, 177, {0}, 2, "", 0, &musicplay_main_volume}, {SIID_TIMER_ELAPSE, SI_TYPE_BMPLABEL | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE, 67, 156, {0}, 4, "", 0, &timer_elapse}, //{SIID_TIMER_REMAIN, SI_TYPE_BMPLABEL | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE, // 140, 156, {}, 4, "", 0, &timer_remain}, {SIID_TIMER_TOTAL, SI_TYPE_BMPLABEL | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE, 210, 156, {0}, 4, "", 0, &timer_total},};skin_head_t musicplay_skin_temp;skin_item_t musicplay_items_temp[TABLESIZE(musicplay_items)];volatile static skin_head_t musicplay_skin ={ "", SKIN_STYLE_NONE, NULL, NULL, 0, 4, musicplay_items_temp, FALSE};const char *musicplay_main_bmp_name[] ={ "musicplay_bg.bmp", "musicplay_slider_progress.bmp", "musicplay_slider_volume.bmp", "musicplay_slider_button.bmp", "digits.bmp"};#define MUSICPLAY_MAIN_BMP_NR sizeof(musicplay_main_bmp_name) / sizeof(char *)////////////////////////////////////////////////////////////////////////static int load_skin_bmps(skin_head_t *skin, BOOL load, const char *bmpname[], int nCount){ int i; if(load){ skin->bmps = (BITMAP *)calloc(nCount, sizeof(BITMAP)); } for(i = 0; i < nCount; i ++){ if (load) { if (pdag_load_bitmap((PBITMAP)&(skin->bmps[i]), NULL, NULL, bmpname[i]) < 0){ return -1; } else if (strcmp (bmpname[i], "digits.bmp") == 0) { ((PBITMAP)&skin->bmps [i])->bmType = BMP_TYPE_COLORKEY; ((PBITMAP)&skin->bmps [i])->bmColorKey = GetPixelInBitmap (&skin->bmps[i], 0, 0); } } else{ pdag_unload_bitmap((PBITMAP)&(skin->bmps[i])); } } if(!load) free((void *)skin->bmps); return 0;}/************************* skin controlbar function ******************/static int init_musicplay_controlbar (void){ memcpy (&musicplay_controlbar_skin_temp, (const void *)(&musicplay_controlbar_skin), sizeof (musicplay_controlbar_skin)); memcpy (&musicplay_controlbar_items_temp, &musicplay_controlbar_items, sizeof (musicplay_controlbar_items)); load_skin_bmps(&musicplay_controlbar_skin_temp, TRUE, musicplay_bmp_name, MUSICPLAY_BMP_NR); if (!skin_init(&musicplay_controlbar_skin_temp, musicplay_controlbar_main_event_cb, musicplay_controlbar_msg_cb)){ printf("skin init fail !\n"); } return 0;}static void create_musicplay_controlbar (HWND hWnd){ skin_head_t *pskin; HWND hControlBar; hControlBar = create_skin_control (&musicplay_controlbar_skin_temp, hWnd, IDC_MUSICPLAY_CONTROL_BAR, 0, 216, 320, 24 ); printf ("------------hControlBar: %x\n", hControlBar); pskin = get_window_skin (hControlBar);}static void destroy_musicplay_controlbar (void){ skin_deinit (&musicplay_controlbar_skin_temp); load_skin_bmps(&musicplay_controlbar_skin_temp, FALSE, musicplay_bmp_name, MUSICPLAY_BMP_NR);}static int musicplay_controlbar_main_event_cb (HWND hwnd, skin_item_t *item, int event, void *data){ if (event == SIE_BUTTON_CLICKED){ switch (item->id){ case SIID_MUSICPLAY_SETUP: break; case SIID_MUSICPLAY_OPTION: break; case SIID_MUSICPLAY_BROWSER: break; } } return 1;}static int musicplay_controlbar_msg_cb (HWND hWnd, int message, WPARAM wParam, LPARAM lParam, int *result){ *result = MSG_CB_GOON; return 0;}//////////////////////music play main skin function/////////static int init_musicplay(void){ memcpy(&musicplay_skin_temp, (const void *)(&musicplay_skin), sizeof (musicplay_skin)); memcpy(&musicplay_items_temp, &musicplay_items, sizeof (musicplay_items)); load_skin_bmps(&musicplay_skin_temp, TRUE, musicplay_main_bmp_name, MUSICPLAY_MAIN_BMP_NR); if (!skin_init(&musicplay_skin_temp, musicplay_main_event_cb, musicplay_msg_cb)){ printf("skin init fail !\n"); } return 0;}static void num2time(char *time, int num){ int minute, second; minute = num / 60; second = num % 60; time[0] = 0x30 + minute / 10; time[1] = 0x30 + minute % 10; time[2] = ':'; time[3] = 0x30 + second / 10; time[4] = 0x30 + second % 10; time[5] = 0;}static void create_musicplay (HWND hWnd){ skin_head_t *pskin; HWND hTemp; char time[5]; hTemp = create_skin_control(&musicplay_skin_temp, hWnd, IDC_MUSICPLAY_CONTROL_MAIN, 0, 24, 320, 192); pskin = get_window_skin(hTemp); skin_set_item_label(pskin, SIID_TIMER_ELAPSE, "00:00"); //skin_set_item_label(pskin, SIID_TIMER_REMAIN, "00:00"); num2time(time, totaltime); skin_set_item_label(pskin, SIID_TIMER_TOTAL, time);}static void destroy_musicplay (void){ skin_deinit(&musicplay_skin_temp); load_skin_bmps(&musicplay_skin_temp, FALSE, musicplay_main_bmp_name, MUSICPLAY_MAIN_BMP_NR);}static float steplong;static int elapse = 1;static int musicplay_main_event_cb(HWND hwnd, skin_item_t *item, int event, void *data){ int nTemp; if (event == SIE_SLIDER_CHANGED){ switch (item->id) { case SIID_MUSICPLAY_MAIN_VOLUME: nTemp = skin_get_thumb_pos(item->hostskin, item->id); printf("volume_value = %i\n", nTemp); break; case SIID_MUSICPLAY_MAIN_PROGRESS: nTemp = skin_get_thumb_pos(item->hostskin, item->id); elapse = nTemp * steplong; break; } } return 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -