~ubuntu-branches/ubuntu/utopic/ardour3/utopic

« back to all changes in this revision

Viewing changes to gtk2_ardour/add_route_dialog.h

  • Committer: Package Import Robot
  • Author(s): Felipe Sateler
  • Date: 2013-09-21 19:05:02 UTC
  • Revision ID: package-import@ubuntu.com-20130921190502-8gsftrku6jnzhd7v
Tags: upstream-3.4~dfsg
ImportĀ upstreamĀ versionĀ 3.4~dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
    Copyright (C) 2000-2007 Paul Davis
 
3
 
 
4
    This program is free software; you can redistribute it and/or modify
 
5
    it under the terms of the GNU General Public License as published by
 
6
    the Free Software Foundation; either version 2 of the License, or
 
7
    (at your option) any later version.
 
8
 
 
9
    This program is distributed in the hope that it will be useful,
 
10
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
    GNU General Public License for more details.
 
13
 
 
14
    You should have received a copy of the GNU General Public License
 
15
    along with this program; if not, write to the Free Software
 
16
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
17
 
 
18
*/
 
19
 
 
20
#ifndef __gtk_ardour_add_route_dialog_h__
 
21
#define __gtk_ardour_add_route_dialog_h__
 
22
 
 
23
#include <string>
 
24
 
 
25
#include <gtkmm/entry.h>
 
26
#include <gtkmm/dialog.h>
 
27
#include <gtkmm/frame.h>
 
28
#include <gtkmm/radiobutton.h>
 
29
#include <gtkmm/adjustment.h>
 
30
#include <gtkmm/spinbutton.h>
 
31
#include <gtkmm/button.h>
 
32
#include <gtkmm/combobox.h>
 
33
#include <gtkmm/comboboxtext.h>
 
34
#include <gtkmm/treemodel.h>
 
35
#include <gtkmm/liststore.h>
 
36
 
 
37
#include "ardour/plugin.h"
 
38
#include "ardour/types.h"
 
39
#include "ardour/template_utils.h"
 
40
 
 
41
#include "ardour_dialog.h"
 
42
 
 
43
class Editor;
 
44
 
 
45
class AddRouteDialog : public ArdourDialog
 
46
{
 
47
  public:
 
48
        AddRouteDialog ();
 
49
        ~AddRouteDialog ();
 
50
 
 
51
        enum TypeWanted { 
 
52
                AudioTrack,
 
53
                MidiTrack,
 
54
                MixedTrack,
 
55
                AudioBus
 
56
        };
 
57
        TypeWanted type_wanted() const;
 
58
       
 
59
        ARDOUR::ChanCount channels ();
 
60
        int count ();
 
61
 
 
62
        std::string name_template () const;
 
63
        bool name_template_is_default () const;
 
64
        std::string track_template ();
 
65
        ARDOUR::PluginInfoPtr requested_instrument ();
 
66
        
 
67
        ARDOUR::TrackMode mode();
 
68
        ARDOUR::RouteGroup* route_group ();
 
69
 
 
70
  private:
 
71
        Gtk::Entry name_template_entry;
 
72
        Gtk::ComboBoxText track_bus_combo;
 
73
        Gtk::Adjustment routes_adjustment;
 
74
        Gtk::SpinButton routes_spinner;
 
75
        Gtk::ComboBoxText channel_combo;
 
76
        Gtk::Label configuration_label;
 
77
        Gtk::Label mode_label;
 
78
        Gtk::Label instrument_label;
 
79
        Gtk::ComboBoxText mode_combo;
 
80
        Gtk::ComboBoxText route_group_combo;
 
81
        Gtk::ComboBox     instrument_combo;
 
82
 
 
83
        std::vector<ARDOUR::TemplateInfo> route_templates;
 
84
 
 
85
        void track_type_chosen ();
 
86
        void refill_channel_setups ();
 
87
        void refill_route_groups ();
 
88
        void refill_track_modes ();
 
89
        void add_route_group (ARDOUR::RouteGroup *);
 
90
        void group_changed ();
 
91
        void channel_combo_changed ();
 
92
        bool channel_separator (const Glib::RefPtr<Gtk::TreeModel> &m, const Gtk::TreeModel::iterator &i);
 
93
        bool route_separator (const Glib::RefPtr<Gtk::TreeModel> &m, const Gtk::TreeModel::iterator &i);
 
94
        void maybe_update_name_template_entry ();
 
95
 
 
96
        void reset_template_option_visibility ();
 
97
 
 
98
        void on_show ();
 
99
 
 
100
        struct ChannelSetup {
 
101
            std::string name;
 
102
            std::string template_path;
 
103
            uint32_t    channels;
 
104
        };
 
105
 
 
106
        typedef std::vector<ChannelSetup> ChannelSetups;
 
107
        ChannelSetups channel_setups;
 
108
 
 
109
        static std::vector<std::string> channel_combo_strings;
 
110
        static std::vector<std::string> bus_mode_strings;
 
111
 
 
112
        struct InstrumentListColumns : public Gtk::TreeModel::ColumnRecord {
 
113
                InstrumentListColumns () {
 
114
                        add (name);
 
115
                        add (info_ptr);
 
116
                }
 
117
                Gtk::TreeModelColumn<std::string>  name;
 
118
                Gtk::TreeModelColumn<ARDOUR::PluginInfoPtr> info_ptr;
 
119
        };
 
120
 
 
121
        Glib::RefPtr<Gtk::ListStore> instrument_list;
 
122
        InstrumentListColumns instrument_list_columns;
 
123
 
 
124
        void build_instrument_list ();
 
125
};
 
126
 
 
127
#endif /* __gtk_ardour_add_route_dialog_h__ */