]> git.sesse.net Git - casparcg/blobdiff - protocol/amcp/AMCPProtocolStrategy.cpp
2.0.2: Improved log messages. In particular regarding GPU stall warning.
[casparcg] / protocol / amcp / AMCPProtocolStrategy.cpp
index 0cf8fa02a918ade7bf60d572396951f2f104ecf7..03b32196f6fea8bf36ff887e37d9f0d6c16c9146 100644 (file)
@@ -45,12 +45,12 @@ using IO::ClientInfoPtr;
 \r
 const std::wstring AMCPProtocolStrategy::MessageDelimiter = TEXT("\r\n");\r
 \r
-inline std::shared_ptr<core::channel> GetChannelSafe(unsigned int index, const std::vector<safe_ptr<core::channel>>& channels)\r
+inline std::shared_ptr<core::video_channel> GetChannelSafe(unsigned int index, const std::vector<safe_ptr<core::video_channel>>& channels)\r
 {\r
-       return index < channels.size() ? std::shared_ptr<core::channel>(channels[index]) : nullptr;\r
+       return index < channels.size() ? std::shared_ptr<core::video_channel>(channels[index]) : nullptr;\r
 }\r
 \r
-AMCPProtocolStrategy::AMCPProtocolStrategy(const std::vector<safe_ptr<core::channel>>& channels) : channels_(channels) {\r
+AMCPProtocolStrategy::AMCPProtocolStrategy(const std::vector<safe_ptr<core::video_channel>>& channels) : channels_(channels) {\r
        AMCPCommandQueuePtr pGeneralCommandQueue(new AMCPCommandQueue());\r
        if(!pGeneralCommandQueue->Start()) {\r
                CASPAR_LOG(error) << "Failed to start the general command-queue";\r
@@ -61,12 +61,12 @@ AMCPProtocolStrategy::AMCPProtocolStrategy(const std::vector<safe_ptr<core::chan
                commandQueues_.push_back(pGeneralCommandQueue);\r
 \r
 \r
-       std::shared_ptr<core::channel> pChannel;\r
+       std::shared_ptr<core::video_channel> pChannel;\r
        unsigned int index = -1;\r
-       //Create a commandpump for each channel\r
+       //Create a commandpump for each video_channel\r
        while((pChannel = GetChannelSafe(++index, channels_)) != 0) {\r
                AMCPCommandQueuePtr pChannelCommandQueue(new AMCPCommandQueue());\r
-               std::wstring title = TEXT("CHANNEL ");\r
+               std::wstring title = TEXT("video_channel ");\r
 \r
                //HACK: Perform real conversion from int to string\r
                TCHAR num = TEXT('1')+static_cast<TCHAR>(index);\r
@@ -168,7 +168,7 @@ AMCPCommandPtr AMCPProtocolStrategy::InterpretCommandString(const std::wstring&
        AMCPCommandPtr pCommand;\r
        MessageParserState state = New;\r
 \r
-       CASPAR_LOG(trace) << message;\r
+       CASPAR_LOG(info) << message;\r
 \r
        std::size_t tokensInMessage = TokenizeMessage(message, &tokens);\r
 \r
@@ -255,12 +255,13 @@ AMCPCommandPtr AMCPProtocolStrategy::InterpretCommandString(const std::wstring&
                                        goto ParseFinnished;\r
                                }\r
 \r
-                               std::shared_ptr<core::channel> pChannel = GetChannelSafe(channelIndex, channels_);\r
+                               std::shared_ptr<core::video_channel> pChannel = GetChannelSafe(channelIndex, channels_);\r
                                if(pChannel == 0) {\r
                                        goto ParseFinnished;\r
                                }\r
 \r
                                pCommand->SetChannel(pChannel);\r
+                               pCommand->SetChannels(channels_);\r
                                pCommand->SetChannelIndex(channelIndex);\r
                                pCommand->SetLayerIntex(layerIndex);\r
 \r
@@ -309,12 +310,20 @@ AMCPCommandPtr AMCPProtocolStrategy::CommandFactory(const std::wstring& str)
        std::wstring s = str;\r
        transform(s.begin(), s.end(), s.begin(), toupper);\r
        \r
-       if         (s == TEXT("LOAD"))          return std::make_shared<LoadCommand>();\r
+       if         (s == TEXT("MIXER"))         return std::make_shared<MixerCommand>();\r
+       else if(s == TEXT("PARAM"))             return std::make_shared<ParamCommand>();\r
+       else if(s == TEXT("SWAP"))              return std::make_shared<SwapCommand>();\r
+       else if(s == TEXT("LOAD"))              return std::make_shared<LoadCommand>();\r
        else if(s == TEXT("LOADBG"))    return std::make_shared<LoadbgCommand>();\r
+       else if(s == TEXT("ADD"))               return std::make_shared<AddCommand>();\r
+       else if(s == TEXT("REMOVE"))    return std::make_shared<RemoveCommand>();\r
        else if(s == TEXT("PAUSE"))             return std::make_shared<PauseCommand>();\r
        else if(s == TEXT("PLAY"))              return std::make_shared<PlayCommand>();\r
        else if(s == TEXT("STOP"))              return std::make_shared<StopCommand>();\r
        else if(s == TEXT("CLEAR"))             return std::make_shared<ClearCommand>();\r
+       else if(s == TEXT("PRINT"))             return std::make_shared<PrintCommand>();\r
+       else if(s == TEXT("STATUS"))    return std::make_shared<StatusCommand>();\r
+       else if(s == TEXT("LOG"))               return std::make_shared<LogCommand>();\r
        else if(s == TEXT("CG"))                return std::make_shared<CGCommand>();\r
        else if(s == TEXT("DATA"))              return std::make_shared<DataCommand>();\r
        else if(s == TEXT("CINF"))              return std::make_shared<CinfCommand>();\r