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"
23 
24 using namespace ARDOUR;
25 
26 double
28 {
29  switch (parameter().type()) {
30  case PanWidthAutomation:
31  return -1.0;
32  default:
33  return 0.0;
34  }
35 }
36 
37 void
39 {
41 
42  if (!p) {
43  /* no panner: just do it */
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;
55  can_set = p->clamp_position (v);
56  break;
58  can_set = p->clamp_elevation (v);
59  break;
60  default:
61  break;
62  }
63 
64  if (can_set) {
66  }
67 }
68 
virtual bool clamp_elevation(double &)
Definition: panner.h:85
Definition: amp.h:29
virtual bool clamp_width(double &)
Definition: panner.h:84
boost::shared_ptr< Panner > panner() const
Definition: pannable.h:51
const Parameter & parameter() const
Definition: Control.hpp:69
virtual bool clamp_position(double &)
Definition: panner.h:83