Merging undo branch into trunk. It compiles and works for limited tests. Keep
[ardour.git] / libs / ardour / session_command.cc
1 #include <ardour/session.h>
2 #include <ardour/route.h>
3
4 namespace ARDOUR {
5 // solo
6 Session::GlobalSoloStateCommand::GlobalSoloStateCommand(Session &sess, void *src)
7     : sess(sess), src(src)
8 {
9     after = before = sess.get_global_route_boolean(&Route::soloed);
10 }
11 void Session::GlobalSoloStateCommand::mark()
12 {
13     after = sess.get_global_route_boolean(&Route::soloed);
14 }
15 void Session::GlobalSoloStateCommand::operator()()
16 {
17     sess.set_global_solo(after, src);
18 }
19 void Session::GlobalSoloStateCommand::undo()
20 {
21     sess.set_global_solo(before, src);
22 }
23 XMLNode &Session::GlobalSoloStateCommand::serialize()
24 {
25 }
26
27 // mute
28 Session::GlobalMuteStateCommand::GlobalMuteStateCommand(Session &sess, void *src)
29     : sess(sess), src(src)
30 {
31     after = before = sess.get_global_route_boolean(&Route::muted);
32 }
33 void Session::GlobalMuteStateCommand::mark()
34 {
35     after = sess.get_global_route_boolean(&Route::muted);
36 }
37 void Session::GlobalMuteStateCommand::operator()()
38 {
39     sess.set_global_mute(after, src);
40 }
41 void Session::GlobalMuteStateCommand::undo()
42 {
43     sess.set_global_mute(before, src);
44 }
45 XMLNode &Session::GlobalMuteStateCommand::serialize()
46 {
47 }
48
49 // record enable
50 Session::GlobalRecordEnableStateCommand::GlobalRecordEnableStateCommand(Session &sess, void *src) 
51     : sess(sess), src(src)
52 {
53     after = before = sess.get_global_route_boolean(&Route::record_enabled);
54 }
55 void Session::GlobalRecordEnableStateCommand::mark()
56 {
57     after = sess.get_global_route_boolean(&Route::record_enabled);
58 }
59 void Session::GlobalRecordEnableStateCommand::operator()()
60 {
61     sess.set_global_record_enable(after, src);
62 }
63 void Session::GlobalRecordEnableStateCommand::undo()
64 {
65     sess.set_global_record_enable(before, src);
66 }
67 XMLNode &Session::GlobalRecordEnableStateCommand::serialize()
68 {
69 }
70
71 // metering
72 Session::GlobalMeteringStateCommand::GlobalMeteringStateCommand(Session &sess, void *src) 
73     : sess(sess), src(src)
74 {
75     after = before = sess.get_global_route_metering();
76 }
77 void Session::GlobalMeteringStateCommand::mark()
78 {
79     after = sess.get_global_route_metering();
80 }
81 void Session::GlobalMeteringStateCommand::operator()()
82 {
83     sess.set_global_route_metering(after, src);
84 }
85 void Session::GlobalMeteringStateCommand::undo()
86 {
87     sess.set_global_route_metering(before, src);
88 }
89 XMLNode &Session::GlobalMeteringStateCommand::serialize()
90 {
91 }
92
93 } // namespace ARDOUR