| 138 | } |
| 139 | |
| 140 | std::string Transformation::transformStreamString( |
| 141 | const int streamID, |
| 142 | const std::string &msg, |
| 143 | const std::string &method) { |
| 144 | base::MutexLock lock(_mutex); |
| 145 | std::string msgTrans = msg; |
| 146 | if (_enabled && _fileParsed) { |
| 147 | const double freq = StringConverter::getDoubleParameter(msg, method, "freq="); |
| 148 | if (freq > 0.0) { |
| 149 | const std::string uriMain = _m3u.findURIFor(freq); |
| 150 | if (!uriMain.empty()) { |
| 151 | _transform = true; |
| 152 | |
| 153 | // remove '*pids' from uri |
| 154 | base::StringTokenizer tokenizer(uriMain, "?& "); |
| 155 | tokenizer.removeToken("addpids="); |
| 156 | tokenizer.removeToken("delpids="); |
| 157 | const std::string uri = tokenizer.removeToken("pids="); |
| 158 | |
| 159 | const input::InputSystem msys = StringConverter::getMSYSParameter(msg, method); |
| 160 | if (msys != input::InputSystem::UNDEFINED) { |
| 161 | _transformedDeviceData.setDeliverySystem(msys); |
| 162 | } |
| 163 | |
| 164 | msgTrans = method; |
| 165 | msgTrans += " "; |
| 166 | msgTrans += uri; |
| 167 | const std::string pidsList = StringConverter::getStringParameter(msg, method, "pids="); |
| 168 | if (!pidsList.empty()) { |
| 169 | msgTrans += "&pids="; |
| 170 | msgTrans += pidsList; |
| 171 | } |
| 172 | const std::string addpidsList = StringConverter::getStringParameter(msg, method, "addpids="); |
| 173 | if (!addpidsList.empty()) { |
| 174 | msgTrans += "&addpids="; |
| 175 | msgTrans += addpidsList; |
| 176 | } |
| 177 | const std::string delpidsList = StringConverter::getStringParameter(msg, method, "delpids="); |
| 178 | if (!delpidsList.empty()) { |
| 179 | msgTrans += "&delpids="; |
| 180 | msgTrans += delpidsList; |
| 181 | } |
| 182 | msgTrans += " RTSP/1.0"; |
| 183 | SI_LOG_INFO("Stream: %d, Request Transformed to %s", streamID, msgTrans.c_str()); |
| 184 | } |
| 185 | } |
| 186 | } |
| 187 | return msgTrans; |
| 188 | } |
| 189 | |
| 190 | const DeviceData &Transformation::transformDeviceData( |
| 191 | const DeviceData &deviceData) const { |
no test coverage detected