summaryrefslogtreecommitdiff
path: root/exampleCode/player/audiomanagerinteractor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'exampleCode/player/audiomanagerinteractor.cpp')
-rw-r--r--exampleCode/player/audiomanagerinteractor.cpp77
1 files changed, 77 insertions, 0 deletions
diff --git a/exampleCode/player/audiomanagerinteractor.cpp b/exampleCode/player/audiomanagerinteractor.cpp
new file mode 100644
index 0000000..528006b
--- /dev/null
+++ b/exampleCode/player/audiomanagerinteractor.cpp
@@ -0,0 +1,77 @@
+/**
+ * Copyright (C) 2012, BMW AG
+ *
+ *
+ * \copyright
+ * This program 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, version 2
+ * of the License.
+
+ * This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *
+ * \author Christian Mueller, christian.ei.mueller@bmw.de BMW 2011,2012
+ *
+ *
+ */
+
+#include "audiomanagerinteractor.h"
+#include <iostream>
+
+using namespace am;
+
+AudioManagerInteractor::AudioManagerInteractor(DbusHandler* DbusHandler, am_sourceID_t sourceID, am_sinkID_t sinkID) :
+ mDbusHandler(DbusHandler),
+ mSourceID(sourceID),
+ mSinkID(sinkID),
+ mConnectionID(0),
+ mState(Phonon::StoppedState),
+ mConnectedState(DISCONNECTED)
+{
+}
+
+void AudioManagerInteractor::playPause()
+{
+ if (mState==Phonon::StoppedState || mState==Phonon::PausedState)
+ {
+ mDbusHandler->connect(mSourceID,mSinkID,mConnectionID);
+ mConnectedState=CONNECTING;
+ }
+ else
+ {
+ mDbusHandler->disconnect(mConnectionID);
+ mConnectedState=DISCONNECTED;
+ }
+}
+
+void AudioManagerInteractor::SourceActivity(am_sourceID_t source,am_SourceState_e state)
+{
+ std::cout<<"got source activity ID "<<source<<" "<<state<<std::endl;
+ if (source==mSourceID && state==SS_ON)
+ emit this->play();
+ else if (source==mSourceID && (state==SS_OFF || state==SS_PAUSED))
+ emit this->stop();
+}
+
+void AudioManagerInteractor::getPlayerState(Phonon::State newstate)
+{
+ mState=newstate;
+ if (newstate==Phonon::StoppedState && mConnectedState==CONNECTED)
+ mDbusHandler->disconnect(mConnectionID);
+ else if (mConnectedState==CONNECTING)
+ mConnectedState=CONNECTED;
+}
+
+
+AudioManagerInteractor::~AudioManagerInteractor()
+{
+
+}