1 // audioident.hxx -- audible station identifiers 2 // 3 // Written by Torsten Dreyer, September 2011 4 // 5 // Copyright (C) 2001 Curtis L. Olson - http://www.flightgear.org/~curt 6 // 7 // This program is free software; you can redistribute it and/or 8 // modify it under the terms of the GNU General Public License as 9 // published by the Free Software Foundation; either version 2 of the 10 // License, or (at your option) any later version. 11 // 12 // This program is distributed in the hope that it will be useful, but 13 // WITHOUT ANY WARRANTY; without even the implied warranty of 14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 // General Public License for more details. 16 // 17 // You should have received a copy of the GNU General Public License 18 // along with this program; if not, write to the Free Software 19 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 // 21 22 23 #ifndef _FGAUDIOIDENT_HXX 24 #define _FGAUDIOIDENT_HXX 25 26 #ifdef HAVE_CONFIG_H 27 # include <config.h> 28 #endif 29 30 #include <string> 31 #include <simgear/sound/soundmgr.hxx> 32 33 class AudioIdent { 34 public: 35 AudioIdent( const std::string & fx_name, const double interval_secs, const int frequency ); 36 void init(); 37 void setVolumeNorm( double volumeNorm ); 38 void setIdent( const std::string & ident, double volumeNorm ); 39 40 void update( double dt ); 41 42 private: 43 void stop(); 44 void start(); 45 46 SGSharedPtr<SGSampleGroup> _sgr; 47 std::string _fx_name; 48 const int _frequency; 49 std::string _ident; 50 double _timer; 51 double _interval; 52 bool _running; 53 }; 54 55 class DMEAudioIdent : public AudioIdent { 56 public: 57 DMEAudioIdent( const std::string & fx_name ); 58 }; 59 60 class VORAudioIdent : public AudioIdent { 61 public: 62 VORAudioIdent( const std::string & fx_name ); 63 }; 64 65 class LOCAudioIdent : public AudioIdent { 66 public: 67 LOCAudioIdent( const std::string & fx_name ); 68 }; 69 70 #endif // _FGAUDIOIDENT_HXX 71