Hallo,
ik ben bezig een mp3-mixer te bouwen in BCB 6.0 ...hij is al bijna af, maar ik ben nu bezig met het bouwen van een fatsoenlijke dsp-functie voor het realtime recorden van de audio-data. Ik maak gebruik van de FMod (http://www.fmod.org) library..
Mijn class DSP ziet er als volgt uit:
---------------------------------------------------CDsp.h----------------------------------------------
-----------------------------------------------CDsp.cpp----------------------------------------------
Mijn probleem is dat ik de volgende melding krijg:
[C++ Error] CDsp.cpp(10): E2231 Member CDsp::pDataBuf cannot be used without an object
Regel 10 is de regel
...binnen de functie DspCallBack...ik begrijp dat dat op de een of andere manier te maken heeft met het feit dat het een static member betreft en hoewel ik dit eigenlijk gewoon zou moeten weten, weet ik het dus niet...wie kan mij vertellen wat het probleem is en, belangrijker, wat ik er aan kan doen. De bedoeling is gewoon dat ik binnen de callback functie steeds de audio-data aan een buffer toevoeg, zodat ik deze uiteindelijk kan gebruiken voor het maken van een wave-file...
Who's gonna help me out?
ik ben bezig een mp3-mixer te bouwen in BCB 6.0 ...hij is al bijna af, maar ik ben nu bezig met het bouwen van een fatsoenlijke dsp-functie voor het realtime recorden van de audio-data. Ik maak gebruik van de FMod (http://www.fmod.org) library..
Mijn class DSP ziet er als volgt uit:
---------------------------------------------------CDsp.h----------------------------------------------
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| #ifndef CDspH
#define CDspH
#include <Classes.hpp>
#include "Fmod.h"
#include "Fmod_errors.h"
class CDsp{
TMemoryStream *pDataBuf;
public:
FSOUND_DSPUNIT *DspUnit;
CDsp();
~CDsp();
static void *DspCallBack (void *OriginalBuffer, void *NewBuffer,
int Length, int Param);
void Activate();
void Deactivate();
};
#endif |
-----------------------------------------------CDsp.cpp----------------------------------------------
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| #pragma hdrstop
#include "CDsp.h"
void *CDsp::DspCallBack(void *OriginalBuffer, void *NewBuffer, int Length, int Param)
{
pDataBuf->WriteBuffer(NewBuffer, Length);
return NewBuffer;
}
void CDsp::Activate()
{
FSOUND_DSP_SetActive(DspUnit, true);
}
void CDsp::Deactivate()
{
FSOUND_DSP_SetActive(DspUnit, false);
}
CDsp::CDsp() // Constructor
{
pDataBuf=new TMemoryStream;
DspUnit=FSOUND_DSP_Create(&DspCallBack, FSOUND_DSP_DEFAULTPRIORITY_USER+1, 0);
}
CDsp::~CDsp() // Destructor
{
delete pDataBuf;
FSOUND_DSP_SetActive(DspUnit, false);
FSOUND_DSP_Free(DspUnit);
} |
Mijn probleem is dat ik de volgende melding krijg:
[C++ Error] CDsp.cpp(10): E2231 Member CDsp::pDataBuf cannot be used without an object
Regel 10 is de regel
code:
1
| pDataBuf->WriteBuffer(NewBuffer, Length); |
...binnen de functie DspCallBack...ik begrijp dat dat op de een of andere manier te maken heeft met het feit dat het een static member betreft en hoewel ik dit eigenlijk gewoon zou moeten weten, weet ik het dus niet...wie kan mij vertellen wat het probleem is en, belangrijker, wat ik er aan kan doen. De bedoeling is gewoon dat ik binnen de callback functie steeds de audio-data aan een buffer toevoeg, zodat ik deze uiteindelijk kan gebruiken voor het maken van een wave-file...
Who's gonna help me out?