]> git.sesse.net Git - casparcg/blob - protocol/amcp/AMCPCommandQueue.cpp
2.1.0: Reverted utf8. To complicated to fully fix for now.
[casparcg] / protocol / amcp / AMCPCommandQueue.cpp
1 /*\r
2 * Copyright (c) 2011 Sveriges Television AB <info@casparcg.com>\r
3 *\r
4 * This file is part of CasparCG (www.casparcg.com).\r
5 *\r
6 * CasparCG is free software: you can redistribute it and/or modify\r
7 * it under the terms of the GNU General Public License as published by\r
8 * the Free Software Foundation, either version 3 of the License, or\r
9 * (at your option) any later version.\r
10 *\r
11 * CasparCG is distributed in the hope that it will be useful,\r
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
14 * GNU General Public License for more details.\r
15 *\r
16 * You should have received a copy of the GNU General Public License\r
17 * along with CasparCG. If not, see <http://www.gnu.org/licenses/>.\r
18 *\r
19 * Author: Nicklas P Andersson\r
20 */\r
21 \r
22 #include "..\stdafx.h"\r
23 \r
24 #include "AMCPCommandQueue.h"\r
25 \r
26 namespace caspar { namespace protocol { namespace amcp {\r
27         \r
28 AMCPCommandQueue::AMCPCommandQueue() \r
29         : executor_(L"AMCPCommandQueue")\r
30 {\r
31 }\r
32 \r
33 AMCPCommandQueue::~AMCPCommandQueue() \r
34 {\r
35 }\r
36 \r
37 void AMCPCommandQueue::AddCommand(AMCPCommandPtr pCurrentCommand)\r
38 {\r
39         if(!pCurrentCommand)\r
40                 return;\r
41 \r
42         //if(pNewCommand->GetScheduling() == ImmediatelyAndClear)\r
43         //      executor_.clear();\r
44         \r
45         executor_.begin_invoke([=]\r
46         {\r
47                 try\r
48                 {\r
49                         try\r
50                         {\r
51                                 if(pCurrentCommand->Execute()) \r
52                                         CASPAR_LOG(info) << "Executed command: " << pCurrentCommand->print();\r
53                                 else \r
54                                         CASPAR_LOG(info) << "Failed to execute command: " << pCurrentCommand->print();\r
55                         }\r
56                         catch(...)\r
57                         {\r
58                                 CASPAR_LOG_CURRENT_EXCEPTION();\r
59                                 CASPAR_LOG(info) << "Failed to execute command:" << pCurrentCommand->print();\r
60                         }\r
61                                 \r
62                         pCurrentCommand->SendReply();\r
63                         \r
64                         CASPAR_LOG(info) << "Ready for a new command";\r
65                 }\r
66                 catch(...)\r
67                 {\r
68                         CASPAR_LOG_CURRENT_EXCEPTION();\r
69                 }\r
70         });\r
71 }\r
72 \r
73 }}}