2012-08-22 2 views
0

나는 FMOD를 사용하고 있습니다. C에서 DSP getParameter 함수를 사용하는 방법? 다음 코드를 사용하면 프로그램이 종료됩니다. 내 코드에 무슨 문제가 있는지 알 수 없습니다. 물론 DSP setParameter 함수를 구현했습니다. 이제 getParameter 함수에 문제가 있습니다. 사람이 issuse을 알고 있다면 , 나에게 힌트를주지하시기 바랍니다. 문제는 FMOD 기능은 당신이 (즉, 주파수)를 통과 포인터에 기록하기를 원하는 것입니다FMOD C에서 DSP getParameter 함수를 사용하는 방법?

float Java_com_chocolate_player_equalizer_EQ_cGetEQCenter(JNIEnv *env, jobject thiz, 
int band) 
{ 
    FMOD_RESULT result = FMOD_OK; 
    FMOD_BOOL active = 0; 

    if(!active){ 
     result = FMOD_System_AddDSP(gSystem, gDSPParameq[band], 0); 
    } 
    float * freq; 
    char * valueStr = ""; 
    int valueStrLength = 16; 

    result = FMOD_DSP_GetParameter(gDSPParameq[band], FMOD_DSP_PARAMEQ_CENTER, freq, 
     valueStr, valueStrLength); 

    return *freq; 
} 

답변

0

하지만 당신은 그것을 어떤 메모리를 부여하지 않은 : 전에 여기

내 코드는 내가 해봤한다 쓰기, 그냥 초기화되지 않은 값.

대신 'float freq'로 사용하는 것이 좋으며 fmod 함수 호출 내에서 & freq를 사용하십시오.

또한 valueStr과 같은 일을했습니다. 너는 길이가 16이지만 너는 오직 0 바이트 ("")의 메모리를 주었다고 말했다. 대신 char valueStr [16]을 사용하십시오. 그나저나 그걸로 아무 것도하지 마세요. 그래서 왜 아무것도 지나쳐야 하죠? 함수의 마지막 2 개 매개 변수에 0,0을 사용하면됩니다.

또한 오히려 반환 * 주파수보다, 조정 및 반환 주파수를 사용해야합니다

;

+0

예. 나는 그렇게했지만 나는 당신의 대답을 뻔뻔스럽게 읽지 않았다. 어쨌든 많이 thx. 나를 위해 좋은 대답. – choijuho