ok, so I’ve been trying to do some threading using panda threads and this is whwre I got to:
sfx.c: In constructor ‘AudioThread::AudioThread(char*, OggVorbis_File*)’:
sfx.c:37: error: no matching function for call to ‘Thread::Thread()’
/opt/panda3d/include/thread.I:21: note: candidates are: Thread::Thread(const Thread&)
/opt/panda3d/include/thread.h:52: note: Thread::Thread(const std::string&, const std::string&)
make: *** [all] Error 1
the AudioThread class is like this:
class AudioThread: public Thread
{
char *path;
OggVorbis_File *vf;
public:
AudioThread(char *file_path, OggVorbis_File *vorbisf);
void PlayAudio(void);
};
and I’ve this coded:
void Thread::thread_main()
{
char *path;
OggVorbis_File *vf;
int ov_return;
ov_return = ov_fopen(path, vf);
/* first check for error opening the file */
switch(ov_return)
{
case OV_EREAD:
raise_error("Media error\n");
break;
case OV_ENOTVORBIS:
raise_error("Not a vorbis file\n");
break;
case OV_EVERSION:
raise_error("version mismatch\n");
break;
case OV_EBADHEADER:
raise_error("malformed header\n");
break;
case OV_EFAULT:
raise_error("internal error\n");
break;
case 0:
/* success */
//play_vorbis(vf);
break;
}
}
AudioThread::AudioThread(char *file_path, OggVorbis_File *vorbisf)
{
path = file_path;
vf = vorbisf;
}
I think I’ve forgotten something in AudioThread constructor, but don’t know what.