<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
<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
{\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
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
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
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
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
\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
\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
\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
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
</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
} \r
\r
timeEndPeriod(1);\r
+\r
+ CASPAR_LOG(info) << "Successfully shutdown CasparCG Server";\r
\r
return 0;\r
}
\ No newline at end of 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