diff options
author | chriszero <zerov83@gmail.com> | 2015-02-10 21:13:51 +0100 |
---|---|---|
committer | chriszero <zerov83@gmail.com> | 2015-02-10 21:13:51 +0100 |
commit | 158d1055599205ccca462f97c190994fa28af8f0 (patch) | |
tree | 02c5645bf48595d182eeb2dee81884173d634a03 /PlexHTTPRequestHandler.cpp | |
parent | 9b62917c4da85e5ec403792fd9a198b1cb005013 (diff) | |
download | vdr-plugin-plex-158d1055599205ccca462f97c190994fa28af8f0.tar.gz vdr-plugin-plex-158d1055599205ccca462f97c190994fa28af8f0.tar.bz2 |
Support for Plex Channels (Youtube, Vimeo, ZDF Mediathek, etc...)
Diffstat (limited to 'PlexHTTPRequestHandler.cpp')
-rw-r--r-- | PlexHTTPRequestHandler.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/PlexHTTPRequestHandler.cpp b/PlexHTTPRequestHandler.cpp index 90e8f69..f07bce4 100644 --- a/PlexHTTPRequestHandler.cpp +++ b/PlexHTTPRequestHandler.cpp @@ -44,9 +44,9 @@ std::map<std::string, std::string> PlexHTTPRequestHandler::ParseQuery(std::strin { std::map<std::string, std::string> querymap; Poco::StringTokenizer queryTokens(query, "&"); - for(Poco::StringTokenizer::Iterator token = queryTokens.begin(); token != queryTokens.end(); ++token) { - Poco::StringTokenizer subTokens(*token, "="); - querymap[subTokens[0]] = subTokens[1]; + for(Poco::StringTokenizer::Iterator token = queryTokens.begin(); token != queryTokens.end(); token++) { + int pos = token->find("="); + querymap[token->substr(0, pos)] = token->substr(pos+1, std::string::npos); } return querymap; } @@ -207,7 +207,7 @@ void PlayerRequestHandler::handleRequest(Poco::Net::HTTPServerRequest& request, cRemote::Put(kBack); } response.send() << GetOKMsg(); - + } else if(request.getURI().find("/playback") != std::string::npos) { if(request.getURI().find("/playback/seekTo") != std::string::npos) { cHlsPlayerControl* control = dynamic_cast<cHlsPlayerControl*>(cControl::Control(true)); @@ -224,9 +224,9 @@ void PlayerRequestHandler::handleRequest(Poco::Net::HTTPServerRequest& request, std::string address = query["address"]; std::string port = query["port"]; std::string key = query["key"]; - + std::string fullUrl = protocol + "://" + address + ":" + port + key; // Metainfo - + std::cout << fullUrl << std::endl; MediaContainer* pCont = Plexservice::GetMediaContainer(fullUrl); // MUSS im Maintread des Plugins/VDR gestartet werden @@ -235,11 +235,11 @@ void PlayerRequestHandler::handleRequest(Poco::Net::HTTPServerRequest& request, } ActionManager::GetInstance().AddAction(&pCont->m_vVideos[0]); // MemoryLeak? } else if(request.getURI().find("/playback/play") != std::string::npos) { - cRemote::Put(kPlay); + cRemote::Put(kPlay); } else if(request.getURI().find("/playback/pause") != std::string::npos) { - cRemote::Put(kPause); + cRemote::Put(kPause); } else if(request.getURI().find("/playback/stop") != std::string::npos) { - cRemote::Put(kStop); + cRemote::Put(kStop); } else if(request.getURI().find("/playback/stepForward") != std::string::npos) { cHlsPlayerControl* control = dynamic_cast<cHlsPlayerControl*>(cControl::Control(true)); if(control) { @@ -257,11 +257,11 @@ void PlayerRequestHandler::handleRequest(Poco::Net::HTTPServerRequest& request, } else if(request.getURI().find("/playback/skipPrevious") != std::string::npos) { cRemote::Put(kFastRew); } - + SubscriptionManager::GetInstance().Notify(); response.send() << GetOKMsg(); } - + } catch(Poco::Exception& e) { std::cerr << e.displayText() << std::endl; } |