From 2566c2aaaf8f43b184a037e227e8bf2c747c7679 Mon Sep 17 00:00:00 2001 From: Frank Herchet Date: Tue, 27 Mar 2012 10:01:57 +0200 Subject: * add setSinkVolume to telnetserver --- AudioManagerDaemon/include/CAmTelnetMenuHelper.h | 2 + AudioManagerDaemon/src/CAmTelnetMenuHelper.cpp | 56 ++++++++++++++++++++++++ 2 files changed, 58 insertions(+) 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 & CmdQueue, int & filedescriptor); static void setSinkSoundProperties(std::queue & CmdQueue, int & filedescriptor); void setSinkSoundPropertiesExec(std::queue & CmdQueue, int & filedescriptor); + static void setSinkVolume(std::queue & CmdQueue, int & filedescriptor); + void setSinkVolumeExec(std::queue & CmdQueue, int & filedescriptor); // GET commands static void getRoutingCommand(std::queue & 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))); @@ -1128,6 +1129,61 @@ void CAmTelnetMenuHelper::setSinkSoundPropertiesExec(std::queue & C } } +/****************************************************************************/ +void CAmTelnetMenuHelper::setSinkVolume(std::queue & CmdQueue, int & filedescriptor) +/****************************************************************************/ +{ + instance->setSinkVolumeExec(CmdQueue, filedescriptor); +} + +/****************************************************************************/ +void CAmTelnetMenuHelper::setSinkVolumeExec(std::queue & 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 & CmdQueue, int & filedescriptor) /****************************************************************************/ -- cgit v1.2.1