X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fcinema_sound_processor.h;h=3ccaa5c9b35c3195603f497bc82f21b1e03c5594;hp=f735b12277d0c3984a19803cd4941e0e23dd9c34;hb=HEAD;hpb=5e4f001bf32e3cdf65efa34803d70e6c1c00c66b diff --git a/src/lib/cinema_sound_processor.h b/src/lib/cinema_sound_processor.h index f735b1227..3ccaa5c9b 100644 --- a/src/lib/cinema_sound_processor.h +++ b/src/lib/cinema_sound_processor.h @@ -1,32 +1,38 @@ /* - Copyright (C) 2012-2014 Carl Hetherington + Copyright (C) 2012-2021 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ + /** @file src/cinema_sound_processor.h * @brief CinemaSoundProcessor class */ + #ifndef DCPOMATIC_CINEMA_SOUND_PROCESSOR_H #define DCPOMATIC_CINEMA_SOUND_PROCESSOR_H + +#include +#include #include #include -#include + /** @class CinemaSoundProcessor * @brief Class to describe a cimema's sound processor. @@ -34,12 +40,16 @@ * In other words, the box in the rack that handles sound decoding and processing * in a cinema. */ -class CinemaSoundProcessor : public boost::noncopyable +class CinemaSoundProcessor { public: - CinemaSoundProcessor (std::string i, std::string n); + CinemaSoundProcessor (std::string i, std::string n, float knee, float below, float above); + virtual ~CinemaSoundProcessor () {} + + CinemaSoundProcessor (CinemaSoundProcessor const&) = delete; + CinemaSoundProcessor& operator=(CinemaSoundProcessor const&) = delete; - virtual float db_for_fader_change (float from, float to) const = 0; + float db_for_fader_change (float from, float to) const; /** @return id for our use */ std::string id () const { @@ -50,21 +60,24 @@ public: std::string name () const { return _name; } - + static std::vector all (); static void setup_cinema_sound_processors (); static CinemaSoundProcessor const * from_id (std::string id); static CinemaSoundProcessor const * from_index (int); - static int as_index (CinemaSoundProcessor const *); private: /** id for our use */ std::string _id; /** user-visible name for this sound processor */ std::string _name; + float _knee; + float _below; + float _above; - /** sll available cinema sound processors */ - static std::vector _cinema_sound_processors; + /** all available cinema sound processors */ + static std::vector> _cinema_sound_processors; }; + #endif