Logo Search packages:      
Sourcecode: ardour version File versions  Download package

export_dialog.h

/*
    Copyright (C) 1999-2002 Paul Davis 

    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
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

*/

#ifndef __ardour_export_dialog_h__
#define __ardour_export_dialog_h__

#include <gtk--.h>

#include <ardour/export.h>
#include "ardour_dialog.h"
#include <ardour/location.h>


class PublicEditor;

namespace ARDOUR {
      class Session;
      class AudioRegion;
}

class ExportDialog : public ArdourDialog
{
  public:
      ExportDialog (PublicEditor&, ARDOUR::AudioRegion* r = 0);
      ~ExportDialog ();

      void connect_to_session (ARDOUR::Session*);
      void set_range (jack_nframes_t start, jack_nframes_t end);
      void start_export ();

  private:
      PublicEditor&    editor;
      ARDOUR::Session* session;
      ARDOUR::AudioRegion* audio_region;
      Gtk::VBox   vpacker;
      Gtk::VBox   track_vpacker;
      Gtk::HBox   hpacker;
      Gtk::HBox   button_box;

      Gtk::Table  format_table;
      Gtk::Frame  format_frame;

      Gtk::Label  sample_rate_label;
      Gtk::Combo  sample_rate_combo;

      Gtk::Label  src_quality_label;
      Gtk::Combo  src_quality_combo;

      Gtk::Label  dither_type_label;
      Gtk::Combo  dither_type_combo;

      Gtk::Label  cue_file_label;
      Gtk::Combo  cue_file_combo;

      Gtk::Label  channel_count_label;
      Gtk::Combo  channel_count_combo;

      Gtk::Label  header_format_label;
      Gtk::Combo  header_format_combo;

      Gtk::Label  bitdepth_format_label;
      Gtk::Combo  bitdepth_format_combo;

      Gtk::Label  endian_format_label;
      Gtk::Combo  endian_format_combo;

      Gtk::CheckButton cuefile_only_checkbox;

      Gtk::Frame  file_frame;
      Gtk::Entry  file_entry;
      Gtk::HBox   file_hbox;
      Gtk::Button file_browse_button;

      Gtk::Button ok_button;
      Gtk::Button cancel_button;
      Gtk::Label  cancel_label;
      Gtk::ProgressBar progress_bar;
      Gtk::ScrolledWindow track_scroll;
      Gtk::ScrolledWindow master_scroll;
      Gtk::Button         track_selector_button;
      Gtk::CList  track_selector;
      Gtk::CList  master_selector;
      Gtk::FileSelection *file_selector;
      ARDOUR::AudioExportSpecification spec;

      static GdkPixmap *check_pixmap;
      static GdkBitmap *check_mask;
      static GdkPixmap *empty_pixmap;
      static GdkBitmap *empty_mask;

      static void *_thread (void *arg);
      gint progress_timeout ();
      SigC::Connection progress_connection;
      void build_window ();
      void end_dialog();
      gint header_chosen (GdkEventAny *ignored);
      gint channels_chosen (GdkEventAny *ignored);
      gint bitdepth_chosen (GdkEventAny *ignored);
      gint sample_rate_chosen (GdkEventAny *ignored);
      gint cue_file_type_chosen(GdkEventAny *ignored);
      gint track_selector_button_press_event (GdkEventButton *ev);
      gint master_selector_button_press_event (GdkEventButton *ev);

            void do_export_cd_markers (const string& path, const string& cuefile_type);
      void export_cue_file (ARDOUR::Locations::LocationList& locations, const string& path);
      void export_toc_file (ARDOUR::Locations::LocationList& locations, const string& path);
      void do_export ();
      gint change_focus_policy (GdkEventAny *, bool);
      gint window_closed (GdkEventAny *ignored);

      void track_selector_button_click ();
      void set_default_master_selection(bool disable=false);
      bool has_tracks_selected();
      
      void initiate_browse ();
      void finish_browse (int status);

      void set_state();
      void save_state();

      static void* _export_region_thread (void *);
      void export_region ();
};

#endif // __ardour_export_dialog_h__


Generated by  Doxygen 1.6.0   Back to index