]> git.sesse.net Git - casparcg/commitdiff
2.0.0.2: Fixed compability with CasparCG Client.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Tue, 1 Feb 2011 17:53:10 +0000 (17:53 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Tue, 1 Feb 2011 17:53:10 +0000 (17:53 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@439 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

common/common.vcxproj
common/concurrency/executor.h
common/diagnostics/graph.cpp
core/consumer/frame_consumer_device.cpp
core/producer/frame_producer_device.cpp
protocol/amcp/AMCPCommandsImpl.cpp
shell/boostrapper.cpp
shell/caspar.config
shell/main.cpp
shell/shell.vcxproj

index 17f0031b825021d0618ed2554081493088c1fc82..9302d5a2d9e58a11e9f39b8deaa9edc195c6b2e6 100644 (file)
@@ -74,7 +74,7 @@
       <PrecompiledHeader>Use</PrecompiledHeader>\r
       <WarningLevel>Level3</WarningLevel>\r
       <Optimization>Disabled</Optimization>\r
-      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <PreprocessorDefinitions>SFML_DYNAMIC;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <TreatWarningAsError>true</TreatWarningAsError>\r
       <SmallerTypeCheck>true</SmallerTypeCheck>\r
       <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
@@ -93,7 +93,7 @@
       <FunctionLevelLinking>\r
       </FunctionLevelLinking>\r
       <IntrinsicFunctions>true</IntrinsicFunctions>\r
-      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <PreprocessorDefinitions>SFML_DYNAMIC;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
       <ExceptionHandling>Async</ExceptionHandling>\r
       <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
       <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
index 75b4b409c57862649dca2a0e781df80ab7677f85..0603449fb1ebed5e000ad334e01d975a7e2e78cc 100644 (file)
@@ -40,12 +40,8 @@ public:
        {\r
                if(is_running_.fetch_and_store(true))\r
                        return;\r
+               clear();\r
                thread_ = boost::thread(f_);\r
-               try\r
-               {\r
-                       execution_queue_.clear();\r
-               }\r
-               catch(boost::broken_promise&){}\r
        }\r
                        \r
        void stop() // noexcept\r
@@ -62,7 +58,15 @@ public:
        void clear()\r
        {\r
                std::function<void()> func;\r
-               while(execution_queue_.try_pop(func)){}\r
+               while(true)\r
+               {\r
+                       try\r
+                       {\r
+                               if(!execution_queue_.try_pop(func))\r
+                                       return;\r
+                       }\r
+                       catch(boost::broken_promise&){}\r
+               }\r
        }\r
                        \r
        template<typename Func>\r
index 184a69fcb2f39f68e8907c741eee1460237d8e84..e0b4bf457df6bb1f262754ed15644fc95b53e191 100644 (file)
@@ -32,7 +32,7 @@ class context : public drawable
        timer timer_;\r
        sf::RenderWindow window_;\r
        \r
-       std::list<std::weak_ptr<drawable>> drawables_;\r
+       std::list<std::shared_ptr<drawable>> drawables_;\r
        std::map<size_t, sf::Font> fonts_;\r
                \r
        executor executor_;\r
@@ -72,13 +72,13 @@ private:
                int n = 0;\r
                for(auto it = drawables_.begin(); it != drawables_.end(); ++n)\r
                {\r
-                       auto drawable = it->lock();\r
-                       if(drawable)\r
+                       auto drawable = *it;\r
+                       if(!drawable.unique())\r
                        {\r
                                drawable->SetScale(window_.GetWidth(), window_.GetHeight()/count);\r
                                drawable->SetPosition(0.0f, n* window_.GetHeight()/count);\r
-                               target.Draw(*drawable);\r
-                               ++it;\r
+                               target.Draw(*drawable);                         \r
+                               ++it;           \r
                        }\r
                        else                    \r
                                it = drawables_.erase(it);                      \r
@@ -161,7 +161,8 @@ public:
        void set_color(color c)\r
        {\r
                c_ = c;\r
-               guide_->set_color(c_);\r
+               if(guide_)\r
+                       guide_->set_color(c_);\r
        }\r
 \r
        color get_color() const { return c_; }\r
index 96eae812fc01d87e728b915e7f1ea17b7c008531..eb823192e754b41981695cf35cbad22dbfded0f3 100644 (file)
@@ -21,8 +21,6 @@ namespace caspar { namespace core {
        \r
 struct frame_consumer_device::implementation\r
 {\r
-       static int const MAX_DEPTH = 3;\r
-\r
        safe_ptr<diagnostics::graph> graph_;\r
        timer perf_timer_;\r
        \r
index ff72f75ebb6beca25e1c1a7fc56724b82e0470ce..4c59d4cfb2c03cdf73972a5ddd3a63879b6ba8d1 100644 (file)
@@ -22,7 +22,7 @@ namespace caspar { namespace core {
 \r
 struct frame_producer_device::implementation : boost::noncopyable\r
 {              \r
-       std::array<layer, frame_producer_device::MAX_LAYER> layers_;            \r
+       std::array<layer, frame_producer_device::MAX_LAYER+1> layers_;          \r
 \r
        tbb::spin_mutex output_mutex_;\r
        output_func output_;\r
index d21d088dd63f3d6c71f1c301165ca97abcb61b76..ae706655e8670c0ce5339ff8642e2824d625feda 100644 (file)
@@ -943,7 +943,7 @@ bool CinfCommand::DoExecute()
 \r
 void GenerateChannelInfo(int index, const safe_ptr<core::channel>& pChannel, std::wstringstream& replyString)\r
 {\r
-       replyString << index << TEXT(" ") << pChannel->get_video_format_desc().name  << TEXT("\r\n") << (pChannel->producer().foreground(0).get()->print());\r
+       replyString << index+1 << TEXT(" ") << pChannel->get_video_format_desc().name << TEXT(" PLAYING") << TEXT("\r\n");\r
 }\r
 \r
 bool InfoCommand::DoExecute()\r
index c25d9dc25c2be76bf0b3abcfefce2164af2ad436..0b343c0b31a5e3d3f36efd7d4072f8c8d610c143 100644 (file)
@@ -109,7 +109,7 @@ struct bootstrapper::implementation : boost::noncopyable
                                std::string name = xml_controller.first;\r
                                std::string protocol = xml_controller.second.get<std::string>("protocol");      \r
 \r
-                               if(name == "tcpcontroller")\r
+                               if(name == "tcp")\r
                                {                                       \r
                                        unsigned int port = xml_controller.second.get<unsigned int>("port");\r
                                        port = port != 0 ? port : 5250;\r
index 41a349dfd2c986e08a890da857a264ae200c7faf..2c40573ee28482d19821cc9049d2fe6cc69d2efb 100644 (file)
@@ -28,9 +28,9 @@
     </channel>\r
   </channels>\r
   <controllers>\r
-    <tcpcontroller>\r
+    <tcp>\r
       <port>5250</port>\r
       <protocol>AMCP</protocol>\r
-    </tcpcontroller>\r
+    </tcp>\r
   </controllers>\r
 </configuration>
\ No newline at end of file
index 7a305b291dbb54bd15ddbe176fc76742add4edb3..4995dafd44f6a03a73a3ccb1457f3ed48e4e0d5d 100644 (file)
@@ -170,6 +170,8 @@ int main(int argc, wchar_t* argv[])
        }       \r
 \r
        timeEndPeriod(1);\r
+\r
+       CASPAR_LOG(info) << "Successfully shutdown CasparCG Server";\r
        \r
        return 0;\r
 }
\ No newline at end of file
index 5d501ae9dd84cc2c785b620bae8b084d090975b1..2fda5baf9f39b22c67980feceff20d8ec444b40f 100644 (file)
       <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
     </ClCompile>\r
     <Link>\r
-      <AdditionalDependencies>sfml-audio-d.lib;sfml-window-d.lib;sfml-graphics-d.lib;sfml-system-d.lib;OpenGL32.lib;FreeImage.lib;GLee.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;swscale-0.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>sfml-system-d.lib;sfml-audio-d.lib;sfml-window-d.lib;sfml-graphics-d.lib;sfml-system-d.lib;OpenGL32.lib;FreeImage.lib;GLee.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;swscale-0.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <Version>\r
       </Version>\r
       <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       </Command>\r
     </PreLinkEvent>\r
     <Link>\r
-      <AdditionalDependencies>sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;sfml-system.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>sfml-system-lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;sfml-system.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <Version>\r
       </Version>\r
       <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r