⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 audio.c

📁 飞漫公司的minigui的1.6.8收费增值版本的demon等示例程序
💻 C
📖 第 1 页 / 共 2 页
字号:
#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 + -