summaryrefslogtreecommitdiff
path: root/gtk2_ardour/new_session_dialog.h
blob: c253861ef65bce56bad4672b30bd359bb2ece999 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#ifndef __gtk_ardour_new_session_dialog_h__
#define __gtk_ardour_new_session_dialog_h__

#include <gtk--/adjustment.h>
#include <gtk--/radiobutton.h>
#include <gtk--/frame.h>
#include <gtk--/box.h>
#include <gtk--/checkbutton.h>

namespace Gtk {
	class CList;
}

namespace ARDOUR {
	class AudioEngine;
}

#include <gtkmmext/click_box.h>
#include <gtkmmext/selector.h>
#include <gtkmmext/newsavedialog.h>
#include "ardour_dialog.h"

class NewSessionDialog : public ArdourDialog
{
  public:
	NewSessionDialog (ARDOUR::AudioEngine&, bool startup, std::string path);
	
	Gtkmmext::NewSaveDialog file_selector;
	Gtk::Combo control_out_channel_combo;
	Gtk::Combo master_out_channel_combo;
	Gtk::CheckButton use_control_button;
	Gtk::CheckButton use_master_button;
	Gtk::CheckButton connect_to_physical_inputs_button;

	Gtk::RadioButton connect_to_master_button;
	Gtk::RadioButton connect_to_physical_outputs_button;
	Gtk::RadioButton manual_connect_outputs_button;

	Gtk::VBox input_vbox;
	Gtk::VBox manual_vbox;
	Gtk::VBox output_vbox;
	Gtk::VBox vbox;

	Gtk::Adjustment in_count_adjustment;
	Gtk::Adjustment out_count_adjustment;

	string get_template_name ();

  private:
	Gtk::Notebook notebook;
	Gtk::VBox     main_vbox;
	Gtk::VBox     fsbox;

	Gtk::Frame control_out_config_frame;
	Gtk::Frame master_out_config_frame;
	Gtk::Label output_label;
	Gtk::Label input_label;
	Gtk::Frame sr_frame;
	Gtk::Frame template_frame;
	Gtk::Frame manual_frame;
	Gtk::HBox control_hbox;
	Gtk::HBox master_hbox;
	Gtk::Table io_table;
	Gtk::VBox template_box;
	Gtk::HBox output_hbox;
	Gtk::HBox input_hbox;
	Gtk::HBox option_hbox;
	Gtk::VBox io_box;
	Gtk::Label sr_label2;
	Gtk::Label sr_label1;
	Gtk::VBox  sr_box;
	Gtk::Button expansion_button;
	Gtk::Table out_table;
	Gtk::CheckButton show_again;
	Gtk::Combo   template_combo;
	list<string> templates;
	Gtk::SpinButton in_count_spinner;
	Gtk::SpinButton out_count_spinner;
	Gtk::Label      in_count_label;
	Gtk::Label      out_count_label;

	void reset_templates ();
	
	static void _mix_template_refiller (Gtk::CList &clist, void *);
	void mix_template_refiller (Gtk::CList &clist);

	void mix_template_shift (Gtkmmext::Selector *, Gtkmmext::SelectionResult*);
	void mix_template_control (Gtkmmext::Selector *, Gtkmmext::SelectionResult*);

	void fixup_at_realize ();
	void fixup_at_show ();
	void toggle_expansion ();
	void file_selector_expansion (bool);

	void show_again_toggled ();
};

#endif // __gtk_ardour_new_session_dialog_h__ */