contrib: rav1e: update to v0.4.1
[vlc.git] / modules / gui / skins2 / vars / volume.hpp
1 /*****************************************************************************
2  * volume.hpp
3  *****************************************************************************
4  * Copyright (C) 2003 the VideoLAN team
5  *
6  * Authors: Cyril Deguet     <asmax@via.ecp.fr>
7  *          Olivier Teulière <ipkiss@via.ecp.fr>
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License along
20  * with this program; if not, write to the Free Software Foundation, Inc.,
21  * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23
24 #ifndef VOLUME_HPP
25 #define VOLUME_HPP
26
27
28 #include "../utils/var_percent.hpp"
29 #include <string>
30
31
32 /// Variable for VLC volume
33 class Volume: public VarPercent
34 {
35 public:
36     Volume( intf_thread_t *pIntf );
37     virtual ~Volume() { }
38
39     virtual void set( float percentage, bool updateVLC );
40     virtual void set( float percentage ) { set( percentage, true ); }
41
42     virtual float getVolume() const;
43     virtual void setVolume( float volume, bool updateVLC );
44
45     virtual float getStep() const { return m_step; }
46
47     virtual std::string getAsStringPercent() const;
48
49 private:
50     // preferred volume step on [0., 1.]
51     float m_step;
52 };
53
54
55 #endif