diff options
author | Frank Herchet <frank.fh.herchet@bmw.de> | 2012-03-27 10:01:57 +0200 |
---|---|---|
committer | christian mueller <christian.ei.mueller@bmw.de> | 2012-03-29 17:02:50 +0200 |
commit | 2566c2aaaf8f43b184a037e227e8bf2c747c7679 (patch) | |
tree | 58e578c3335c766a76e3836d4bcfe83a292c166f /AudioManagerDaemon/src | |
parent | 143c65f6003647a8967cb7b09d5c2aa8bfdf4637 (diff) | |
download | audiomanager-2566c2aaaf8f43b184a037e227e8bf2c747c7679.tar.gz |
* add setSinkVolume to telnetserver
Diffstat (limited to 'AudioManagerDaemon/src')
-rw-r--r-- | AudioManagerDaemon/src/CAmTelnetMenuHelper.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
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) /****************************************************************************/ { |