ardour
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
libs
ardour
pan_controllable.cc
Go to the documentation of this file.
1
/*
2
Copyright (C) 2011 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
#include "
ardour/pannable.h
"
21
#include "
ardour/panner.h
"
22
#include "
ardour/pan_controllable.h
"
23
24
using namespace
ARDOUR
;
25
26
double
27
PanControllable::lower
()
const
28
{
29
switch
(
parameter
().type()) {
30
case
PanWidthAutomation
:
31
return
-1.0;
32
default
:
33
return
0.0;
34
}
35
}
36
37
void
38
PanControllable::set_value
(
double
v)
39
{
40
boost::shared_ptr<Panner>
p =
owner
->
panner
();
41
42
if
(!p) {
43
/* no panner: just do it */
44
AutomationControl::set_value
(v);
45
return
;
46
}
47
48
bool
can_set =
false
;
49
50
switch
(
parameter
().type()) {
51
case
PanWidthAutomation
:
52
can_set = p->
clamp_width
(v);
53
break
;
54
case
PanAzimuthAutomation
:
55
can_set = p->
clamp_position
(v);
56
break
;
57
case
PanElevationAutomation
:
58
can_set = p->
clamp_elevation
(v);
59
break
;
60
default
:
61
break
;
62
}
63
64
if
(can_set) {
65
AutomationControl::set_value
(v);
66
}
67
}
68
ARDOUR::PanControllable::lower
double lower() const
Definition:
pan_controllable.cc:27
ARDOUR::Panner::clamp_elevation
virtual bool clamp_elevation(double &)
Definition:
panner.h:85
ARDOUR::PanControllable::set_value
void set_value(double)
Definition:
pan_controllable.cc:38
pan_controllable.h
ARDOUR::PanAzimuthAutomation
Definition:
types.h:124
boost::shared_ptr
Definition:
shared_ptr.hpp:116
panner.h
ARDOUR
Definition:
amp.h:29
ARDOUR::PanControllable::owner
Pannable * owner
Definition:
pan_controllable.h:53
ARDOUR::Panner::clamp_width
virtual bool clamp_width(double &)
Definition:
panner.h:84
ARDOUR::Pannable::panner
boost::shared_ptr< Panner > panner() const
Definition:
pannable.h:51
Evoral::Control::parameter
const Parameter & parameter() const
Definition:
Control.hpp:69
pannable.h
ARDOUR::PanWidthAutomation
Definition:
types.h:126
ARDOUR::AutomationControl::set_value
void set_value(double)
Definition:
automation_control.cc:61
ARDOUR::Panner::clamp_position
virtual bool clamp_position(double &)
Definition:
panner.h:83
ARDOUR::PanElevationAutomation
Definition:
types.h:125
Generated on Sun May 24 2015 12:15:07 for ardour by
1.8.8