Ardour
8.12
ui_menu.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2016 Robin Gareus <robin@gareus.org>
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 along
15
* with this program; if not, write to the Free Software Foundation, Inc.,
16
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
*/
18
19
#ifndef _ardour_maschine2_menu_h_
20
#define _ardour_maschine2_menu_h_
21
22
#include <vector>
23
#include <cairomm/refptr.h>
24
25
#include "
pbd/signals.h
"
26
#include "
canvas/container.h
"
27
28
namespace
ArdourCanvas
{
29
class
Text;
30
}
31
32
namespace
ARDOUR
{
33
class
AutomationControl;
34
}
35
36
namespace
Cairo {
37
class
Context;
38
}
39
40
namespace
ArdourSurface
{
41
42
class
Maschine2;
43
class
M2EncoderInterface;
44
45
class
Maschine2Menu
:
public
ArdourCanvas::Container
46
{
47
public
:
48
Maschine2Menu
(
PBD::EventLoop
*,
ArdourCanvas::Item
*,
const
std::vector<std::string>&,
double
width
= 64);
49
virtual
~Maschine2Menu
();
50
51
void
set_control
(
M2EncoderInterface
*);
52
void
set_active
(uint32_t index);
53
void
set_wrap
(
bool
);
54
55
uint32_t
active
()
const
{
return
_active
; }
56
uint32_t
items
()
const
{
return
_displays
.size(); }
57
58
PBD::Signal0<void>
ActiveChanged
;
59
60
void
render
(
ArdourCanvas::Rect
const
&, Cairo::RefPtr<Cairo::Context>)
const
;
61
62
private
:
63
void
rearrange
(uint32_t);
64
void
encoder_changed
(
int
);
65
66
M2EncoderInterface
*
_ctrl
;
67
PBD::EventLoop
*
_eventloop
;
68
PBD::ScopedConnection
encoder_connection
;
69
70
std::vector<ArdourCanvas::Text*>
_displays
;
71
ArdourCanvas::Rectangle
*
_active_bg
;
72
73
double
_baseline
;
74
double
_height
;
75
double
_width
;
76
uint32_t
_active
;
77
bool
_wrap
;
78
79
uint32_t
_first
;
80
uint32_t
_last
;
81
double
_rotary
;
82
};
83
84
}
// namespace
85
86
#endif
container.h
ArdourCanvas::Container
Definition:
canvas/canvas/container.h:40
ArdourCanvas::Item
Definition:
canvas/canvas/item.h:57
ArdourCanvas::Item::width
Coord width() const
ArdourCanvas::Rectangle
Definition:
canvas/canvas/rectangle.h:31
ArdourSurface::M2EncoderInterface
Definition:
m2_encoder.h:28
ArdourSurface::Maschine2Menu
Definition:
ui_menu.h:46
ArdourSurface::Maschine2Menu::_wrap
bool _wrap
Definition:
ui_menu.h:77
ArdourSurface::Maschine2Menu::Maschine2Menu
Maschine2Menu(PBD::EventLoop *, ArdourCanvas::Item *, const std::vector< std::string > &, double width=64)
ArdourSurface::Maschine2Menu::_last
uint32_t _last
Definition:
ui_menu.h:80
ArdourSurface::Maschine2Menu::encoder_connection
PBD::ScopedConnection encoder_connection
Definition:
ui_menu.h:68
ArdourSurface::Maschine2Menu::active
uint32_t active() const
Definition:
ui_menu.h:55
ArdourSurface::Maschine2Menu::_baseline
double _baseline
Definition:
ui_menu.h:73
ArdourSurface::Maschine2Menu::_first
uint32_t _first
Definition:
ui_menu.h:79
ArdourSurface::Maschine2Menu::_active
uint32_t _active
Definition:
ui_menu.h:76
ArdourSurface::Maschine2Menu::_active_bg
ArdourCanvas::Rectangle * _active_bg
Definition:
ui_menu.h:71
ArdourSurface::Maschine2Menu::set_control
void set_control(M2EncoderInterface *)
ArdourSurface::Maschine2Menu::_eventloop
PBD::EventLoop * _eventloop
Definition:
ui_menu.h:67
ArdourSurface::Maschine2Menu::_ctrl
M2EncoderInterface * _ctrl
Definition:
ui_menu.h:66
ArdourSurface::Maschine2Menu::items
uint32_t items() const
Definition:
ui_menu.h:56
ArdourSurface::Maschine2Menu::_height
double _height
Definition:
ui_menu.h:74
ArdourSurface::Maschine2Menu::set_wrap
void set_wrap(bool)
ArdourSurface::Maschine2Menu::ActiveChanged
PBD::Signal0< void > ActiveChanged
Definition:
ui_menu.h:58
ArdourSurface::Maschine2Menu::_displays
std::vector< ArdourCanvas::Text * > _displays
Definition:
ui_menu.h:70
ArdourSurface::Maschine2Menu::rearrange
void rearrange(uint32_t)
ArdourSurface::Maschine2Menu::set_active
void set_active(uint32_t index)
ArdourSurface::Maschine2Menu::_rotary
double _rotary
Definition:
ui_menu.h:81
ArdourSurface::Maschine2Menu::_width
double _width
Definition:
ui_menu.h:75
ArdourSurface::Maschine2Menu::encoder_changed
void encoder_changed(int)
ArdourSurface::Maschine2Menu::render
void render(ArdourCanvas::Rect const &, Cairo::RefPtr< Cairo::Context >) const
ArdourSurface::Maschine2Menu::~Maschine2Menu
virtual ~Maschine2Menu()
PBD::EventLoop
Definition:
event_loop.h:48
PBD::ScopedConnection
Definition:
signals.h:164
ARDOUR
Definition:
analysis_window.h:45
ArdourCanvas
Definition:
audio_clip_editor.h:57
ArdourSurface
Definition:
cc121.h:71
signals.h
ArdourCanvas::Rect
Definition:
canvas/canvas/types.h:112
libs
surfaces
maschine2
ui_menu.h
Generated on Mon Mar 10 2025 20:26:30 for Ardour by
1.9.1