iOSでCoreAudioプログラミングを行っていますが、ObjectiveCで宣言した変数をCコールバックコードで使用する必要がある状況になりました。バッファ変数は、Objective CとCの両方の構文でアクセスできる必要がありますが、C構文では、「宣言されていない識別子バッファの使用」というエラーがあります。
どうすればこれを解決できますか?前もって感謝します。
橋脚。
変数はバッファであり、RIORecoerdingViewController.hで次のように宣言されています。
@interface RIORecoerdingViewController : UIViewController <AVAudioSessionDelegate> {
OSStatus status;
AudioComponentInstance audioUnit;
AudioStreamBasicDescription audioFormat;
RIO rio;
IBOutlet UIButton *button;
BOOL isPlaying;
Float64 graphSampleRate;
NSString *destinationFilePath;
CFURLRef destinationURL;
ExtAudioFileRef outExtAudioFile;
// New
AUGraph theGraph;
TPCircularBuffer buffer;
}
Cコールバック関数で使用したい
static OSStatus recordingCallback(void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData) {
if (rio->recording)
{
TPCircularBufferProduceBytes(&buffer, abl.mBuffers[0].mData, inNumberFrames * 2 * sizeof(SInt32)); //&buffer has an error "Use of undeclared identifier buffer"
}
return noErr;
}