File indexing completed on 2024-05-12 05:39:48
0001 /*************************************************************************** 0002 * Copyright (C) 2021 by Renaud Guezennec * 0003 * http://www.rolisteam.org/contact * 0004 * * 0005 * This software is free software; you can redistribute it and/or modify * 0006 * it under the terms of the GNU General Public License as published by * 0007 * the Free Software Foundation; either version 2 of the License, or * 0008 * (at your option) any later version. * 0009 * * 0010 * This program is distributed in the hope that it will be useful, * 0011 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 0012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 0013 * GNU General Public License for more details. * 0014 * * 0015 * You should have received a copy of the GNU General Public License * 0016 * along with this program; if not, write to the * 0017 * Free Software Foundation, Inc., * 0018 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * 0019 ***************************************************************************/ 0020 #ifndef AUDIOCONTROLLER_H 0021 #define AUDIOCONTROLLER_H 0022 0023 #include <QObject> 0024 #include <memory> 0025 0026 #include "audioplayercontroller.h" 0027 #include "data/campaignmanager.h" 0028 #include "preferences/preferencesmanager.h" 0029 #include "updater/controller/audioplayerupdater.h" 0030 #include <core_global.h> 0031 class CORE_EXPORT AudioController : public QObject 0032 { 0033 Q_OBJECT 0034 Q_PROPERTY(AudioPlayerController* firstController READ firstController CONSTANT) 0035 Q_PROPERTY(AudioPlayerController* secondController READ secondController CONSTANT) 0036 Q_PROPERTY(AudioPlayerController* thirdController READ thirdController CONSTANT) 0037 Q_PROPERTY(bool localIsGM READ localIsGM WRITE setLocalIsGM NOTIFY localisGMChanged) 0038 public: 0039 enum AudioPlayerId 0040 { 0041 First, 0042 Second, 0043 Third 0044 }; 0045 explicit AudioController(campaign::CampaignManager* manager, PreferencesManager* pref, QObject* parent= nullptr); 0046 0047 AudioPlayerController* firstController() const; 0048 AudioPlayerController* secondController() const; 0049 AudioPlayerController* thirdController() const; 0050 0051 bool localIsGM() const; 0052 0053 signals: 0054 void localisGMChanged(); 0055 0056 public slots: 0057 void setLocalIsGM(bool m); 0058 0059 private: 0060 std::unique_ptr<AudioPlayerController> m_firstCtrl; 0061 std::unique_ptr<AudioPlayerController> m_secondCtrl; 0062 std::unique_ptr<AudioPlayerController> m_thirdCtrl; 0063 std::unique_ptr<AudioPlayerUpdater> m_updater; 0064 }; 0065 0066 #endif // AUDIOCONTROLLER_H