// -------------------------------------------------------------------------- // Name: test_med.cpp // Purpose: // Date: 08/11/1999 // Author: Guilhem Lavaux (C) 1999 // CVSID: $Id$ // -------------------------------------------------------------------------- #include #include #include #include "../lib/sndoss.h" #include "../lib/sndwav.h" #include "../lib/sndaiff.h" #include "../lib/sndulaw.h" wxSoundStreamOSS *oss_dev; wxInputStream *f_input; wxSoundStreamUlaw *ulaw_codec; class MySoundStream: public wxSoundStream { public: wxSoundStream& Read(void *buffer, size_t len) { return *this; } wxSoundStream& Write(const void *buffer, size_t len) { return *this; } bool StartProduction(int evt) { return FALSE; } bool StopProduction() { return FALSE; } void SetDuplexMode(bool on) {} void OnSoundEvent(int evt) { char buffer[2048]; f_input->Read(buffer, sizeof(buffer)); ulaw_codec->Write(buffer, sizeof(buffer)); } }; class MyApp: public wxApp { bool OnInit() { wxSoundFormatUlaw ulaw; MySoundStream strm; oss_dev = new wxSoundStreamOSS(); f_input = new wxFileInputStream(argv[1]); if (oss_dev->GetError() != wxSOUND_NOERR) { wxPrintf("No device\n"); return FALSE; } ulaw.SetSampleRate(8000); ulaw_codec = new wxSoundStreamUlaw(*oss_dev); ulaw_codec->SetSoundFormat(ulaw); oss_dev->SetEventHandler(&strm); oss_dev->StartProduction(wxSOUND_OUTPUT); while (1) { // wxYield(); strm.OnSoundEvent(0); } return TRUE; } }; IMPLEMENT_APP(MyApp)