#include "sound_processor.h"
#include "dci_metadata_dialog.h"
#include "scaler.h"
+#include "audio_dialog.h"
using std::string;
using std::cout;
: wxPanel (parent)
, _film (f)
, _generally_sensitive (true)
+ , _audio_dialog (0)
{
wxBoxSizer* s = new wxBoxSizer (wxVERTICAL);
SetSizer (s);
_dcp_content_type = new wxChoice (_film_panel, wxID_ANY);
grid->Add (_dcp_content_type);
- video_control (add_label_to_sizer (grid, _film_panel, _("Frames Per Second")));
+ video_control (add_label_to_sizer (grid, _film_panel, _("Original Frame Rate")));
_frames_per_second = new wxStaticText (_film_panel, wxID_ANY, wxT (""));
grid->Add (video_control (_frames_per_second), 1, wxALIGN_CENTER_VERTICAL);
_audio_gain_calculate_button->Connect (
wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (FilmEditor::audio_gain_calculate_button_clicked), 0, this
);
+ _show_audio->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (FilmEditor::show_audio_clicked), 0, this);
_audio_delay->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (FilmEditor::audio_delay_changed), 0, this);
_use_content_audio->Connect (wxID_ANY, wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler (FilmEditor::use_audio_changed), 0, this);
_use_external_audio->Connect (wxID_ANY, wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler (FilmEditor::use_audio_changed), 0, this);
_format = new wxChoice (_video_panel, wxID_ANY);
grid->Add (_format);
- {
- add_label_to_sizer (grid, _video_panel, _("Crop"));
- wxBoxSizer* s = new wxBoxSizer (wxHORIZONTAL);
-
- /* TRANSLATORS: L, R, T and B are abbreviations for Left, Right, Top, Bottom, the four edges
- of the picture frame.
- */
- add_label_to_sizer (s, _video_panel, _("L"));
- _left_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1));
- s->Add (_left_crop, 0);
- add_label_to_sizer (s, _video_panel, _("R"));
- _right_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1));
- s->Add (_right_crop, 0);
- add_label_to_sizer (s, _video_panel, _("T"));
- _top_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1));
- s->Add (_top_crop, 0);
- add_label_to_sizer (s, _video_panel, _("B"));
- _bottom_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1));
- s->Add (_bottom_crop, 0);
+ add_label_to_sizer (grid, _video_panel, _("Left crop"));
+ _left_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1));
+ grid->Add (_left_crop);
- grid->Add (s);
- }
+ add_label_to_sizer (grid, _video_panel, _("Right crop"));
+ _right_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1));
+ grid->Add (_right_crop);
+
+ add_label_to_sizer (grid, _video_panel, _("Top crop"));
+ _top_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1));
+ grid->Add (_top_crop);
+
+ add_label_to_sizer (grid, _video_panel, _("Bottom crop"));
+ _bottom_crop = new wxSpinCtrl (_video_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (64, -1));
+ grid->Add (_bottom_crop);
/* VIDEO-only stuff */
{
wxFlexGridSizer* grid = new wxFlexGridSizer (2, 4, 4);
_audio_sizer->Add (grid, 0, wxALL, 8);
+ _show_audio = new wxButton (_audio_panel, wxID_ANY, _("Show Audio..."));
+ grid->Add (_show_audio, 1);
+ grid->AddSpacer (0);
+
{
video_control (add_label_to_sizer (grid, _audio_panel, _("Audio Gain")));
wxBoxSizer* s = new wxBoxSizer (wxHORIZONTAL);
grid->Add (_use_external_audio);
grid->AddSpacer (0);
- assert (MAX_AUDIO_CHANNELS == 6);
-
- /* TRANSLATORS: these are the names of audio channels; Lfe (sub) is the low-frequency
- enhancement channel (sub-woofer)./
- */
- wxString const channels[] = {
- _("Left"),
- _("Right"),
- _("Centre"),
- _("Lfe (sub)"),
- _("Left surround"),
- _("Right surround"),
- };
-
for (int i = 0; i < MAX_AUDIO_CHANNELS; ++i) {
- add_label_to_sizer (grid, _audio_panel, channels[i]);
+ add_label_to_sizer (grid, _audio_panel, audio_channel_name (i));
_external_audio[i] = new wxFilePickerCtrl (_audio_panel, wxID_ANY, wxT (""), _("Select Audio File"), wxT ("*.wav"));
grid->Add (_external_audio[i], 1, wxEXPAND);
}
} else {
FileChanged ("");
}
+
+ if (_audio_dialog) {
+ _audio_dialog->set_film (_film);
+ }
film_changed (Film::NAME);
film_changed (Film::USE_DCI_NAME);
_j2k_bandwidth->Enable (s);
_audio_gain->Enable (s);
_audio_gain_calculate_button->Enable (s);
+ _show_audio->Enable (s);
_audio_delay->Enable (s);
_still_duration->Enable (s);
void
FilmEditor::setup_dcp_name ()
{
- _dcp_name->SetLabel (std_to_wx (_film->dcp_name (true)));
+ string s = _film->dcp_name (true);
+ if (s.length() > 28) {
+ _dcp_name->SetLabel (std_to_wx (s.substr (0, 28) + "..."));
+ _dcp_name->SetToolTip (std_to_wx (s));
+ } else {
+ _dcp_name->SetLabel (std_to_wx (s));
+ }
+}
+
+void
+FilmEditor::show_audio_clicked (wxCommandEvent &)
+{
+ if (_audio_dialog) {
+ _audio_dialog->Destroy ();
+ _audio_dialog = 0;
+ }
+
+ _audio_dialog = new AudioDialog (this);
+ _audio_dialog->Show ();
+ _audio_dialog->set_film (_film);
}