fix commentary
[ardour.git] / gtk2_ardour / transport_control.cc
1
2 #include "actions.h"
3 #include "ardour_ui.h"
4 #include "transport_control.h"
5
6 #include "pbd/i18n.h"
7
8 using namespace Gtk;
9
10 TransportControlProvider::TransportControlProvider ()
11         : roll_controllable (new TransportControllable ("transport roll", TransportControllable::Roll))
12         , stop_controllable (new TransportControllable ("transport stop", TransportControllable::Stop))
13         , goto_start_controllable (new TransportControllable ("transport goto start", TransportControllable::GotoStart))
14         , goto_end_controllable (new TransportControllable ("transport goto end", TransportControllable::GotoEnd))
15         , auto_loop_controllable (new TransportControllable ("transport auto loop", TransportControllable::AutoLoop))
16         , play_selection_controllable (new TransportControllable ("transport play selection", TransportControllable::PlaySelection))
17         , rec_controllable (new TransportControllable ("transport rec-enable", TransportControllable::RecordEnable))
18 {
19 }
20
21 TransportControlProvider::TransportControllable::TransportControllable (std::string name, ToggleType tp)
22         : Controllable (name), type(tp)
23 {
24 }
25
26 void
27 TransportControlProvider::TransportControllable::set_value (double val, PBD::Controllable::GroupControlDisposition /*group_override*/)
28 {
29         if (val < 0.5) {
30                 /* do nothing: these are radio-style actions */
31                 return;
32         }
33
34         const char *action = 0;
35
36         switch (type) {
37         case Roll:
38                 action = X_("Roll");
39                 break;
40         case Stop:
41                 action = X_("Stop");
42                 break;
43         case GotoStart:
44                 action = X_("GotoStart");
45                 break;
46         case GotoEnd:
47                 action = X_("GotoEnd");
48                 break;
49         case AutoLoop:
50                 action = X_("Loop");
51                 break;
52         case PlaySelection:
53                 action = X_("PlaySelection");
54                 break;
55         case RecordEnable:
56                 action = X_("Record");
57                 break;
58         default:
59                 break;
60         }
61
62         if (action == 0) {
63                 return;
64         }
65
66         Glib::RefPtr<Action> act = ActionManager::get_action ("Transport", action);
67
68         if (act) {
69                 act->activate ();
70         }
71 }