📄 w32g_subwin3.c
字号:
if ( lockflag ) TRACER_UNLOCK (); effect_view_border_draw (lprc, lockflag); InvalidateRect ( w32g_tracer_wnd.hwnd, lprc, FALSE ); return 0;}static int tracer_expression_draw ( RECT *lprc, int vol, int max, int lockflag ){ HDC hdc; const int view_max = 20, div = 7; if ( !w32g_tracer_wnd.active ) return 0; hdc = w32g_tracer_wnd.hmdc; vol /= div; if(vol >= view_max) {vol = view_max;} if ( lockflag ) TRACER_LOCK (); // 昁梫側偩偗攚宨傪昤夋 BitBlt ( hdc, lprc->left + vol, lprc->top, lprc->right - lprc->left - vol, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_expression.left, tracer_bmp.rc_expression.top, SRCCOPY ); // 昁梫側偩偗昤夋 BitBlt ( hdc, lprc->left, lprc->top, vol, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_expression.left, tracer_bmp.rc_expression.top + 9 + 1, SRCCOPY ); if ( lockflag ) TRACER_UNLOCK (); effect_view_border_draw (lprc, lockflag); InvalidateRect ( w32g_tracer_wnd.hwnd, lprc, FALSE ); return 0;}static int tracer_pan_draw ( RECT *lprc, int vol, int max, int lockflag ){ HDC hdc; const int view_max = 10, div = 7; if ( !w32g_tracer_wnd.active ) return 0; hdc = w32g_tracer_wnd.hmdc; vol = (vol - 64) / div; if(vol > view_max) {vol = view_max;} else if(vol < -view_max) {vol = -view_max;} if ( lockflag ) TRACER_LOCK (); // 攚宨傪昤夋 BitBlt ( hdc, lprc->left, lprc->top, lprc->right - lprc->left, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_pan.left, tracer_bmp.rc_pan.top, SRCCOPY ); // 仸埲壓偺2偮偺揮憲張棟偱偼柍懯側晹暘傕揮憲偟偰偄傞偺偱丄偆傑偔傗傟偽徣偗傞丅 // 儅僗僋傪昤夋 BitBlt ( hdc, lprc->left + vol, lprc->top, lprc->right - lprc->left, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_pan.left, tracer_bmp.rc_pan.top + (9 + 1) * 2, SRCPAINT ); // 偮傑傒傪昤夋 BitBlt ( hdc, lprc->left + vol, lprc->top, lprc->right - lprc->left, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_pan.left, tracer_bmp.rc_pan.top + 9 + 1, SRCAND ); if ( lockflag ) TRACER_UNLOCK (); effect_view_border_draw (lprc, lockflag); InvalidateRect ( w32g_tracer_wnd.hwnd, lprc, FALSE ); return 0;}static int tracer_sustain_draw ( RECT *lprc, int vol, int lockflag ){ HDC hdc; const int view_max = 20, div = 6; if ( !w32g_tracer_wnd.active ) return 0; hdc = w32g_tracer_wnd.hmdc; vol /= div; if(vol >= view_max) {vol = view_max;} if ( lockflag ) TRACER_LOCK (); // 昁梫側偩偗攚宨傪昤夋 BitBlt ( hdc, lprc->left + vol, lprc->top, lprc->right - lprc->left - vol, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_sustain.left, tracer_bmp.rc_sustain.top, SRCCOPY ); // 昁梫側偩偗昤夋 BitBlt ( hdc, lprc->left, lprc->top, vol, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_sustain.left, tracer_bmp.rc_sustain.top + 9 + 1, SRCCOPY ); if ( lockflag ) TRACER_UNLOCK (); effect_view_border_draw (lprc, lockflag); InvalidateRect ( w32g_tracer_wnd.hwnd, lprc, FALSE ); return 0;/* HDC hdc; if ( !w32g_tracer_wnd.active ) return 0; hdc = w32g_tracer_wnd.hmdc; if ( vol <= 0 ) vol = 0; if ( vol >= 1 ) vol = 1; if ( lockflag ) TRACER_LOCK (); BitBlt ( hdc, lprc->left, lprc->top, lprc->right - lprc->left, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_sustain.left, tracer_bmp.rc_sustain.top + vol * ( 9 + 1 ), SRCCOPY ); if ( lockflag ) TRACER_UNLOCK (); effect_view_border_draw (lprc, lockflag); InvalidateRect ( w32g_tracer_wnd.hwnd, lprc, FALSE ); return 0;*/}static int tracer_pitch_bend_draw ( RECT *lprc, int vol, int max, int lockflag ){ HDC hdc; const int view_max = 10; if ( !w32g_tracer_wnd.active ) return 0; hdc = w32g_tracer_wnd.hmdc; vol = (vol - max / 2) * view_max * 2 / max; if(vol > view_max) {vol = view_max;} else if(vol < -view_max) {vol = -view_max;} if ( lockflag ) TRACER_LOCK (); // 攚宨傪昤夋 BitBlt ( hdc, lprc->left, lprc->top, lprc->right - lprc->left, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_pitch_bend.left, tracer_bmp.rc_pitch_bend.top, SRCCOPY ); if(vol > 0) { // 昁梫側偩偗昤夋 BitBlt ( hdc, lprc->left + view_max, lprc->top, vol, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_pitch_bend.left + view_max, tracer_bmp.rc_pitch_bend.top + 9 + 1, SRCCOPY ); } else if(vol < 0) { BitBlt ( hdc, lprc->left + view_max + vol, lprc->top, -vol, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_pitch_bend.left + view_max + vol, tracer_bmp.rc_pitch_bend.top + 9 + 1, SRCCOPY ); } if ( lockflag ) TRACER_UNLOCK (); effect_view_border_draw (lprc, lockflag); InvalidateRect ( w32g_tracer_wnd.hwnd, lprc, FALSE ); return 0;}static int tracer_mod_wheel_draw ( RECT *lprc, int vol, int max, int lockflag ){ HDC hdc; const int view_max = 20, div = 7; if ( !w32g_tracer_wnd.active ) return 0; hdc = w32g_tracer_wnd.hmdc; vol /= div; if(vol >= view_max) {vol = view_max;} if ( lockflag ) TRACER_LOCK (); // 昁梫側偩偗攚宨傪昤夋 BitBlt ( hdc, lprc->left + vol, lprc->top, lprc->right - lprc->left - vol, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_mod_wheel.left, tracer_bmp.rc_mod_wheel.top, SRCCOPY ); // 昁梫側偩偗昤夋 BitBlt ( hdc, lprc->left, lprc->top, vol, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_mod_wheel.left, tracer_bmp.rc_mod_wheel.top + 9 + 1, SRCCOPY ); if ( lockflag ) TRACER_UNLOCK (); effect_view_border_draw (lprc, lockflag); InvalidateRect ( w32g_tracer_wnd.hwnd, lprc, FALSE ); return 0;}static int tracer_chorus_effect_draw ( RECT *lprc, int vol, int max, int lockflag ){ HDC hdc; const int view_max = 20, div = 7; if ( !w32g_tracer_wnd.active ) return 0; hdc = w32g_tracer_wnd.hmdc; vol /= div; if(vol >= view_max) {vol = view_max;} if ( lockflag ) TRACER_LOCK (); // 昁梫側偩偗攚宨傪昤夋 BitBlt ( hdc, lprc->left + vol, lprc->top, lprc->right - lprc->left - vol, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_chorus_effect.left, tracer_bmp.rc_chorus_effect.top, SRCCOPY ); // 昁梫側偩偗昤夋 BitBlt ( hdc, lprc->left, lprc->top, vol, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_chorus_effect.left, tracer_bmp.rc_chorus_effect.top + 9 + 1, SRCCOPY ); if ( lockflag ) TRACER_UNLOCK (); effect_view_border_draw (lprc, lockflag); InvalidateRect ( w32g_tracer_wnd.hwnd, lprc, FALSE ); return 0;}static int tracer_reverb_effect_draw ( RECT *lprc, int vol, int max, int lockflag ){ HDC hdc; const int view_max = 20, div = 7; if ( !w32g_tracer_wnd.active ) return 0; hdc = w32g_tracer_wnd.hmdc; vol /= div; if(vol >= view_max) {vol = view_max;} if ( lockflag ) TRACER_LOCK (); // 昁梫側偩偗攚宨傪昤夋 BitBlt ( hdc, lprc->left + vol, lprc->top, lprc->right - lprc->left - vol, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_reverb_effect.left, tracer_bmp.rc_reverb_effect.top, SRCCOPY ); // 昁梫側偩偗昤夋 BitBlt ( hdc, lprc->left, lprc->top, vol, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_reverb_effect.left, tracer_bmp.rc_reverb_effect.top + 9 + 1, SRCCOPY ); if ( lockflag ) TRACER_UNLOCK (); effect_view_border_draw (lprc, lockflag); InvalidateRect ( w32g_tracer_wnd.hwnd, lprc, FALSE ); return 0;}static int tracer_temper_keysig_draw(RECT *lprc, int8 tk, int ko, int lockflag){ static int8 lastkeysig = CTL_STATUS_UPDATE; static int lastoffset = CTL_STATUS_UPDATE; int adj, i, j; HDC hdc; if (tk == CTL_STATUS_UPDATE) tk = lastkeysig; else lastkeysig = tk; if (ko == CTL_STATUS_UPDATE) ko = lastoffset; else lastoffset = ko; adj = tk + 8 & 0x20, tk = (tk + 8) % 32 - 8; i = tk + ((tk < 8) ? 7 : -9); if (ko > 0) for (j = 0; j < ko; j++) i += (i > 7) ? -5 : 7; else for (j = 0; j < abs(ko); j++) i += (i < 7) ? 5 : -7; i += (tk < 8) ? 1 : 17; if (! w32g_tracer_wnd.active) return 0; hdc = w32g_tracer_wnd.hmdc; if (lockflag) TRACER_LOCK(); BitBlt(hdc, lprc->left, lprc->top, lprc->right - lprc->left, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_temper_keysig[i].left, tracer_bmp.rc_temper_keysig[i].top, (adj) ? NOTSRCCOPY : SRCCOPY); if (lockflag) TRACER_UNLOCK(); InvalidateRect(w32g_tracer_wnd.hwnd, lprc, FALSE); return 0;}static int tracer_temper_type_draw(RECT *lprc, int ch, int8 tt, int lockflag){ HDC hdc; if (tt != CTL_STATUS_UPDATE) { if (w32g_tracer_wnd.tt[ch] == tt) return 0; w32g_tracer_wnd.tt[ch] = tt; } else tt = w32g_tracer_wnd.tt[ch]; if (! w32g_tracer_wnd.active) return 0; hdc = w32g_tracer_wnd.hmdc; if (lockflag) TRACER_LOCK(); BitBlt(hdc, lprc->left, lprc->top, lprc->right - lprc->left, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_temper_type[(tt < 0x40) ? tt : tt - 0x3c].left, tracer_bmp.rc_temper_type[(tt < 0x40) ? tt : tt - 0x3c].top, SRCCOPY); if (lockflag) TRACER_UNLOCK(); effect_view_border_draw (lprc, lockflag); InvalidateRect(w32g_tracer_wnd.hwnd, lprc, FALSE); return 0;}static int tracer_gm_draw ( RECT *lprc, int flag, int lockflag ){ HDC hdc; if ( !w32g_tracer_wnd.active ) return 0; hdc = w32g_tracer_wnd.hmdc; if ( lockflag ) TRACER_LOCK (); switch ( flag ) { default: case 0: BitBlt ( hdc, lprc->left, lprc->top, lprc->right - lprc->left, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_gm_off.left, tracer_bmp.rc_gm_off.top, SRCCOPY ); break; case 1: BitBlt ( hdc, lprc->left, lprc->top, lprc->right - lprc->left, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_gm_on.left, tracer_bmp.rc_gm_on.top, SRCCOPY ); break; } if ( lockflag ) TRACER_UNLOCK (); InvalidateRect ( w32g_tracer_wnd.hwnd, lprc, FALSE ); return 0;}static int tracer_gs_draw ( RECT *lprc, int flag, int lockflag ){ HDC hdc; if ( !w32g_tracer_wnd.active ) return 0; hdc = w32g_tracer_wnd.hmdc; if ( lockflag ) TRACER_LOCK (); switch ( flag ) { default: case 0: BitBlt ( hdc, lprc->left, lprc->top, lprc->right - lprc->left, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_gs_off.left, tracer_bmp.rc_gs_off.top, SRCCOPY ); break; case 1: BitBlt ( hdc, lprc->left, lprc->top, lprc->right - lprc->left, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_gs_on.left, tracer_bmp.rc_gs_on.top, SRCCOPY ); break; } if ( lockflag ) TRACER_UNLOCK (); InvalidateRect ( w32g_tracer_wnd.hwnd, lprc, FALSE ); return 0;}static int tracer_xg_draw ( RECT *lprc, int flag, int lockflag ){ HDC hdc; if ( !w32g_tracer_wnd.active ) return 0; hdc = w32g_tracer_wnd.hmdc; if ( lockflag ) TRACER_LOCK (); switch ( flag ) { default: case 0: BitBlt ( hdc, lprc->left, lprc->top, lprc->right - lprc->left, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_xg_off.left, tracer_bmp.rc_xg_off.top, SRCCOPY ); break; case 1: BitBlt ( hdc, lprc->left, lprc->top, lprc->right - lprc->left, lprc->bottom - lprc->top, tracer_bmp.hmdc, tracer_bmp.rc_xg_on.left, tracer_bmp.rc_xg_on.top, SRCCOPY ); break; } if ( lockflag ) TRACER_UNLOCK (); InvalidateRect ( w32g_tracer_wnd.hwnd, lprc, FALSE ); return 0;}#if 0static int cheap_volume_view_draw ( RECT *lprc, int vol, int max, COLORREF fore, COLORREF back, int type, int lockflag ){ RECT rc1; HDC hdc; HBRUSH hFore, hBack; if ( !w32g_tracer_wnd.active ) return 0; rc1; hdc = w32g_tracer_wnd.hmdc; hFore = CreateSolidBrush ( fore ); hBack = CreateSolidBrush ( back ); if ( vol > max ) vol = max; if ( vol < 0 ) vol = 0; switch (type) { default: case CVV_TYPE_LEFT: rc1.left = lprc->left; rc1.right = lprc->left + (lprc->right - lprc->left) * vol / max; rc1.top = lprc->top; rc1.bottom = lprc->bottom; break; case CVV_TYPE_RIGHT: rc1.left = lprc->left + (lprc->right - lprc->left) * (max - vol) / max; rc1.right = lprc->right; rc1.top = lprc->top; rc1.bottom = lprc->bottom; break; case CVV_TYPE_TOP: rc1.left = lprc->left; rc1.right = lprc->right; rc1.top = lprc->top; rc1.bottom = lprc->top + (lprc->bottom - lprc->top) * vol / max; break; case CVV_TYPE_BOTTOM: rc1.left = lprc->left; rc1.right = lprc->right; rc1.top = lprc->top + (lprc->bottom - lprc->top) * (max - vol) / max; rc1.bottom = lprc->bottom; break; } if ( lockflag ) TRACER_LOCK (); FillRect(hdc, &rc1, hFore); if ( lockflag ) TRACER_UNLOCK (); InvalidateRect ( w32g_tracer_wnd.hwnd, &rc1, FALSE );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -