2018-05-19 02:51:34 +00:00
|
|
|
auto Program::initializeVideoDriver() -> void {
|
|
|
|
video = Video::create(settings["Video/Driver"].text());
|
|
|
|
video->setContext(presentation->viewport.handle());
|
|
|
|
video->setExclusive(false);
|
|
|
|
video->setBlocking(settings["Video/Blocking"].boolean());
|
|
|
|
if(!video->ready()) {
|
|
|
|
MessageDialog().setText("Failed to initialize video driver").warning();
|
|
|
|
video = Video::create("None");
|
|
|
|
}
|
|
|
|
presentation->clearViewport();
|
|
|
|
}
|
|
|
|
|
|
|
|
auto Program::initializeAudioDriver() -> void {
|
|
|
|
audio = Audio::create(settings["Audio/Driver"].text());
|
|
|
|
audio->setContext(presentation->viewport.handle());
|
|
|
|
audio->setExclusive(false);
|
|
|
|
audio->setBlocking(settings["Audio/Blocking"].boolean());
|
2018-05-20 04:39:29 +00:00
|
|
|
if(!audio->availableDevices().find(settings["Audio/Device"].text())) {
|
|
|
|
settings["Audio/Device"].setValue(audio->availableDevices()(0));
|
|
|
|
}
|
|
|
|
audio->setDevice(settings["Audio/Device"].text());
|
|
|
|
if(!audio->availableFrequencies().find(settings["Audio/Frequency"].real())) {
|
|
|
|
settings["Audio/Frequency"].setValue(audio->availableFrequencies()(0));
|
|
|
|
}
|
|
|
|
audio->setFrequency(settings["Audio/Frequency"].real());
|
|
|
|
if(!audio->availableLatencies().find(settings["Audio/Latency"].natural())) {
|
|
|
|
settings["Audio/Latency"].setValue(audio->availableLatencies()(0));
|
|
|
|
}
|
|
|
|
audio->setLatency(settings["Audio/Latency"].natural());
|
2018-05-19 02:51:34 +00:00
|
|
|
audio->setChannels(2);
|
|
|
|
if(!audio->ready()) {
|
|
|
|
MessageDialog().setText("Failed to initialize audio driver").warning();
|
|
|
|
audio = Audio::create("None");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
auto Program::initializeInputDriver() -> void {
|
|
|
|
input = Input::create(settings["Input/Driver"].boolean());
|
|
|
|
input->setContext(presentation->viewport.handle());
|
|
|
|
if(!input->ready()) {
|
|
|
|
MessageDialog().setText("Failed to initialize input driver").warning();
|
|
|
|
input = Input::create("None");
|
|
|
|
}
|
|
|
|
}
|