1 /*
2  * %kadu copyright begin%
3  * Copyright 2015 Rafał Przemysław Malinowski (rafal.przemyslaw.malinowski@gmail.com)
4  * %kadu copyright end%
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License as
8  * published by the Free Software Foundation; either version 2 of
9  * the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #include "mpris-player-plugin-object.h"
21 
22 #include "mpris-player-configuration-ui-handler.h"
23 #include "mpris-player.h"
24 
25 #include "plugins/mediaplayer/mediaplayer-plugin-object.h"
26 #include "plugins/mediaplayer/mediaplayer.h"
27 
28 #include "configuration/gui/configuration-ui-handler-repository.h"
29 #include "gui/windows/main-configuration-window-service.h"
30 #include "gui/windows/main-configuration-window.h"
31 #include "misc/paths-provider.h"
32 
MprisPlayerPluginObject(QObject * parent)33 MprisPlayerPluginObject::MprisPlayerPluginObject(QObject *parent) :
34 		QObject{parent}
35 {
36 }
37 
~MprisPlayerPluginObject()38 MprisPlayerPluginObject::~MprisPlayerPluginObject()
39 {
40 }
41 
setConfigurationUiHandlerRepository(ConfigurationUiHandlerRepository * configurationUiHandlerRepository)42 void MprisPlayerPluginObject::setConfigurationUiHandlerRepository(ConfigurationUiHandlerRepository *configurationUiHandlerRepository)
43 {
44 	m_configurationUiHandlerRepository = configurationUiHandlerRepository;
45 }
46 
setMainConfigurationWindowService(MainConfigurationWindowService * mainConfigurationWindowService)47 void MprisPlayerPluginObject::setMainConfigurationWindowService(MainConfigurationWindowService *mainConfigurationWindowService)
48 {
49 	m_mainConfigurationWindowService = mainConfigurationWindowService;
50 }
51 
setMediaPlayer(MediaPlayer * mediaPlayer)52 void MprisPlayerPluginObject::setMediaPlayer(MediaPlayer *mediaPlayer)
53 {
54 	m_mediaPlayer = mediaPlayer;
55 }
56 
setMPRISPlayerConfigurationUiHandler(MPRISPlayerConfigurationUiHandler * mprisPlayerConfigurationUiHandler)57 void MprisPlayerPluginObject::setMPRISPlayerConfigurationUiHandler(MPRISPlayerConfigurationUiHandler *mprisPlayerConfigurationUiHandler)
58 {
59 	m_mprisPlayerConfigurationUiHandler = mprisPlayerConfigurationUiHandler;
60 }
61 
setMPRISPlayer(MPRISPlayer * mprisPlayer)62 void MprisPlayerPluginObject::setMPRISPlayer(MPRISPlayer *mprisPlayer)
63 {
64 	m_mprisPlayer = mprisPlayer;
65 }
66 
setPathsProvider(PathsProvider * pathsProvider)67 void MprisPlayerPluginObject::setPathsProvider(PathsProvider *pathsProvider)
68 {
69 	m_pathsProvider = pathsProvider;
70 }
71 
init()72 void MprisPlayerPluginObject::init()
73 {
74 	m_mainConfigurationWindowService->registerUiFile(m_pathsProvider->dataPath() + QStringLiteral("plugins/configuration/mprisplayer_mediaplayer.ui"));
75 	m_configurationUiHandlerRepository->addConfigurationUiHandler(m_mprisPlayerConfigurationUiHandler);
76 
77 	if (!m_mediaPlayer->registerMediaPlayer(m_mprisPlayer, m_mprisPlayer))
78 	{
79 		m_mediaPlayer->unregisterMediaPlayer();
80 		m_mediaPlayer->registerMediaPlayer(m_mprisPlayer, m_mprisPlayer);
81 	}
82 
83 	m_mprisPlayer->configurationApplied();
84 }
85 
done()86 void MprisPlayerPluginObject::done()
87 {
88 	m_mediaPlayer->unregisterMediaPlayer();
89 	m_configurationUiHandlerRepository->removeConfigurationUiHandler(m_mprisPlayerConfigurationUiHandler);
90 	m_mainConfigurationWindowService->unregisterUiFile(m_pathsProvider->dataPath() + QStringLiteral("plugins/configuration/mprisplayer_mediaplayer.ui"));
91 }
92 
93 #include "moc_mpris-player-plugin-object.cpp"
94