#include <gtkmm/box.h>
#include <gtkmm/stock.h>
-#include <pbd/basename.h>
+#include <pbd/convert.h>
#include <gtkmm2ext/utils.h>
#include <ardour/audio_library.h>
#include <ardour/audioregion.h>
-#include <ardour/externalsource.h>
+#include <ardour/audiofilesource.h>
+#include "ardour_ui.h"
#include "gui_thread.h"
#include "prompter.h"
#include "sfdb_ui.h"
#include "i18n.h"
using namespace ARDOUR;
+using namespace PBD;
using namespace std;
-string length2string (const int32_t frames, const float sample_rate);
-
SoundFileBox::SoundFileBox ()
:
_session(0),
{
_session = s;
- if (!_session) {
+ if (!_session) {
play_btn.set_sensitive(false);
} else {
_session->AuditionActive.connect(mem_fun (*this, &SoundFileBox::audition_status_changed));
path = filename;
string error_msg;
- if(!ExternalSource::get_soundfile_info (filename, sf_info, error_msg)) {
+ if(!AudioFileSource::get_soundfile_info (filename, sf_info, error_msg)) {
return false;
}
length.set_alignment (0.0f, 0.0f);
- length.set_text (string_compose("Length: %1", length2string(sf_info.length, sf_info.samplerate)));
+ length.set_text (string_compose("Length: %1", PBD::length2string(sf_info.length, sf_info.samplerate)));
format.set_alignment (0.0f, 0.0f);
format.set_text (sf_info.format_name);
if (region_cache.find (path) == region_cache.end()) {
AudioRegion::SourceList srclist;
- ExternalSource* sfs;
+ AudioFileSource* afs;
for (int n = 0; n < sf_info.channels; ++n) {
try {
- sfs = ExternalSource::create (path+":"+string_compose("%1", n), false);
- srclist.push_back(sfs);
+ afs = AudioFileSource::create (path+":"+string_compose("%1", n));
+ srclist.push_back(afs);
} catch (failed_constructor& err) {
error << _("Could not access soundfile: ") << path << endmsg;
}
string result;
- _session->region_name (result, PBD::basename(srclist[0]->name()), false);
+ _session->region_name (result, Glib::path_get_basename(srclist[0]->name()), false);
AudioRegion* a_region = new AudioRegion(srclist, 0, srclist[0]->length(), result, 0, Region::DefaultFlags, false);
region_cache[path] = a_region;
}
ArdourPrompter prompter (true);
string name;
- prompter.set_prompt (_("Name for field"));
+ prompter.set_prompt (_("Name for Field"));
+ prompter.add_button (Gtk::Stock::ADD, Gtk::RESPONSE_ACCEPT);
+ prompter.set_response_sensitive (Gtk::RESPONSE_ACCEPT, false);
switch (prompter.run ()) {
case Gtk::RESPONSE_ACCEPT:
}
}
-SoundFileBrowser::SoundFileBrowser (string title)
+SoundFileBrowser::SoundFileBrowser (string title, ARDOUR::Session* s)
: ArdourDialog (title, false),
chooser (Gtk::FILE_CHOOSER_ACTION_OPEN)
{
chooser.set_select_multiple (true);
chooser.signal_update_preview().connect(mem_fun(*this, &SoundFileBrowser::update_preview));
+
+ set_session (s);
}
void
chooser.set_preview_widget_active(preview.setup_labels(chooser.get_filename()));
}
-SoundFileChooser::SoundFileChooser (string title)
+SoundFileChooser::SoundFileChooser (string title, ARDOUR::Session* s)
:
- SoundFileBrowser(title)
+ SoundFileBrowser(title, s)
{
add_button (Gtk::Stock::OPEN, Gtk::RESPONSE_OK);
add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
vector<string> SoundFileOmega::mode_strings;
-SoundFileOmega::SoundFileOmega (string title)
- : SoundFileBrowser (title),
+SoundFileOmega::SoundFileOmega (string title, ARDOUR::Session* s)
+ : SoundFileBrowser (title, s),
split_check (_("Split Channels"))
{
if (mode_strings.empty()) {
- mode_strings = internationalize (import_mode_strings);
+ mode_strings = PBD::internationalize (import_mode_strings);
}
- add_button (_("Embed"), ResponseEmbed);
- add_button (_("Import"), ResponseImport);
+ ARDOUR_UI::instance()->tooltips().set_tip(split_check,
+ _("Create a region for each channel"));
+
+ Gtk::Button* btn = add_button (_("Embed"), ResponseEmbed);
+ ARDOUR_UI::instance()->tooltips().set_tip(*btn,
+ _("Link to an external file"));
+
+ btn = add_button (_("Import"), ResponseImport);
+ ARDOUR_UI::instance()->tooltips().set_tip(*btn,
+ _("Copy a file to the session folder"));
+
add_button (Gtk::Stock::CLOSE, Gtk::RESPONSE_CLOSE);
Gtk::HBox *box = manage (new Gtk::HBox());