X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Fwx%2Fgain_calculator_dialog.cc;h=701856610a88145dd0b89a0ba982347a1ddcef48;hp=5a8dc8433aaf495cd61d7ad0b543afe875f32b15;hb=e6c828cbd577239e7c8e4c532161084a33843a0f;hpb=e683d5d750b2532806594cfafbd6e732b3004a99 diff --git a/src/wx/gain_calculator_dialog.cc b/src/wx/gain_calculator_dialog.cc index 5a8dc8433..701856610 100644 --- a/src/wx/gain_calculator_dialog.cc +++ b/src/wx/gain_calculator_dialog.cc @@ -1,70 +1,61 @@ /* - Copyright (C) 2012 Carl Hetherington + Copyright (C) 2012-2019 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ -#include #include "gain_calculator_dialog.h" #include "wx_util.h" +#include "lib/util.h" +#include "lib/cinema_sound_processor.h" -using namespace boost; +using boost::optional; GainCalculatorDialog::GainCalculatorDialog (wxWindow* parent) - : wxDialog (parent, wxID_ANY, _("Gain Calculator")) + : TableDialog (parent, _("Gain Calculator"), 2, 1, true) { - wxFlexGridSizer* table = new wxFlexGridSizer (2, DVDOMATIC_SIZER_X_GAP, DVDOMATIC_SIZER_Y_GAP); - table->AddGrowableCol (1, 1); - - add_label_to_sizer (table, this, _("I want to play this back at fader")); - _wanted = new wxTextCtrl (this, wxID_ANY, wxT (""), wxDefaultPosition, wxDefaultSize, 0, wxTextValidator (wxFILTER_NUMERIC)); - table->Add (_wanted, 1, wxEXPAND); + add (_("Sound processor"), true); + _processor = add (new wxChoice(this, wxID_ANY)); - add_label_to_sizer (table, this, _("But I have to use fader")); - _actual = new wxTextCtrl (this, wxID_ANY, wxT (""), wxDefaultPosition, wxDefaultSize, 0, wxTextValidator (wxFILTER_NUMERIC)); - table->Add (_actual, 1, wxEXPAND); + add (_("I want to play this back at fader"), true); + _wanted = add (new wxTextCtrl (this, wxID_ANY, wxT (""), wxDefaultPosition, wxDefaultSize, 0, wxTextValidator (wxFILTER_NUMERIC))); - wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL); - overall_sizer->Add (table, 1, wxEXPAND | wxALL, 6); + add (_("But I have to use fader"), true); + _actual = add (new wxTextCtrl (this, wxID_ANY, wxT (""), wxDefaultPosition, wxDefaultSize, 0, wxTextValidator (wxFILTER_NUMERIC))); - wxSizer* buttons = CreateSeparatedButtonSizer (wxOK); - if (buttons) { - overall_sizer->Add (buttons, wxSizerFlags().Expand().DoubleBorder()); + BOOST_FOREACH (CinemaSoundProcessor const * i, CinemaSoundProcessor::all()) { + _processor->Append (std_to_wx(i->name())); } - - SetSizer (overall_sizer); - overall_sizer->SetSizeHints (this); -} -float -GainCalculatorDialog::wanted_fader () const -{ - if (_wanted->GetValue().IsEmpty()) { - return 0; - } - - return lexical_cast (wx_to_std (_wanted->GetValue ())); + _processor->SetSelection (0); + + layout (); } -float -GainCalculatorDialog::actual_fader () const +optional +GainCalculatorDialog::db_change () const { - if (_actual->GetValue().IsEmpty()) { - return 0; + if (_wanted->GetValue().IsEmpty() || _actual->GetValue().IsEmpty()) { + return optional(); } - return lexical_cast (wx_to_std (_actual->GetValue ())); + return CinemaSoundProcessor::from_index( + _processor->GetSelection())->db_for_fader_change( + relaxed_string_to_float(wx_to_std(_wanted->GetValue())), + relaxed_string_to_float(wx_to_std(_actual->GetValue())) + ); }