📄 demo_setting_sound.c
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#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 "../global.h"
#include "english_config.h"#define SIID_SOUND_VOLUME 1#define SIID_SOUND_BASS 2#define SIID_SOUND_TREBLE 3#define SIID_SOUND_BALANCE 4#define SIID_SOUND_BOOST 5#define SIID_SOUND_SETUP 6#define SIID_SOUND_OPTION 7#define SIID_SOUND_BROWSER 8#define IDC_SOUND_SET 100#define IDC_SOUND_CONTROLBAR 101#define IDC_SOUND_ON 2000#define IDC_SOUND_OFF 2001#define IDC_STATIC_RANGE 105int sound_win_created = 0;static HWND hSoundSet=HWND_INVALID;static HWND hSkin;static int nCurIndex = -1;static int nOldIndex = -1;static BITMAP sound_bmp [3];static BITMAP controlbar_bmp [2];static int sound_controlbar_event_cb (HWND hWnd, skin_item_t *item, int event, void *data);static int sound_controlbar_msg_cb (HWND hWnd, int message, WPARAM wParam, LPARAM lParam, int *result);extern void draw_caption_bar(HDC, HWND);volatile static skin_item_t sound_controlbar_items [] ={ {SIID_SOUND_SETUP, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE, 13, 2, {0}, 1, "setup"}, {SIID_SOUND_OPTION, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE, 116, 2, {0}, 1, "options"}, {SIID_SOUND_BROWSER, SI_TYPE_CMDBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE, 219, 2, {0}, 1, "browser"}};static skin_head_t _sound_controlbar_skin;static skin_item_t _sound_controlbar_items[TABLESIZE(sound_controlbar_items)];volatile static skin_head_t sound_controlbar_skin ={ "", SKIN_STYLE_NONE, &controlbar_bmp[0], NULL, 0, 3, _sound_controlbar_items, FALSE};static const char *controlbar_res[] ={ "playbar_bg.bmp", "button_other.bmp"};#define CONTROLBAR_RES_NUM sizeof (controlbar_res) /sizeof (char *)/////////////////////////static si_nrmslider_t sound_volume = {{0, 31, 16}, 2};static si_nrmslider_t sound_bass = {{0, 9, 4}, 2};static si_nrmslider_t sound_treble = {{0, 9, 4}, 2};static si_nrmslider_t sound_balance = {{0, 99, 49}, 2};static si_nrmslider_t sound_boost = {{0, 9, 4}, 2};//////////////////////////static int sound_setting_main_event_cb (HWND hwnd, skin_item_t *item, int event, void *data);static int sound_setting_msg_cb (HWND hWnd, int message, WPARAM wParam, LPARAM lParam, int *result);volatile static skin_item_t sound_setting_items [] ={ {SIID_SOUND_VOLUME, SI_TYPE_NRMSLIDER | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE | SI_NRMSLIDER_HORZ, 80, 33, {0}, 1, "", 0, &sound_volume}, {SIID_SOUND_BASS, SI_TYPE_NRMSLIDER | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE | SI_NRMSLIDER_HORZ, 80, 63, {0}, 1, "", 0, &sound_bass}, {SIID_SOUND_TREBLE, SI_TYPE_NRMSLIDER | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE | SI_NRMSLIDER_HORZ, 80, 93, {0}, 1, "", 0, &sound_treble}, {SIID_SOUND_BALANCE, SI_TYPE_NRMSLIDER | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE | SI_NRMSLIDER_HORZ, 80, 123, {0}, 1, "", 0, &sound_balance}, {SIID_SOUND_BOOST, SI_TYPE_NRMSLIDER | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE | SI_NRMSLIDER_HORZ, 80, 153, {0}, 1, "", 0, &sound_boost}};skin_head_t sound_setting_skin_temp;skin_item_t sound_setting_items_temp[TABLESIZE(sound_setting_items)]; volatile static skin_head_t sound_setting_skin ={ "", SKIN_STYLE_NONE, &(sound_bmp[0]), NULL, 0, 5, sound_setting_items_temp, FALSE};const char *sound_bmp_name[] ={ "setting_subwin_bg1.bmp", "setting_slider_volume.bmp","setting_slider_button.bmp"};#define SOUND_BMP_NR sizeof (sound_bmp_name) / sizeof (char *)static void SetCurSelect (HWND hParent, int updownflag, int *index);static void init_bitmap_array (void){ sound_bmp [0] = *(bmp_setting_subwin_bg1); sound_bmp [1] = *(bmp_setting_slider_volume); sound_bmp [2] = *(bmp_setting_slider_button); controlbar_bmp [0] = *(bmp_playbar_bg); controlbar_bmp [1] = *(bmp_button_other);}static int load_skin_bmps(skin_head_t *skin, BOOL load, const char *bmpname[], int nCount){ return 0;}//////////////////////////////////////////////static int init_sound_controlbar (void){ memcpy (&_sound_controlbar_skin, (const void *)(&sound_controlbar_skin), sizeof (sound_controlbar_skin)); memcpy (&_sound_controlbar_items, &sound_controlbar_items, sizeof (sound_controlbar_items)); load_skin_bmps (&_sound_controlbar_skin, TRUE, controlbar_res , CONTROLBAR_RES_NUM); if (!skin_init (&_sound_controlbar_skin, sound_controlbar_event_cb, sound_controlbar_msg_cb)){ printf("controlbar skin init fail !\n"); } return 0;}static void create_sound_controlbar (HWND hWnd){ skin_head_t *pskin; HWND hControlBar; hControlBar = create_skin_control (&_sound_controlbar_skin, hWnd, IDC_SOUND_CONTROLBAR, 0, 216, 320, 24 ); printf ("------------hControlBar: %x\n", hControlBar); pskin = get_window_skin (hControlBar); skin_enable_item (pskin, SIID_SOUND_SETUP, FALSE); skin_enable_item (pskin, SIID_SOUND_OPTION, FALSE); skin_enable_item (pskin, SIID_SOUND_BROWSER, FALSE);}static void destroy_sound_controlbar (void){ skin_deinit (&_sound_controlbar_skin); load_skin_bmps (&_sound_controlbar_skin, FALSE, controlbar_res, CONTROLBAR_RES_NUM);}static int sound_controlbar_event_cb (HWND hwnd, skin_item_t *item, int event, void *data){ if (event == SIE_BUTTON_CLICKED){ switch (item->id){ case SIID_SOUND_SETUP: fprintf (stderr, "----------setup clicked\n"); break; case SIID_SOUND_OPTION: fprintf (stderr, "----------options button clicked\n"); break; case SIID_SOUND_BROWSER: fprintf (stderr, "----------browser button clicked\n"); break; } } return 1;}static int sound_controlbar_msg_cb (HWND hWnd, int message, WPARAM wParam, LPARAM lParam, int *result){ *result = MSG_CB_GOON; return 0;}/************************* skin setting function ******************/static int init_sound_setting (void){ memcpy (&sound_setting_skin_temp, (const void *)(&sound_setting_skin), sizeof (sound_setting_skin)); memcpy (&sound_setting_items_temp, &sound_setting_items, sizeof (sound_setting_items)); load_skin_bmps (&sound_setting_skin_temp, TRUE, sound_bmp_name, SOUND_BMP_NR); if (!skin_init (&sound_setting_skin_temp, sound_setting_main_event_cb, sound_setting_msg_cb)){ printf("skin init fail !\n"); } return 0;}static void destroy_sound_setting (void){ sound_win_created = 0; skin_deinit (&sound_setting_skin_temp); load_skin_bmps (&sound_setting_skin_temp, FALSE, sound_bmp_name, SOUND_BMP_NR);}static int sound_setting_main_event_cb (HWND hwnd, skin_item_t *item, int event, void *data){ int nTemp; if (event == SIE_SLIDER_CHANGED || event == SIE_BUTTON_CLICKED){ switch (item->id){ case SIID_SOUND_VOLUME: nTemp = skin_get_thumb_pos(item->hostskin, item->id); nOldIndex = nCurIndex; nCurIndex = 1; SetCurSelect (hSkin, 2, &nCurIndex); printf("volume_value = %i\n", nTemp); break; case SIID_SOUND_BASS: nTemp = skin_get_thumb_pos(item->hostskin, item->id); nOldIndex = nCurIndex; nCurIndex = 2; SetCurSelect (hSkin, 2, &nCurIndex); printf("bass_value = %i\n", nTemp); break; case SIID_SOUND_TREBLE: nTemp = skin_get_thumb_pos(item->hostskin, item->id); nOldIndex = nCurIndex; nCurIndex = 3; SetCurSelect (hSkin, 2, &nCurIndex); printf("volume_value = %i\n", nTemp); break; case SIID_SOUND_BALANCE: nTemp = skin_get_thumb_pos(item->hostskin, item->id); nOldIndex = nCurIndex; nCurIndex = 4; SetCurSelect (hSkin, 2, &nCurIndex); printf("bass_value = %i\n", nTemp); break; case SIID_SOUND_BOOST: nTemp = skin_get_thumb_pos(item->hostskin, item->id); nOldIndex = nCurIndex; nCurIndex = 5; SetCurSelect (hSkin, 2, &nCurIndex); printf("boost_value = %i\n", nTemp); break; } } return 1;}static int sound_setting_msg_cb (HWND hWnd, int message, WPARAM wParam, LPARAM lParam, int *result){ switch (message) { case MSG_COMMAND: { int nId = LOWORD(wParam); if (nId == IDC_SOUND_ON || nId == IDC_SOUND_OFF) { nOldIndex = nCurIndex; nCurIndex = 0; SetCurSelect (hSkin, 2, &nCurIndex); } break; } } *result = MSG_CB_GOON; return 0;}/******************************* control function *******************************/static void sound_create_control (HWND hParent){ HWND hCtrlWnd, hTemp; hTemp = create_skin_control (&sound_setting_skin_temp, hParent, IDC_SOUND_SET, 0, 24, 320, 192); hSkin = hTemp;
//#ifdef MGDEMO_ENGLISH
// CreateWindowEx (CTRL_STATIC, "Sound:", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC, 20, 8, 80, 16, hTemp, 0);
//
// hCtrlWnd = CreateWindowEx (CTRL_BUTTON, "Open", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | WS_GROUP,
// WS_EX_TRANSPARENT,
// IDC_SOUND_ON, 80, 6, 60, 70, hTemp, 0);
//
// hCtrlWnd = CreateWindowEx (CTRL_BUTTON, "Close", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,
// WS_EX_TRANSPARENT,
// IDC_SOUND_OFF, 170, 6, 60, 70, hTemp, 0);
//
//
// CreateWindowEx (CTRL_STATIC, "Volume:", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC + 1, 20, 33, 60, 16, hTemp, 0);
// CreateWindowEx (CTRL_STATIC, "0", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC_RANGE, 80, 41, 30, 13, hTemp, 0);
// CreateWindowEx (CTRL_STATIC, "31", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC_RANGE, 290, 41, 30, 13, hTemp, 0);
// CreateWindowEx (CTRL_STATIC, "Bourdon:", WS_CHILD | WS_VISIBLE | SS_NOTIFY ,
// WS_EX_TRANSPARENT,
// IDC_STATIC + 2, 20, 63, 60, 16, hTemp, 0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -