caudio/Examples/Tutorial7_CustomLogReceiver/src/main.cpp

88 lines
2.4 KiB
C++

//****************************************************************
//cAudio 2.3.0 Tutorial 7
//Custom log receiver
//****************************************************************
#include <iostream>
#include <string>
//Include cAudio.h so we can work wtih cAudio
#include "cAudio.h"
//Include the new log receiver
#include "cTestLogReceiver.h"
using namespace std;
int main(int argc, char* argv[])
{
//Some fancy text
cout << "cAudio 2.3.0 Tutorial 7: Custom log recevier. \n \n";
//Create an uninitialized Audio Manager
cAudio::IAudioManager* audioMgr = cAudio::createAudioManager(false);
//Now we make a new pointer to our receiver
cTestLogReceiver *loggin = new cTestLogReceiver;
//Once the manager is created we grab instance of the cAudio logger
cAudio::ILogger *log = cAudio::getLogger();
//Then we pass our new receiver to it with a unique name
log->registerLogReceiver(loggin,"Loggin");
if(audioMgr)
{
//Allow the user to choose a playback device
cout << "\nAvailable Playback Devices: \n";
cAudio::IAudioDeviceList* pDeviceList = cAudio::createAudioDeviceList();
unsigned int deviceCount = pDeviceList->getDeviceCount();
cAudio::cAudioString defaultDeviceName = pDeviceList->getDefaultDeviceName();
for(unsigned int i=0; i<deviceCount; ++i)
{
cAudio::cAudioString deviceName = pDeviceList->getDeviceName(i);
if(deviceName.compare(defaultDeviceName) == 0)
cout << i << "): " << deviceName.c_str() << " [DEFAULT] \n";
else
cout << i << "): " << deviceName.c_str() << " \n";
}
cout << std::endl;
cout << "Choose a device by number: ";
unsigned int deviceSelection = 0;
cin >> deviceSelection;
cout << std::endl;
//Initialize the manager with the user settings
audioMgr->initialize(pDeviceList->getDeviceName(deviceSelection).c_str());
CAUDIO_DELETE pDeviceList;
pDeviceList = 0;
//Create a IAudio object and load a sound from a file
cAudio::IAudioSource* mysound = audioMgr->create("song", "../Media/cAudioTheme1.ogg",true);
if(mysound)
{
mysound->setVolume(0.5);
//Set the IAudio Sound to play2d and loop
mysound->play2d(false);
//Wait for the sound to finish playing
while(mysound->isPlaying())
cAudio::cAudioSleep(10);
}
cAudio::destroyAudioManager(audioMgr);
}
else
{
std::cout << "Failed to create audio playback manager. \n";
}
std::cout << "Press any key to quit \n";
std::cin.get();
std::cin.get();
return 0;
}