/*
- Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*/
-#include <boost/lexical_cast.hpp>
-#include <wx/spinctrl.h>
#include "lib/config.h"
#include "lib/ffmpeg_content.h"
#include "lib/ffmpeg_audio_stream.h"
#include "wx_util.h"
#include "gain_calculator_dialog.h"
#include "content_panel.h"
+#include <wx/spinctrl.h>
+#include <boost/lexical_cast.hpp>
+#include <boost/foreach.hpp>
using std::vector;
using std::cout;
using std::string;
using std::list;
+using std::pair;
using boost::dynamic_pointer_cast;
using boost::lexical_cast;
using boost::shared_ptr;
_gain_calculate_button->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&AudioPanel::gain_calculate_button_clicked, this));
_processor->Bind (wxEVT_COMMAND_CHOICE_SELECTED, boost::bind (&AudioPanel::processor_changed, this));
- _mapping->Changed.connect (boost::bind (&AudioPanel::mapping_changed, this, _1));
+ _mapping_connection = _mapping->Changed.connect (boost::bind (&AudioPanel::mapping_changed, this, _1));
}
_mapping->set (acs ? acs->audio_mapping () : AudioMapping ());
_sizer->Layout ();
} else if (property == FFmpegContentProperty::AUDIO_STREAMS) {
- _stream->Clear ();
if (fcs) {
- vector<shared_ptr<FFmpegAudioStream> > a = fcs->audio_streams ();
- for (vector<shared_ptr<FFmpegAudioStream> >::iterator i = a.begin(); i != a.end(); ++i) {
- _stream->Append (std_to_wx ((*i)->name), new wxStringClientData (std_to_wx ((*i)->identifier ())));
+ vector<pair<string, string> > data;
+ BOOST_FOREACH (shared_ptr<FFmpegAudioStream> i, fcs->audio_streams ()) {
+ data.push_back (make_pair (i->name, i->identifier ()));
}
+ checked_set (_stream, data);
if (fcs->audio_stream()) {
checked_set (_stream, fcs->audio_stream()->identifier ());
}
+ } else {
+ _stream->Clear ();
}
} else if (property == AudioContentProperty::AUDIO_PROCESSOR) {
if (acs) {
AudioPanel::gain_calculate_button_clicked ()
{
GainCalculatorDialog* d = new GainCalculatorDialog (this);
- d->ShowModal ();
+ int const r = d->ShowModal ();
- if (d->wanted_fader() == 0 || d->actual_fader() == 0) {
+ if (r == wxID_CANCEL || d->wanted_fader() == 0 || d->actual_fader() == 0) {
d->Destroy ();
return;
}
{
AudioContentList ac = _parent->selected_audio ();
if (ac.size () != 1) {
- _description->SetLabel ("");
+ checked_set (_description, wxT (""));
return;
}
- shared_ptr<AudioContent> acs = ac.front ();
- if (acs->audio_frame_rate() != acs->resampled_audio_frame_rate ()) {
- _description->SetLabel (wxString::Format (
- _("Audio will be resampled from %.3fkHz to %.3fkHz."),
- acs->audio_frame_rate() / 1000.0,
- acs->resampled_audio_frame_rate() / 1000.0
- ));
- } else {
- _description->SetLabel (_("Audio will not be resampled."));
- }
+ checked_set (_description, ac.front()->processing_description ());
}
void