2018-03-10 00:01:21 +01:00

183 lines
7.2 KiB
C

#include <windows.h>
#define ButtonGroupChanged(btn_firstid, btn_lastid, test_id, seltab, result_index) \
{ \
result_index = 0; \
if (LOWORD(test_id) >= btn_firstid && \
LOWORD(test_id) <= btn_lastid) \
{ \
for (WORD bgci = btn_firstid; bgci <= btn_lastid; bgci++) \
{ \
if (LOWORD(test_id) == bgci) \
{ \
EnableWindow(GetDlgItem(ModuleWnd[seltab], bgci), false); \
result_index = bgci; \
} \
else \
{ \
EnableWindow(GetDlgItem(ModuleWnd[seltab], bgci), true); \
} \
} \
} \
}
#define EnableButtonGroup(btn_firstid, btn_lastid, seltab, btn_show) \
{ \
for (WORD bgci = btn_firstid; bgci <= btn_lastid; bgci++) \
{ \
EnableWindow(GetDlgItem(ModuleWnd[seltab], bgci), btn_show); \
} \
}
#define SetCheckboxGroupBitmask(btn_firstid, btn_lastid, seltab, input_bits) \
{ \
WORD curbitsel = 0x0001; \
for (WORD bgci = btn_firstid; bgci <= btn_lastid; bgci++,curbitsel*=2) \
{ \
SendDlgItemMessage(ModuleWnd[seltab], bgci, BM_SETCHECK, input_bits & curbitsel, 0); \
} \
}
#define GetCheckboxGroupBitmask(btn_firstid, btn_lastid, test_id, seltab, result_bits, result_index) \
{ \
result_index = 0; \
result_bits = 0; \
WORD curbitsel = 0x0001; \
if (LOWORD(test_id) >= btn_firstid && \
LOWORD(test_id) <= btn_lastid) \
{ \
for (WORD bgci = btn_firstid; bgci <= btn_lastid; bgci++,curbitsel*=2) \
{ \
if (LOWORD(test_id) == bgci) \
{ \
result_index = bgci; \
} \
if (SendDlgItemMessage(ModuleWnd[seltab], bgci, BM_GETCHECK, 0, 0)==BST_CHECKED) \
{ \
result_bits |= curbitsel; \
} \
else \
{ \
result_bits &= ~curbitsel; \
} \
} \
} \
}
#define InitSlider(tab_id, slider_id, slider_low, slider_hi, slider_pos) \
{ \
SendDlgItemMessage(tab_id, slider_id, TBM_SETRANGE, true, MAKELONG(slider_low, slider_hi)); \
SendDlgItemMessage(tab_id, slider_id, TBM_SETPOS, true, slider_pos); \
SendDlgItemMessage(tab_id, slider_id, TBM_SETLINESIZE, 0, 1); \
SendDlgItemMessage(tab_id, slider_id, TBM_SETPAGESIZE, 0, 1); \
sprintf(SliderValTxt, "%d", slider_pos); \
SetWindowText(GetDlgItem(tab_id, slider_id ## _VAL), SliderValTxt); \
}
#define InitSliderCenter(tab_id, slider_id, slider_low, slider_hi, slider_pos) \
{ \
SendDlgItemMessage(tab_id, slider_id, TBM_SETRANGE, true, MAKELONG(slider_low, slider_hi)); \
SendDlgItemMessage(tab_id, slider_id, TBM_SETPOS, true, slider_pos); \
SendDlgItemMessage(tab_id, slider_id, TBM_SETLINESIZE, 0, 1); \
SendDlgItemMessage(tab_id, slider_id, TBM_SETPAGESIZE, 0, 1); \
sprintf(SliderValTxt, "%d", slider_pos-64); \
SetWindowText(GetDlgItem(tab_id, slider_id ## _VAL), SliderValTxt); \
}
#define InitSliderCenter2(tab_id, slider_id, slider_low, slider_hi, slider_pos) \
{ \
SendDlgItemMessage(tab_id, slider_id, TBM_SETRANGE, true, MAKELONG(slider_low, slider_hi)); \
SendDlgItemMessage(tab_id, slider_id, TBM_SETPOS, true, slider_pos); \
SendDlgItemMessage(tab_id, slider_id, TBM_SETLINESIZE, 0, 1); \
SendDlgItemMessage(tab_id, slider_id, TBM_SETPAGESIZE, 0, 1); \
sprintf(SliderValTxt, "%d", (slider_pos-64)*2); \
SetWindowText(GetDlgItem(tab_id, slider_id ## _VAL), SliderValTxt); \
}
#define InitSliderNoGUI(tab_id, slider_id, slider_low, slider_hi, slider_pos) \
{ \
SendDlgItemMessage(tab_id, slider_id, TBM_SETRANGE, true, MAKELONG(slider_low, slider_hi)); \
SendDlgItemMessage(tab_id, slider_id, TBM_SETPOS, true, slider_pos); \
SendDlgItemMessage(tab_id, slider_id, TBM_SETLINESIZE, 0, 1); \
SendDlgItemMessage(tab_id, slider_id, TBM_SETPAGESIZE, 0, 1); \
}
#define DisableButtonGroup(btn_firstid, btn_lastid, seltab) \
{ \
for (WORD bgci = btn_firstid; bgci <= btn_lastid; bgci++) \
{ \
EnableWindow(GetDlgItem(ModuleWnd[seltab], bgci), true); \
} \
}
#define InterleavedButtonGroupChanged(btn_firstid, btn_count, test_id, result_index)\
{ \
result_index = -1; \
if (((LOWORD(test_id)-btn_firstid) % 6) == 0) \
{ \
for (WORD bgci = 0; bgci < btn_count; bgci++) \
{ \
WORD ibtn = btn_firstid+bgci*6; \
if (LOWORD(test_id) == ibtn) \
{ \
EnableWindow(GetDlgItem(TabWnd[SelectedTab], ibtn), false); \
result_index = bgci; \
} \
else \
{ \
EnableWindow(GetDlgItem(TabWnd[SelectedTab], ibtn), true); \
} \
} \
} \
}
#define DisableInterleavedButtonGroup(btn_firstid, btn_count, seltab) \
{ \
for (WORD bgci = 0; bgci < btn_count; bgci++) \
{ \
EnableWindow(GetDlgItem(TabWnd[seltab], btn_firstid+bgci*6), true); \
} \
}
#define UpdateSliderValue(usv_id, usv_v) \
{ \
usv_v = SendMessage(GetDlgItem(ModuleWnd[uid], usv_id), TBM_GETPOS, 0, 0); \
sprintf(SliderValTxt, "%d", usv_v); \
SetWindowText(GetDlgItem(ModuleWnd[uid], usv_id ## _VAL), SliderValTxt); \
}
#define UpdateSliderValueCenter(usv_id, usv_v) \
{ \
usv_v = SendMessage(GetDlgItem(ModuleWnd[uid], usv_id), TBM_GETPOS, 0, 0); \
sprintf(SliderValTxt, "%d", usv_v-64); \
SetWindowText(GetDlgItem(ModuleWnd[uid], usv_id ## _VAL), SliderValTxt); \
}
#define UpdateSliderValueCenter2(usv_id, usv_v) \
{ \
usv_v = SendMessage(GetDlgItem(ModuleWnd[uid], usv_id), TBM_GETPOS, 0, 0); \
sprintf(SliderValTxt, "%d", (usv_v-64)*2); \
SetWindowText(GetDlgItem(ModuleWnd[uid], usv_id ## _VAL), SliderValTxt); \
}
void Go4kVSTiGUI_Create(HINSTANCE hInst);
void Go4kVSTiGUI_Show(int showCommand);
void Go4kVSTiGUI_Destroy();
bool InitTabDlg();
bool ButtonPressed(WPARAM id, LPARAM lParam);
bool ScrollbarChanged(HWND hwndDlg, WPARAM wParam, LPARAM lParam);
bool StackButtonPressed(WPARAM id);
void TabChanged(int index);
void UpdateSignalCount(int channel);
void UpdateControls(int channel);
void UpdateModuleParamWindow(int tab, int unit);
void UpdateVoiceDisplay(int i);
void GetStreamFileName();