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

« back to all changes in this revision

Viewing changes to libs/surfaces/control_protocol/control_protocol/basic_ui.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) 2006 Paul Davis 
 
3
 
 
4
    This program is free software; you can redistribute it
 
5
    and/or modify it under the terms of the GNU Lesser
 
6
    General Public License as published by the Free Software
 
7
    Foundation; either version 2 of the License, or (at your
 
8
    option) any later version.
 
9
 
 
10
    This program is distributed in the hope that it will be useful,
 
11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
    GNU General Public License for more details.
 
14
 
 
15
    You should have received a copy of the GNU General Public License
 
16
    along with this program; if not, write to the Free Software
 
17
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
18
 
 
19
*/
 
20
 
 
21
#ifndef __ardour_basic_ui_h__
 
22
#define __ardour_basic_ui_h__
 
23
 
 
24
#include <string>
 
25
#include <stdint.h>
 
26
 
 
27
#include "pbd/signals.h"
 
28
 
 
29
#include "ardour/types.h"
 
30
 
 
31
#include <jack/types.h>
 
32
 
 
33
#include "timecode/time.h"
 
34
 
 
35
namespace ARDOUR {
 
36
        class Session;
 
37
        class SessionEvent;
 
38
}
 
39
 
 
40
class BasicUI {
 
41
  public:
 
42
        BasicUI (ARDOUR::Session&);
 
43
        virtual ~BasicUI ();
 
44
        
 
45
        void add_marker (const std::string& = std::string());
 
46
 
 
47
        void register_thread (std::string name);
 
48
 
 
49
        /* transport control */
 
50
 
 
51
        void loop_toggle ();
 
52
        void access_action ( std::string action_path );
 
53
        static PBD::Signal2<void,std::string,std::string> AccessAction;
 
54
        void goto_start ();
 
55
        void goto_end ();
 
56
        void rewind ();
 
57
        void ffwd ();
 
58
        void transport_stop ();
 
59
        void transport_play (bool jump_back = true);
 
60
        void set_transport_speed (double speed);
 
61
        double get_transport_speed ();
 
62
 
 
63
        ARDOUR::framepos_t transport_frame ();
 
64
        void locate (ARDOUR::framepos_t frame, bool play = false);
 
65
        bool locating ();
 
66
        bool locked ();
 
67
 
 
68
        void save_state ();
 
69
        void prev_marker ();
 
70
        void next_marker ();
 
71
        void undo ();
 
72
        void redo ();
 
73
        void toggle_punch_in ();
 
74
        void toggle_punch_out ();
 
75
 
 
76
        void set_record_enable (bool yn);
 
77
        bool get_record_enabled ();
 
78
 
 
79
        void rec_enable_toggle ();
 
80
        void toggle_all_rec_enables ();
 
81
 
 
82
        ARDOUR::framecnt_t timecode_frames_per_hour ();
 
83
 
 
84
        void timecode_time (framepos_t where, Timecode::Time&);
 
85
        void timecode_to_sample (Timecode::Time& timecode, framepos_t & sample, bool use_offset, bool use_subframes) const;
 
86
        void sample_to_timecode (framepos_t sample, Timecode::Time& timecode, bool use_offset, bool use_subframes) const;
 
87
 
 
88
  protected:
 
89
        BasicUI ();
 
90
        ARDOUR::Session* session;
 
91
};
 
92
 
 
93
#endif /* __ardour_basic_ui_h__ */