ardour
volume_controller.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 1998-2007 Paul Davis
3  This program is free software; you can redistribute it and/or modify
4  it under the terms of the GNU General Public License as published by
5  the Free Software Foundation; either version 2 of the License, or
6  (at your option) any later version.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
16 
17  $Id: volume_controller.h,v 1.4 2000/05/03 15:54:21 pbd Exp $
18 */
19 
20 #ifndef __gtk_ardour_vol_controller_h__
21 #define __gtk_ardour_vol_controller_h__
22 
23 #include <gtkmm/adjustment.h>
24 
26 
28 {
29  public:
30  VolumeController (Glib::RefPtr<Gdk::Pixbuf>,
32  double def,
33  double step,
34  double page,
35  bool with_numeric = true,
36  int image_width = 40,
37  int image_height = 40,
38  bool linear = true);
39 
40  virtual ~VolumeController () {}
41 
42  static void _dB_printer (char buf[32], const boost::shared_ptr<PBD::Controllable>& adj, void* arg);
43 
44  protected:
45  double to_control_value (double);
46  double to_display_value (double);
47  double adjust (double nominal_delta);
48 
49  double display_value () const;
50  double control_value () const;
51 
52  private:
53  bool _linear;
54 
55  void dB_printer (char buf[32], const boost::shared_ptr<PBD::Controllable>& adj);
56 };
57 
58 #endif // __gtk_ardour_vol_controller_h__
59 
60 
virtual ~VolumeController()
double to_display_value(double)
double adjust(double nominal_delta)
double control_value() const
void dB_printer(char buf[32], const boost::shared_ptr< PBD::Controllable > &adj)
static void _dB_printer(char buf[32], const boost::shared_ptr< PBD::Controllable > &adj, void *arg)
VolumeController(Glib::RefPtr< Gdk::Pixbuf >, boost::shared_ptr< PBD::Controllable >, double def, double step, double page, bool with_numeric=true, int image_width=40, int image_height=40, bool linear=true)
double display_value() const
double to_control_value(double)