mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-15 19:16:40 +01:00
merge from 2.0-ongoing by hand, minus key binding editor
git-svn-id: svn://localhost/ardour2/trunk@2539 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
aa1f736a65
commit
f7f9d6fdc4
134 changed files with 6894 additions and 2403 deletions
|
|
@ -22,6 +22,8 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <glibmm/ustring.h>
|
||||
|
||||
#include <sigc++/signal.h>
|
||||
|
||||
|
|
@ -41,32 +43,50 @@
|
|||
#include "ardour_dialog.h"
|
||||
#include "editing.h"
|
||||
|
||||
namespace ARDOUR {
|
||||
class Session;
|
||||
};
|
||||
|
||||
class GainMeter;
|
||||
|
||||
class SoundFileBox : public Gtk::VBox
|
||||
{
|
||||
public:
|
||||
SoundFileBox ();
|
||||
SoundFileBox (bool persistent);
|
||||
virtual ~SoundFileBox () {};
|
||||
|
||||
void set_session (ARDOUR::Session* s);
|
||||
bool setup_labels (std::string filename);
|
||||
bool setup_labels (const Glib::ustring& filename);
|
||||
|
||||
void audition();
|
||||
bool audition_oneshot();
|
||||
bool autoplay () const;
|
||||
|
||||
protected:
|
||||
ARDOUR::Session* _session;
|
||||
std::string path;
|
||||
Glib::ustring path;
|
||||
|
||||
ARDOUR::SoundFileInfo sf_info;
|
||||
|
||||
pid_t current_pid;
|
||||
Gtk::Table table;
|
||||
|
||||
Gtk::Label length;
|
||||
Gtk::Label format;
|
||||
Gtk::Label channels;
|
||||
Gtk::Label samplerate;
|
||||
Gtk::Label timecode;
|
||||
|
||||
Gtk::Label channels_value;
|
||||
Gtk::Label samplerate_value;
|
||||
|
||||
Gtk::Label format_text;
|
||||
AudioClock length_clock;
|
||||
AudioClock timecode_clock;
|
||||
|
||||
Gtk::Frame border_frame;
|
||||
|
||||
Gtk::Entry tags_entry;
|
||||
Gtk::Label preview_label;
|
||||
|
||||
Gtk::TextView tags_entry;
|
||||
|
||||
Gtk::VBox main_box;
|
||||
Gtk::VBox path_box;
|
||||
|
|
@ -74,91 +94,137 @@ class SoundFileBox : public Gtk::VBox
|
|||
|
||||
Gtk::Button play_btn;
|
||||
Gtk::Button stop_btn;
|
||||
Gtk::CheckButton autoplay_btn;
|
||||
Gtk::Button apply_btn;
|
||||
|
||||
|
||||
bool tags_entry_left (GdkEventFocus* event);
|
||||
void play_btn_clicked ();
|
||||
void stop_btn_clicked ();
|
||||
void apply_btn_clicked ();
|
||||
|
||||
void audition_status_changed (bool state);
|
||||
void tags_changed ();
|
||||
void save_tags (const std::vector<std::string>&);
|
||||
void stop_audition ();
|
||||
};
|
||||
|
||||
class SoundFileBrowser : public ArdourDialog
|
||||
{
|
||||
public:
|
||||
SoundFileBrowser (std::string title, ARDOUR::Session* _s = 0);
|
||||
virtual ~SoundFileBrowser ();
|
||||
|
||||
virtual void set_session (ARDOUR::Session*);
|
||||
|
||||
protected:
|
||||
Gtk::FileChooserWidget chooser;
|
||||
Gtk::FileFilter custom_filter;
|
||||
Gtk::FileFilter matchall_filter;
|
||||
SoundFileBox preview;
|
||||
|
||||
static Glib::ustring persistent_folder;
|
||||
|
||||
private:
|
||||
class FoundTagColumns : public Gtk::TreeModel::ColumnRecord
|
||||
{
|
||||
public:
|
||||
Gtk::TreeModelColumn<string> pathname;
|
||||
Gtk::TreeModelColumn<Glib::ustring> pathname;
|
||||
|
||||
FoundTagColumns() { add(pathname); }
|
||||
};
|
||||
|
||||
FoundTagColumns found_list_columns;
|
||||
Glib::RefPtr<Gtk::ListStore> found_list;
|
||||
|
||||
public:
|
||||
SoundFileBrowser (Gtk::Window& parent, std::string title, ARDOUR::Session* _s, bool persistent);
|
||||
virtual ~SoundFileBrowser ();
|
||||
|
||||
virtual void set_session (ARDOUR::Session*);
|
||||
std::vector<Glib::ustring> get_paths ();
|
||||
|
||||
void clear_selection ();
|
||||
|
||||
Gtk::FileChooserWidget chooser;
|
||||
Gtk::TreeView found_list_view;
|
||||
|
||||
protected:
|
||||
bool resetting_ourselves;
|
||||
|
||||
Gtk::FileFilter custom_filter;
|
||||
Gtk::FileFilter matchall_filter;
|
||||
SoundFileBox preview;
|
||||
Gtk::HBox hpacker;
|
||||
|
||||
static Glib::ustring persistent_folder;
|
||||
|
||||
Gtk::Entry found_entry;
|
||||
Gtk::Button found_search_btn;
|
||||
|
||||
Gtk::Notebook notebook;
|
||||
|
||||
|
||||
GainMeter* gm;
|
||||
Gtk::VBox meter_packer;
|
||||
void add_gain_meter ();
|
||||
void remove_gain_meter ();
|
||||
void meter ();
|
||||
void start_metering ();
|
||||
void stop_metering ();
|
||||
sigc::connection metering_connection;
|
||||
|
||||
void update_preview ();
|
||||
void found_list_view_selected ();
|
||||
void found_list_view_activated (const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn*);
|
||||
void found_search_clicked ();
|
||||
|
||||
void chooser_file_activated ();
|
||||
|
||||
bool on_custom (const Gtk::FileFilter::Info& filter_info);
|
||||
|
||||
virtual bool reset_options() { return true; }
|
||||
|
||||
protected:
|
||||
void on_show();
|
||||
|
||||
};
|
||||
|
||||
class SoundFileChooser : public SoundFileBrowser
|
||||
{
|
||||
public:
|
||||
SoundFileChooser (std::string title, ARDOUR::Session* _s = 0);
|
||||
SoundFileChooser (Gtk::Window& parent, std::string title, ARDOUR::Session* _s = 0);
|
||||
virtual ~SoundFileChooser () {};
|
||||
|
||||
std::string get_filename ();
|
||||
Glib::ustring get_filename ();
|
||||
|
||||
protected:
|
||||
void on_hide();
|
||||
};
|
||||
|
||||
class SoundFileOmega : public SoundFileBrowser
|
||||
{
|
||||
|
||||
public:
|
||||
SoundFileOmega (std::string title, ARDOUR::Session* _s);
|
||||
virtual ~SoundFileOmega () {};
|
||||
SoundFileOmega (Gtk::Window& parent, std::string title, ARDOUR::Session* _s, int selected_tracks, bool persistent,
|
||||
Editing::ImportMode mode_hint = Editing::ImportAsTrack);
|
||||
|
||||
/* these are returned by the Dialog::run() method. note
|
||||
that builtin GTK responses are all negative, leaving
|
||||
positive values for application-defined responses.
|
||||
*/
|
||||
|
||||
const static int ResponseImport = 1;
|
||||
const static int ResponseEmbed = 2;
|
||||
|
||||
std::vector<Glib::ustring> get_paths ();
|
||||
bool get_split ();
|
||||
void reset (int selected_tracks);
|
||||
|
||||
Gtk::ComboBoxText action_combo;
|
||||
Gtk::ComboBoxText where_combo;
|
||||
Gtk::ComboBoxText channel_combo;
|
||||
Gtk::ComboBoxText src_combo;
|
||||
|
||||
Gtk::CheckButton copy_files_btn;
|
||||
|
||||
void set_mode (Editing::ImportMode);
|
||||
Editing::ImportMode get_mode ();
|
||||
Editing::ImportMode get_mode() const;
|
||||
Editing::ImportPosition get_position() const;
|
||||
Editing::ImportDisposition get_channel_disposition() const;
|
||||
ARDOUR::SrcQuality get_src_quality() const;
|
||||
|
||||
protected:
|
||||
Gtk::CheckButton split_check;
|
||||
Gtk::ComboBoxText mode_combo;
|
||||
|
||||
void mode_changed ();
|
||||
|
||||
static std::vector<std::string> mode_strings;
|
||||
void on_hide();
|
||||
|
||||
private:
|
||||
uint32_t selected_track_cnt;
|
||||
|
||||
typedef std::map<Glib::ustring,Editing::ImportDisposition> DispositionMap;
|
||||
DispositionMap disposition_map;
|
||||
|
||||
Gtk::HBox options;
|
||||
Gtk::VBox block_two;
|
||||
Gtk::VBox block_three;
|
||||
Gtk::VBox block_four;
|
||||
|
||||
bool check_info (const std::vector<Glib::ustring>& paths,
|
||||
bool& same_size, bool& src_needed, bool& multichannel);
|
||||
|
||||
static bool check_link_status (const ARDOUR::Session&, const std::vector<Glib::ustring>& paths);
|
||||
|
||||
void file_selection_changed ();
|
||||
bool reset_options ();
|
||||
void reset_options_noret ();
|
||||
bool bad_file_message ();
|
||||
};
|
||||
|
||||
#endif // __ardour_sfdb_ui_h__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue