+#include <gtkmm/frame.h>
+#include <gtkmm/label.h>
+#include <gtkmm/scale.h>
+#include <gtkmm/textview.h>
+#include <gtkmm/table.h>
+#include <gtkmm/liststore.h>
+#include <gtkmm/spinbutton.h>
+#include <gtkmm/notebook.h>
+
+
+#include "ardour/audiofilesource.h"
+#include "ardour/session_handle.h"
+
+#include "ardour_window.h"
+#include "editing.h"
+#include "audio_clock.h"
+#include "instrument_selector.h"
+
+namespace ARDOUR {
+ class Session;
+};
+
+class GainMeter;
+class Mootcher;
+
+class SoundFileBox : public Gtk::VBox, public ARDOUR::SessionHandlePtr, public PBD::ScopedConnectionList
+{
+ public:
+ SoundFileBox (bool persistent);
+ virtual ~SoundFileBox () {};
+
+ void set_session (ARDOUR::Session* s);
+ bool setup_labels (const std::string& filename);
+
+ void audition();
+ bool audition_oneshot();
+ bool autoplay () const;
+ void set_src_quality(ARDOUR::SrcQuality q) { _src_quality = q; }
+ void set_import_position(Editing::ImportPosition p) { _import_position = p; }
+
+ protected:
+ std::string path;
+
+ ARDOUR::SoundFileInfo sf_info;
+
+ Gtk::Table table;
+
+ Gtk::Label length;
+ Gtk::Label format;
+ Gtk::Label channels;
+ Gtk::Label samplerate;
+ Gtk::Label timecode;
+ Gtk::Label tempomap;
+
+ Gtk::Label channels_value;
+ Gtk::Label samplerate_value;
+ Gtk::Label tempomap_value;
+
+ Gtk::Label format_text;
+ AudioClock length_clock;
+ AudioClock timecode_clock;
+
+ Gtk::Frame border_frame;
+ Gtk::Label preview_label;
+
+ Gtk::TextView tags_entry;
+
+ Gtk::VBox main_box;
+ Gtk::VBox path_box;
+ Gtk::HBox bottom_box;