X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fconfig_dialog.cc;h=b4adc855e4af103398fd11a8c5a27cbc33c6a8c6;hb=HEAD;hp=fdb7947dab6e81d04abaa950c87b1326857e4438;hpb=b5cecdd0ee7c75388d95e2f987538fe88c23893a;p=dcpomatic.git diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc index fdb7947da..b4adc855e 100644 --- a/src/wx/config_dialog.cc +++ b/src/wx/config_dialog.cc @@ -27,6 +27,7 @@ #include "static_text.h" #include "lib/constants.h" #include +#include #include @@ -127,6 +128,7 @@ GeneralPage::add_language_controls (wxGridBagSizer* table, int& r) languages.push_back (make_pair("Deutsch", "de_DE")); languages.push_back (make_pair("English", "en_GB")); languages.push_back (make_pair("Español", "es_ES")); + languages.push_back (make_pair("فارسی", "fa_IR")); languages.push_back (make_pair("Français", "fr_FR")); languages.push_back (make_pair("Italiano", "it_IT")); languages.push_back (make_pair("ქართული", "ka_KA")); @@ -576,7 +578,7 @@ CertificateChainEditor::import_private_key () if (d->ShowModal() == wxID_OK) { try { boost::filesystem::path p (wx_to_std (d->GetPath ())); - if (boost::filesystem::file_size (p) > 8192) { + if (dcp::filesystem::file_size(p) > 8192) { error_dialog ( this, wxString::Format (_("Could not read key file; file is too long (%s)"), std_to_wx (p.string ())) @@ -879,6 +881,14 @@ SoundPage::setup () _sound_output_details->SetFont (font); RtAudio audio (DCPOMATIC_RTAUDIO_API); +#if (RTAUDIO_VERSION_MAJOR >= 6) + for (auto device_id: audio.getDeviceIds()) { + auto dev = audio.getDeviceInfo(device_id); + if (dev.outputChannels > 0) { + _sound_output->Append(std_to_wx(dev.name)); + } + } +#else for (unsigned int i = 0; i < audio.getDeviceCount(); ++i) { try { auto dev = audio.getDeviceInfo (i); @@ -889,6 +899,7 @@ SoundPage::setup () /* Something went wrong so let's just ignore that device */ } } +#endif _sound->bind(&SoundPage::sound_changed, this); _sound_output->Bind (wxEVT_CHOICE, bind(&SoundPage::sound_output_changed, this)); @@ -920,11 +931,15 @@ SoundPage::sound_output_changed () RtAudio audio (DCPOMATIC_RTAUDIO_API); auto const so = get_sound_output(); string default_device; +#if (RTAUDIO_VERSION_MAJOR >= 6) + default_device = audio.getDeviceInfo(audio.getDefaultOutputDevice()).name; +#else try { default_device = audio.getDeviceInfo(audio.getDefaultOutputDevice()).name; } catch (RtAudioError&) { /* Never mind */ } +#endif if (!so || *so == default_device) { Config::instance()->unset_sound_output (); } else { @@ -947,11 +962,15 @@ SoundPage::config_changed () } else { /* No configured output means we should use the default */ RtAudio audio (DCPOMATIC_RTAUDIO_API); +#if (RTAUDIO_VERSION_MAJOR >= 6) + configured_so = audio.getDeviceInfo(audio.getDefaultOutputDevice()).name; +#else try { configured_so = audio.getDeviceInfo(audio.getDefaultOutputDevice()).name; } catch (RtAudioError&) { /* Probably no audio devices at all */ } +#endif } if (configured_so && current_so != configured_so) { @@ -981,6 +1000,14 @@ SoundPage::config_changed () int channels = 0; if (configured_so) { +#if (RTAUDIO_VERSION_MAJOR >= 6) + for (auto device_id: audio.getDeviceIds()) { + auto info = audio.getDeviceInfo(device_id); + if (info.name == *configured_so && info.outputChannels > 0) { + channels = info.outputChannels; + } + } +#else for (unsigned int i = 0; i < audio.getDeviceCount(); ++i) { try { auto info = audio.getDeviceInfo(i); @@ -991,6 +1018,7 @@ SoundPage::config_changed () /* Never mind */ } } +#endif } _sound_output_details->SetLabel (