summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Herchet <frank.fh.herchet@bmw.de>2012-03-27 10:01:57 +0200
committerchristian mueller <christian.ei.mueller@bmw.de>2012-03-29 17:02:50 +0200
commit2566c2aaaf8f43b184a037e227e8bf2c747c7679 (patch)
tree58e578c3335c766a76e3836d4bcfe83a292c166f
parent143c65f6003647a8967cb7b09d5c2aa8bfdf4637 (diff)
downloadaudiomanager-2566c2aaaf8f43b184a037e227e8bf2c747c7679.tar.gz
* add setSinkVolume to telnetserver
-rw-r--r--AudioManagerDaemon/include/CAmTelnetMenuHelper.h2
-rw-r--r--AudioManagerDaemon/src/CAmTelnetMenuHelper.cpp56
2 files changed, 58 insertions, 0 deletions
diff --git a/AudioManagerDaemon/include/CAmTelnetMenuHelper.h b/AudioManagerDaemon/include/CAmTelnetMenuHelper.h
index d14dcbb..727c49a 100644
--- a/AudioManagerDaemon/include/CAmTelnetMenuHelper.h
+++ b/AudioManagerDaemon/include/CAmTelnetMenuHelper.h
@@ -129,6 +129,8 @@ private:
void setSourceSoundPropertiesExec(std::queue<std::string> & CmdQueue, int & filedescriptor);
static void setSinkSoundProperties(std::queue<std::string> & CmdQueue, int & filedescriptor);
void setSinkSoundPropertiesExec(std::queue<std::string> & CmdQueue, int & filedescriptor);
+ static void setSinkVolume(std::queue<std::string> & CmdQueue, int & filedescriptor);
+ void setSinkVolumeExec(std::queue<std::string> & CmdQueue, int & filedescriptor);
// GET commands
static void getRoutingCommand(std::queue<std::string> & CmdQueue, int & filedescriptor);
diff --git a/AudioManagerDaemon/src/CAmTelnetMenuHelper.cpp b/AudioManagerDaemon/src/CAmTelnetMenuHelper.cpp
index ce54286..1a64590 100644
--- a/AudioManagerDaemon/src/CAmTelnetMenuHelper.cpp
+++ b/AudioManagerDaemon/src/CAmTelnetMenuHelper.cpp
@@ -94,6 +94,7 @@ void CAmTelnetMenuHelper::createCommandMaps()
mSetCommands.insert(std::make_pair("conn", sCommandPrototypeInfo("use 'conn sourceId sinkId' to connect a source and a sink", &CAmTelnetMenuHelper::setConnection)));
mSetCommands.insert(std::make_pair("routing", sCommandPrototypeInfo("use 'routing sourceId sinkId' to get all\n\t possible routes between a sourceID and a sinkID", &CAmTelnetMenuHelper::setRoutingCommand)));
mSetCommands.insert(std::make_pair("disc", sCommandPrototypeInfo("use 'disc connectionID' to disconnect \n\t this connection", &CAmTelnetMenuHelper::setDisconnectConnId)));
+ mSetCommands.insert(std::make_pair("sinkvolume", sCommandPrototypeInfo("use 'sinkvolume sinkID volume' to set \n\t absorption in db of sink", &CAmTelnetMenuHelper::setSinkVolume)));
// Get commands
mGetCommands.insert(std::make_pair("help", sCommandPrototypeInfo(std::string("show all possible commands"), &CAmTelnetMenuHelper::helpCommand)));
@@ -1129,6 +1130,61 @@ void CAmTelnetMenuHelper::setSinkSoundPropertiesExec(std::queue<std::string> & C
}
/****************************************************************************/
+void CAmTelnetMenuHelper::setSinkVolume(std::queue<std::string> & CmdQueue, int & filedescriptor)
+/****************************************************************************/
+{
+ instance->setSinkVolumeExec(CmdQueue, filedescriptor);
+}
+
+/****************************************************************************/
+void CAmTelnetMenuHelper::setSinkVolumeExec(std::queue<std::string> & CmdQueue, int & filedescriptor)
+/****************************************************************************/
+{
+ if (CmdQueue.size() >= 2)
+ {
+ am_volume_t volume = 0;
+ am_sinkID_t sinkID = 0;
+ am_Handle_s handle;
+ bool error = false;
+
+
+ std::istringstream istream_sinkID(CmdQueue.front());
+ CmdQueue.pop();
+
+ std::istringstream istream_volume(CmdQueue.front());
+ CmdQueue.pop();
+
+ if (!(istream_volume >> volume))
+ error = true;
+
+ if(!(istream_sinkID >> sinkID))
+ error = true;
+
+ if (error)
+ {
+ sendError(filedescriptor, "Error parsing SetSinkVolume 'sinkID' or 'volume'");
+ return;
+ }
+
+ if (E_OK == mpControlReceiver->setSinkVolume(handle,sinkID,volume*10,RAMP_GENIVI_DIRECT,0))
+ {
+ std::stringstream output;
+ output << "SetSinkVolume set: " << sinkID << "->" << volume << std::endl;
+ sendTelnetLine(filedescriptor, output);
+ }
+ else
+ {
+ sendError(filedescriptor, "Error SetSinkVolume");
+ }
+ }
+ else
+ {
+ sendError(filedescriptor, "Not enough arguments to set SetSinkVolume, please enter 'sinkID' and 'volume' after command");
+ return;
+ }
+}
+
+/****************************************************************************/
void CAmTelnetMenuHelper::listPluginsCommand(std::queue<std::string> & CmdQueue, int & filedescriptor)
/****************************************************************************/
{