34 mInternalBuffersNumber(8)
42 for (i=0;i<mDevices.size(); i++)
49 std::vector<AudioDeviceList*>& AudioManager::DeviceLists(
void)
51 static std::vector<AudioDeviceList*> sDeviceLists;
59 for (i=0;i<mDevices.size();i++)
61 if (mDevices[i]->mName == name)
73 for (i=0;i<mDevices.size();i++)
75 if (mDevices[i]->mInputs.size() || mDevices[i]->mOutputs.size())
82 std::string arch = name.substr(0,name.find(
":",0));
83 std::string device = name.substr(name.find(
":",0)+1,name.size());
85 if (arch ==
"" || device ==
"")
87 std::string msg =
"AudioManager::FindOrCreateDevice(...): Invalid device name: ";
89 throw Err(msg.c_str());
92 if (arch ==
"default")
102 errstr =
"AudioManager::FindOrCreateDevice(): "
103 "Don't have a list of \""+arch+
"\" devices.\n"
104 " Maybe you are not specifying any library to play sound (alsa, rtaudio...)\n";
105 throw Err((
char*) errstr.c_str());
111 errstr =
"AudioManager::FindOrCreateDevice(): "
112 "Don't have any \""+arch+
"\" devices available.\n"
113 " Maybe you are not specifying any library to play sound (alsa, rtaudio...)\n";
114 throw Err((
char*) errstr.c_str());
117 if (device ==
"default")
128 errstr =
"AudioManager::FindOrCreateDevice(): "
129 "No device \""+device+
"\" available in architecture \""+arch+
"\".\n"
130 " Maybe you are not specifying any library to play sound (alsa, rtaudio...)\n";
131 throw Err((
char*) errstr.c_str());
134 std::string real_name = arch+
":"+device;
138 if (audiodevice==0) {
140 audiodevice = list->
Create(real_name,device);
145 errstr =
"AudioManager::FindOrCreateDevice(): Don't know how to make device "+real_name;
146 throw Err((
char*) errstr.c_str());
150 mDevices.push_back(audiodevice);
172 std::string tmp = arch;
174 if (tmp ==
"default")
176 for (i=0;i<DeviceLists().size();i++)
178 if (DeviceLists()[i]->ArchName() == tmp)
180 return DeviceLists()[i];