블로그 이미지
fiadot_old

칼퇴근을 위한 게임 서버 개발 방법론에 대한 심도있는 고찰 및 성찰을 위한 블로그!

Rss feed Tistory
DSP 2005. 4. 12. 09:13

[VSTGUI] Usage COnOffButton

1. 이미지 세로2배 크기 이미지 준비~ (12x12)


위 OFF = 0.0 / 밑 ON = 1.0
비주얼스튜디오 리소스 에디터에 Bitmap에 Import후
IDB_POWER로 이름 지정!


FiaMe1 클래스에서

2. 헤더에 kMaster_OnOff 추가!~
enum
{
// Parameters Tags
kMaster_Fader_Volumn = 0, // 마스터 볼륨~
kDelay_Fader_Delay = 1, // Delay Fader 기본 딜레이
kDelay_Fader_FeedBack = 2, // 피드백(echo)

kMaster_OnOff = 3,
kNumParams
};

3. getParameterName()에 추가
switch ( index )
{
case kMaster_OnOff: // m_bMasterPower
strcpy(label, "Master Power");
break;
}


FiaME1Editor 클래스에서~

4. 헤더에 변수 선언
COnOffButton *pOnOffMaster;
CParamDisplay *pParamDispMasterPower;

5. enum에 위치 지정
kFaderY = 100,

kMaster_OnOff_X = 20, // kMaster_OnOff
kMaster_OnOff_Y = 100, // kMaster_OnOff

6. open()에서
CBitmap* hPower = new CBitmap(IDB_POWER);

size (kMaster_OnOff_X, kFaderY,
kMaster_OnOff_X + hPower->getWidth(), kFaderY + hPower->getHeight ()/2);

pOnOffMaster = new COnOffButton(size, this, kMaster_OnOff, hPower);
pOnOffMaster->setValue(effect->getParameter(kMaster_OnOff));
frame->addView(pOnOffMaster);

// 전원 값 출력!!!!
size (kMaster_OnOff_X, kFaderY + hFaderBody->getHeight () ,
kMaster_OnOff_X + kDisplayXWidth, kFaderY + hFaderBody->getHeight () + kDisplayHeight);
pParamDispMasterPower = new CParamDisplay (size, 0, kCenterText);
pParamDispMasterPower->setFont (kNormalFontSmall);
pParamDispMasterPower->setFontColor (kWhiteCColor);
pParamDispMasterPower->setBackColor (kBlackCColor);
pParamDispMasterPower->setFrameColor (kBlueCColor);
pParamDispMasterPower->setValue (effect->getParameter(kMaster_OnOff));
frame->addView (pParamDispMasterPower);


7. setParameter()에서 다음 코드 추가!
// called from FiaME1Edit
switch (index)
{
case kMaster_OnOff: // m_bMasterPower
if ( NULL != pOnOffMaster )
pOnOffMaster->setValue(effect->getParameter(index));
if ( NULL != pParamDispMasterPower )
pParamDispMasterPower->setValue(effect->getParameter(index));
break;
}

8. valueChanged()에 추가
switch (tag)
{
case kMaster_OnOff:
effect->setParameterAutomated(tag, control->getValue());
control->update(context);
break;
}




빌드!
다음과 같은 에러가 발생하면
--------------------Configuration: FiaME1 - Win32 Debug--------------------
Compiling resources...
D:\Project\VST\FiaME1\FiaME1EditGUI.rc (9): error RC2144 : PRIMARY LANGUAGE ID not a number
D:\Project\VST\FiaME1\FiaME1EditGUI.rc (18): error RC2135 : file not found: 128
Error executing rc.exe.
Creating browse info file...

FiaME1.dll - 2 error(s), 0 warning(s)

9. 리소스 파일 열어서

#ifdef _WIN32
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
#pragma code_page(949)
#endif //_WIN32

부분 제거!

p.s 이미지 위아래 바꼈다 ㅡㅡ;

,
TOTAL TODAY