</ImportGroup>\r
<PropertyGroup Label="UserMacros" />\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
- <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+ <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
<LibraryPath>..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\;$(LibraryPath)</LibraryPath>\r
<OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
<IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
- <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+ <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
<LibraryPath>..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\;$(LibraryPath)</LibraryPath>\r
<OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
<IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
- <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+ <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
<LibraryPath>..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\;$(LibraryPath)</LibraryPath>\r
<OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
<IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
- <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+ <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
<LibraryPath>..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\;$(LibraryPath)</LibraryPath>\r
<OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
<IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
</ItemDefinitionGroup>\r
<ItemGroup>\r
<ClInclude Include="compiler\vs\disable_silly_warnings.h" />\r
- <ClInclude Include="concrt\bounded_buffer.h" />\r
- <ClInclude Include="concrt\scoped_oversubscription_token.h" />\r
<ClInclude Include="concurrency\com_context.h" />\r
<ClInclude Include="concurrency\executor.h" />\r
<ClInclude Include="diagnostics\graph.h" />\r
<Filter Include="source\compiler\vs">\r
<UniqueIdentifier>{28c25c8a-1277-4d2c-9e85-5af33f9938ea}</UniqueIdentifier>\r
</Filter>\r
- <Filter Include="source\concrt">\r
- <UniqueIdentifier>{d3ba93c7-82fb-4e69-97bc-cdbf7d6feb24}</UniqueIdentifier>\r
- </Filter>\r
</ItemGroup>\r
<ItemGroup>\r
<ClCompile Include="exception\win32_exception.cpp">\r
<ClInclude Include="utility\move_on_copy.h">\r
<Filter>source\utility</Filter>\r
</ClInclude>\r
- <ClInclude Include="concrt\bounded_buffer.h">\r
- <Filter>source\concrt</Filter>\r
- </ClInclude>\r
- <ClInclude Include="concrt\scoped_oversubscription_token.h">\r
- <Filter>source\concrt</Filter>\r
- </ClInclude>\r
</ItemGroup>\r
</Project>
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-\r
-#include <agents.h>\r
-\r
-namespace Concurrency\r
-{\r
-\r
-/// <summary>\r
-/// A bounded_buffer implementation. Once the capacity is reached it will save the offered message\r
-/// id and postpone. Once below capacity again the bounded_buffer will try to reserve and consume\r
-/// any of the postponed messages. Preference is given to previously offered messages before new ones.\r
-///\r
-/// NOTE: this bounded_buffer implementation contains code that is very unique to this particular block. \r
-/// Extreme caution should be taken if code is directly copy and pasted from this class. The bounded_buffer\r
-/// implementation uses a critical_section, several interlocked operations, and additional calls to async_send.\r
-/// These are needed to not abandon a previously saved message id. Most blocks never have to deal with this problem.\r
-/// </summary>\r
-/// <typeparam name="_Type">\r
-/// The payload type of messages stored and propagated by the buffer.\r
-/// </typeparam>\r
-template<class _Type>\r
-class bounded_buffer : public propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>\r
-{\r
-public:\r
- /// <summary>\r
- /// Creates an bounded_buffer within the default scheduler, and places it any schedule\r
- /// group of the scheduler\92s choosing.\r
- /// </summary>\r
- bounded_buffer(const size_t capacity)\r
- : _M_capacity(capacity), _M_currentSize(0)\r
- {\r
- initialize_source_and_target();\r
- }\r
-\r
- /// <summary>\r
- /// Creates an bounded_buffer within the default scheduler, and places it any schedule\r
- /// group of the scheduler\92s choosing.\r
- /// </summary>\r
- /// <param name="_Filter">\r
- /// A reference to a filter function.\r
- /// </param>\r
- bounded_buffer(const size_t capacity, filter_method const& _Filter)\r
- : _M_capacity(capacity), _M_currentSize(0)\r
- {\r
- initialize_source_and_target();\r
- register_filter(_Filter);\r
- }\r
-\r
- /// <summary>\r
- /// Creates an bounded_buffer within the specified scheduler, and places it any schedule\r
- /// group of the scheduler\92s choosing.\r
- /// </summary>\r
- /// <param name="_PScheduler">\r
- /// A reference to a scheduler instance.\r
- /// </param>\r
- bounded_buffer(const size_t capacity, Scheduler& _PScheduler)\r
- : _M_capacity(capacity), _M_currentSize(0)\r
- {\r
- initialize_source_and_target(&_PScheduler);\r
- }\r
-\r
- /// <summary>\r
- /// Creates an bounded_buffer within the specified scheduler, and places it any schedule\r
- /// group of the scheduler\92s choosing.\r
- /// </summary>\r
- /// <param name="_PScheduler">\r
- /// A reference to a scheduler instance.\r
- /// </param>\r
- /// <param name="_Filter">\r
- /// A reference to a filter function.\r
- /// </param>\r
- bounded_buffer(const size_t capacity, Scheduler& _PScheduler, filter_method const& _Filter) \r
- : _M_capacity(capacity), _M_currentSize(0)\r
- {\r
- initialize_source_and_target(&_PScheduler);\r
- register_filter(_Filter);\r
- }\r
-\r
- /// <summary>\r
- /// Creates an bounded_buffer within the specified schedule group. The scheduler is implied\r
- /// by the schedule group.\r
- /// </summary>\r
- /// <param name="_PScheduleGroup">\r
- /// A reference to a schedule group.\r
- /// </param>\r
- bounded_buffer(const size_t capacity, ScheduleGroup& _PScheduleGroup)\r
- : _M_capacity(capacity), _M_currentSize(0)\r
- {\r
- initialize_source_and_target(NULL, &_PScheduleGroup);\r
- }\r
-\r
- /// <summary>\r
- /// Creates an bounded_buffer within the specified schedule group. The scheduler is implied\r
- /// by the schedule group.\r
- /// </summary>\r
- /// <param name="_PScheduleGroup">\r
- /// A reference to a schedule group.\r
- /// </param>\r
- /// <param name="_Filter">\r
- /// A reference to a filter function.\r
- /// </param>\r
- bounded_buffer(const size_t capacity, ScheduleGroup& _PScheduleGroup, filter_method const& _Filter)\r
- : _M_capacity(capacity), _M_currentSize(0)\r
- {\r
- initialize_source_and_target(NULL, &_PScheduleGroup);\r
- register_filter(_Filter);\r
- }\r
-\r
- /// <summary>\r
- /// Cleans up any resources that may have been used by the bounded_buffer.\r
- /// </summary>\r
- ~bounded_buffer()\r
- {\r
- // Remove all links\r
- remove_network_links();\r
- }\r
-\r
- /// <summary>\r
- /// Add an item to the bounded_buffer.\r
- /// </summary>\r
- /// <param name="_Item">\r
- /// A reference to the item to add.\r
- /// </param>\r
- /// <returns>\r
- /// A boolean indicating whether the data was accepted.\r
- /// </returns>\r
- bool enqueue(_Type const& _Item)\r
- {\r
- return Concurrency::send<_Type>(this, _Item);\r
- }\r
-\r
- /// <summary>\r
- /// Remove an item from the bounded_buffer.\r
- /// </summary>\r
- /// <returns>\r
- /// The message payload.\r
- /// </returns>\r
- _Type dequeue()\r
- {\r
- return receive<_Type>(this);\r
- }\r
-\r
-protected:\r
-\r
- /// <summary>\r
- /// The main propagate() function for ITarget blocks. Called by a source\r
- /// block, generally within an asynchronous task to send messages to its targets.\r
- /// </summary>\r
- /// <param name="_PMessage">\r
- /// A pointer to the message.\r
- /// </param>\r
- /// <param name="_PSource">\r
- /// A pointer to the source block offering the message.\r
- /// </param>\r
- /// <returns>\r
- /// An indication of what the target decided to do with the message.\r
- /// </returns>\r
- /// <remarks>\r
- /// It is important that calls to propagate do *not* take the same lock on the\r
- /// internal structure that is used by Consume and the LWT. Doing so could\r
- /// result in a deadlock with the Consume call. (in the case of the bounded_buffer,\r
- /// this lock is the m_internalLock)\r
- /// </remarks>\r
- virtual message_status propagate_message(message<_Type> * _PMessage, ISource<_Type> * _PSource)\r
- {\r
- message_status _Result = accepted;\r
- \r
- // Check current capacity. \r
- if((size_t)_InterlockedIncrement(&_M_currentSize) > _M_capacity)\r
- {\r
- // Postpone the message, buffer is full.\r
- _InterlockedDecrement(&_M_currentSize);\r
- _Result = postponed;\r
-\r
- // Save off the message id from this source to later try\r
- // and reserve/consume when more space is free.\r
- {\r
- critical_section::scoped_lock scopedLock(_M_savedIdsLock);\r
- _M_savedSourceMsgIds[_PSource] = _PMessage->msg_id();\r
- }\r
-\r
- async_send(NULL);\r
- }\r
- else\r
- {\r
- //\r
- // Accept the message being propagated\r
- // Note: depending on the source block propagating the message\r
- // this may not necessarily be the same message (pMessage) first\r
- // passed into the function.\r
- //\r
- _PMessage = _PSource->accept(_PMessage->msg_id(), this);\r
-\r
- if (_PMessage != NULL)\r
- {\r
- async_send(_PMessage);\r
- }\r
- else\r
- {\r
- // Didn't get a message so need to decrement.\r
- _InterlockedDecrement(&_M_currentSize);\r
- _Result = missed;\r
- async_send(NULL);\r
- }\r
- }\r
-\r
- return _Result;\r
- }\r
-\r
- /// <summary>\r
- /// Synchronously sends a message to this block. When this function completes the message will\r
- /// already have propagated into the block.\r
- /// </summary>\r
- /// <param name="_PMessage">\r
- /// A pointer to the message.\r
- /// </param>\r
- /// <param name="_PSource">\r
- /// A pointer to the source block offering the message.\r
- /// </param>\r
- /// <returns>\r
- /// An indication of what the target decided to do with the message.\r
- /// </returns>\r
- virtual message_status send_message(message<_Type> * _PMessage, ISource<_Type> * _PSource)\r
- {\r
- message_status _Result = accepted;\r
- \r
- // Check current capacity. \r
- if((size_t)_InterlockedIncrement(&_M_currentSize) > _M_capacity)\r
- {\r
- // Postpone the message, buffer is full.\r
- _InterlockedDecrement(&_M_currentSize);\r
- _Result = postponed;\r
-\r
- // Save off the message id from this source to later try\r
- // and reserve/consume when more space is free.\r
- {\r
- critical_section::scoped_lock scopedLock(_M_savedIdsLock);\r
- _M_savedSourceMsgIds[_PSource] = _PMessage->msg_id();\r
- }\r
-\r
- async_send(NULL);\r
- }\r
- else\r
- {\r
- //\r
- // Accept the message being propagated\r
- // Note: depending on the source block propagating the message\r
- // this may not necessarily be the same message (pMessage) first\r
- // passed into the function.\r
- //\r
- _PMessage = _PSource->accept(_PMessage->msg_id(), this);\r
-\r
- if (_PMessage != NULL)\r
- {\r
- async_send(_PMessage);\r
- }\r
- else\r
- {\r
- // Didn't get a message so need to decrement.\r
- _InterlockedDecrement(&_M_currentSize);\r
- _Result = missed;\r
- async_send(NULL);\r
- }\r
- }\r
-\r
- return _Result;\r
- }\r
-\r
- /// <summary>\r
- /// Accepts an offered message by the source, transferring ownership to the caller.\r
- /// </summary>\r
- /// <param name="_MsgId">\r
- /// The runtime object identity of the message.\r
- /// </param>\r
- /// <returns>\r
- /// A pointer to the message that the caller now has ownership of.\r
- /// </returns>\r
- virtual message<_Type> * accept_message(runtime_object_identity _MsgId)\r
- {\r
- //\r
- // Peek at the head message in the message buffer. If the Ids match\r
- // dequeue and transfer ownership\r
- //\r
- message<_Type> * _Msg = NULL;\r
-\r
- if (_M_messageBuffer._Is_head(_MsgId))\r
- {\r
- _Msg = _M_messageBuffer._Dequeue();\r
-\r
- // Give preference to any previously postponed messages\r
- // before decrementing current size.\r
- if(!try_consume_msg())\r
- {\r
- _InterlockedDecrement(&_M_currentSize);\r
- }\r
- }\r
-\r
- return _Msg;\r
- }\r
-\r
- /// <summary>\r
- /// Try to reserve and consume a message from list of saved message ids.\r
- /// </summary>\r
- /// <returns>\r
- /// True if a message was sucessfully consumed, false otherwise.\r
- /// </returns>\r
- bool try_consume_msg()\r
- {\r
- runtime_object_identity _ReservedId = -1;\r
- ISource<_Type> * _PSource = NULL;\r
-\r
- // Walk through source links seeing if any saved ids exist.\r
- bool _ConsumedMsg = true;\r
- while(_ConsumedMsg)\r
- {\r
- source_iterator _Iter = _M_connectedSources.begin();\r
- {\r
- critical_section::scoped_lock scopedLock(_M_savedIdsLock);\r
- for (; *_Iter != NULL; ++_Iter)\r
- {\r
- _PSource = *_Iter;\r
- std::map<ISource<_Type> *, runtime_object_identity>::iterator _MapIter;\r
- if((_MapIter = _M_savedSourceMsgIds.find(_PSource)) != _M_savedSourceMsgIds.end())\r
- {\r
- _ReservedId = _MapIter->second;\r
- _M_savedSourceMsgIds.erase(_MapIter);\r
- break;\r
- }\r
- }\r
- }\r
-\r
- // Can't call into source block holding _M_savedIdsLock, that would be a recipe for disaster.\r
- if(_ReservedId != -1)\r
- {\r
- if(_PSource->reserve(_ReservedId, this))\r
- {\r
- message<_Type> * _ConsumedMsg = _PSource->consume(_ReservedId, this);\r
- async_send(_ConsumedMsg);\r
- return true;\r
- }\r
- // Reserve failed go or link was removed, \r
- // go back and try and find a different msg id.\r
- else\r
- {\r
- continue;\r
- }\r
- }\r
-\r
- // If this point is reached the map of source ids was empty.\r
- break;\r
- }\r
-\r
- return false;\r
- }\r
-\r
- /// <summary>\r
- /// Reserves a message previously offered by the source.\r
- /// </summary>\r
- /// <param name="_MsgId">\r
- /// The runtime object identity of the message.\r
- /// </param>\r
- /// <returns>\r
- /// A Boolean indicating whether the reservation worked or not.\r
- /// </returns>\r
- /// <remarks>\r
- /// After 'reserve' is called, either 'consume' or 'release' must be called.\r
- /// </remarks>\r
- virtual bool reserve_message(runtime_object_identity _MsgId)\r
- {\r
- // Allow reservation if this is the head message\r
- return _M_messageBuffer._Is_head(_MsgId);\r
- }\r
-\r
- /// <summary>\r
- /// Consumes a message that was reserved previously.\r
- /// </summary>\r
- /// <param name="_MsgId">\r
- /// The runtime object identity of the message.\r
- /// </param>\r
- /// <returns>\r
- /// A pointer to the message that the caller now has ownership of.\r
- /// </returns>\r
- /// <remarks>\r
- /// Similar to 'accept', but is always preceded by a call to 'reserve'.\r
- /// </remarks>\r
- virtual message<_Type> * consume_message(runtime_object_identity _MsgId)\r
- {\r
- // By default, accept the message\r
- return accept_message(_MsgId);\r
- }\r
-\r
- /// <summary>\r
- /// Releases a previous message reservation.\r
- /// </summary>\r
- /// <param name="_MsgId">\r
- /// The runtime object identity of the message.\r
- /// </param>\r
- virtual void release_message(runtime_object_identity _MsgId)\r
- {\r
- // The head message is the one reserved.\r
- if (!_M_messageBuffer._Is_head(_MsgId))\r
- {\r
- throw message_not_found();\r
- }\r
- }\r
-\r
- /// <summary>\r
- /// Resumes propagation after a reservation has been released\r
- /// </summary>\r
- virtual void resume_propagation()\r
- {\r
- // If there are any messages in the buffer, propagate them out\r
- if (_M_messageBuffer._Count() > 0)\r
- {\r
- async_send(NULL);\r
- }\r
- }\r
-\r
- /// <summary>\r
- /// Notification that a target was linked to this source.\r
- /// </summary>\r
- /// <param name="_PTarget">\r
- /// A pointer to the newly linked target.\r
- /// </param>\r
- virtual void link_target_notification(ITarget<_Type> * _PTarget)\r
- {\r
- // If the message queue is blocked due to reservation\r
- // there is no need to do any message propagation\r
- if (_M_pReservedFor != NULL)\r
- {\r
- return;\r
- }\r
-\r
- message<_Type> * _Msg = _M_messageBuffer._Peek();\r
-\r
- if (_Msg != NULL)\r
- {\r
- // Propagate the head message to the new target\r
- message_status _Status = _PTarget->propagate(_Msg, this);\r
-\r
- if (_Status == accepted)\r
- {\r
- // The target accepted the message, restart propagation.\r
- propagate_to_any_targets(NULL);\r
- }\r
-\r
- // If the status is anything other than accepted, then leave\r
- // the message queue blocked.\r
- }\r
- }\r
-\r
- /// <summary>\r
- /// Takes the message and propagates it to all the targets of this bounded_buffer.\r
- /// This is called from async_send.\r
- /// </summary>\r
- /// <param name="_PMessage">\r
- /// A pointer to a new message.\r
- /// </param>\r
- virtual void propagate_to_any_targets(message<_Type> * _PMessage)\r
- {\r
- // Enqueue pMessage to the internal message buffer if it is non-NULL.\r
- // pMessage can be NULL if this LWT was the result of a Repropagate call\r
- // out of a Consume or Release (where no new message is queued up, but\r
- // everything remaining in the bounded buffer needs to be propagated out)\r
- if (_PMessage != NULL)\r
- {\r
- _M_messageBuffer._Enqueue(_PMessage);\r
-\r
- // If the incoming pMessage is not the head message, we can safely assume that\r
- // the head message is blocked and waiting on Consume(), Release() or a new\r
- // link_target() and cannot be propagated out.\r
- if (_M_messageBuffer._Is_head(_PMessage->msg_id()))\r
- {\r
- _Propagate_priority_order();\r
- }\r
- }\r
- else\r
- {\r
- // While current size is less than capacity try to consume\r
- // any previously offered ids.\r
- bool _ConsumedMsg = true;\r
- while(_ConsumedMsg)\r
- {\r
- // Assume a message will be found to successfully consume in the\r
- // saved ids, if not this will be decremented afterwards.\r
- if((size_t)_InterlockedIncrement(&_M_currentSize) > _M_capacity)\r
- {\r
- break;\r
- }\r
-\r
- _ConsumedMsg = try_consume_msg();\r
- }\r
-\r
- // Decrement the current size, we broke out of the previous loop\r
- // because we reached capacity or there were no more messages to consume.\r
- _InterlockedDecrement(&_M_currentSize);\r
- }\r
- }\r
-\r
-private:\r
-\r
- /// <summary>\r
- /// Attempts to propagate out any messages currently in the block.\r
- /// </summary>\r
- void _Propagate_priority_order()\r
- {\r
- message<_Target_type> * _Msg = _M_messageBuffer._Peek();\r
-\r
- // If someone has reserved the _Head message, don't propagate anymore\r
- if (_M_pReservedFor != NULL)\r
- {\r
- return;\r
- }\r
-\r
- while (_Msg != NULL)\r
- {\r
- message_status _Status = declined;\r
-\r
- // Always start from the first target that linked.\r
- for (target_iterator _Iter = _M_connectedTargets.begin(); *_Iter != NULL; ++_Iter)\r
- {\r
- ITarget<_Target_type> * _PTarget = *_Iter;\r
- _Status = _PTarget->propagate(_Msg, this);\r
-\r
- // Ownership of message changed. Do not propagate this\r
- // message to any other target.\r
- if (_Status == accepted)\r
- {\r
- break;\r
- }\r
-\r
- // If the target just propagated to reserved this message, stop\r
- // propagating it to others.\r
- if (_M_pReservedFor != NULL)\r
- {\r
- break;\r
- }\r
- }\r
-\r
- // If status is anything other than accepted, then the head message\r
- // was not propagated out. Thus, nothing after it in the queue can\r
- // be propagated out. Cease propagation.\r
- if (_Status != accepted)\r
- {\r
- break;\r
- }\r
-\r
- // Get the next message\r
- _Msg = _M_messageBuffer._Peek();\r
- }\r
- }\r
-\r
- /// <summary>\r
- /// Message buffer used to store messages.\r
- /// </summary>\r
- ::Concurrency::details::_Queue<message<_Type>> _M_messageBuffer;\r
-\r
- /// <summary>\r
- /// Maximum number of messages bounded_buffer can hold.\r
- /// </summary>\r
- const size_t _M_capacity;\r
-\r
- /// <summary>\r
- /// Current number of messages in bounded_buffer.\r
- /// </summary>\r
- volatile long _M_currentSize;\r
-\r
- /// <summary>\r
- /// Lock used to guard saved message ids map.\r
- /// </summary>\r
- critical_section _M_savedIdsLock;\r
-\r
- /// <summary>\r
- /// Map of source links to saved message ids.\r
- /// </summary>\r
- std::map<ISource<_Type> *, runtime_object_identity> _M_savedSourceMsgIds;\r
-\r
- //\r
- // Hide assignment operator and copy constructor\r
- //\r
- bounded_buffer const &operator =(bounded_buffer const&); // no assignment operator\r
- bounded_buffer(bounded_buffer const &); // no copy constructor\r
-};\r
-}
\ No newline at end of file
+++ /dev/null
-#pragma once\r
-\r
-#include <agents.h>\r
-\r
-namespace Concurrency {\r
-\r
-/// <summary>\r
-/// An RAII style wrapper around Concurrency::Context::Oversubscribe,\r
-/// useful for annotating known blocking calls\r
-/// </summary>\r
-class scoped_oversubcription_token\r
-{\r
-public:\r
- scoped_oversubcription_token()\r
- {\r
- Concurrency::Context::CurrentContext()->Oversubscribe(true);\r
- }\r
- ~scoped_oversubcription_token()\r
- {\r
- Concurrency::Context::CurrentContext()->Oversubscribe(false);\r
- }\r
-};\r
-\r
-}
\ No newline at end of file
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath)</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb\include\;..\dependencies\SFML-1.6\include;..\dependencies\glew-1.6.0\include;..\dependencies\FreeImage\Dist;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
#include "../../video_format.h"\r
\r
#include <common/memory/safe_ptr.h>\r
-#include <common/concrt/scoped_oversubscription_token.h>\r
\r
#include <concrt.h>\r
+#include <concrt_extras.h>\r
\r
#include <boost/noncopyable.hpp>\r
#include <boost/thread/future.hpp>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
#include <math.h>\r
\r
#include <agents.h>\r
+#include <agents_extras.h>\r
+#include <concrt.h>\r
+#include <concrt_extras.h>\r
#include <ppl.h>\r
\r
#include <boost/assign.hpp>\r
#include <core/consumer/frame_consumer.h>\r
#include <core/producer/frame_producer.h>\r
\r
-#include <tbb/recursive_mutex.h>\r
+#include <ppl.h>\r
\r
#if defined(_MSC_VER)\r
#pragma warning (disable : 4244)\r
if(!mutex)\r
return 0;\r
\r
- auto my_mutex = reinterpret_cast<tbb::recursive_mutex*>(*mutex);\r
+ auto my_mutex = reinterpret_cast<Concurrency::critical_section*>(*mutex);\r
\r
switch(op) \r
{ \r
case AV_LOCK_CREATE: \r
{ \r
- *mutex = new tbb::recursive_mutex(); \r
+ *mutex = new Concurrency::critical_section(); \r
break; \r
} \r
case AV_LOCK_OBTAIN: \r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
#include "audio/audio_decoder.h"\r
#include "video/video_decoder.h"\r
\r
-#include <common/concrt/bounded_buffer.h>\r
#include <common/env.h>\r
#include <common/utility/assert.h>\r
#include <common/diagnostics/graph.h>\r
#include <boost/range/algorithm/find.hpp>\r
\r
#include <agents.h>\r
+#include <agents_extras.h>\r
#include <ppl.h>\r
\r
-namespace caspar { namespace ffmpeg {\r
+using namespace Concurrency;\r
\r
-template<typename T>\r
-struct buffer_alias\r
-{\r
- typedef Concurrency::bounded_buffer<std::shared_ptr<T>> type;\r
-};\r
- \r
+namespace caspar { namespace ffmpeg {\r
+ \r
struct ffmpeg_producer : public core::frame_producer\r
{ \r
const std::wstring filename_;\r
const bool loop_;\r
const size_t length_;\r
\r
- buffer_alias<AVPacket>::type packets0_;\r
- buffer_alias<AVPacket>::type packets1_;\r
- buffer_alias<AVFrame>::type video_frames_;\r
- buffer_alias<core::audio_buffer>::type audio_buffers_;\r
- buffer_alias<core::basic_frame>::type muxed_frames_;\r
+ Concurrency::bounded_buffer<std::shared_ptr<AVPacket>> packets0_;\r
+ Concurrency::bounded_buffer<std::shared_ptr<AVPacket>> packets1_;\r
+ Concurrency::bounded_buffer<std::shared_ptr<AVFrame>> video_frames_;\r
+ Concurrency::bounded_buffer<std::shared_ptr<core::audio_buffer>> audio_buffers_;\r
+ Concurrency::bounded_buffer<std::shared_ptr<core::basic_frame>> muxed_frames_;\r
\r
const safe_ptr<diagnostics::graph> graph_;\r
\r
\r
#include <core/video_format.h>\r
\r
-#include <common/concrt/scoped_oversubscription_token.h>\r
#include <common/diagnostics/graph.h>\r
#include <common/exception/exceptions.h>\r
#include <common/exception/win32_exception.h>\r
\r
#include <tbb/atomic.h>\r
\r
-#include <boost/range/algorithm.hpp>\r
-\r
#include <agents.h>\r
+#include <concrt_extras.h>\r
\r
#if defined(_MSC_VER)\r
#pragma warning (push)\r
\r
#include "format/flv.h"\r
\r
-#include <tbb/concurrent_unordered_map.h>\r
+#include <concurrent_unordered_map.h>\r
#include <concurrent_queue.h>\r
\r
#include <core/producer/frame/frame_transform.h>\r
\r
safe_ptr<core::write_frame> make_write_frame(const void* tag, const safe_ptr<AVFrame>& decoded_frame, const safe_ptr<core::frame_factory>& frame_factory, int hints)\r
{ \r
- static tbb::concurrent_unordered_map<size_t, Concurrency::concurrent_queue<std::shared_ptr<SwsContext>>> sws_contexts_;\r
+ static Concurrency::concurrent_unordered_map<size_t, Concurrency::concurrent_queue<std::shared_ptr<SwsContext>>> sws_contexts_;\r
\r
const auto width = decoded_frame->width;\r
const auto height = decoded_frame->height;\r
#include <ppl.h>\r
\r
#include <tbb/atomic.h>\r
-#include <tbb/parallel_for.h>\r
-#include <tbb/tbb_thread.h>\r
\r
#if defined(_MSC_VER)\r
#pragma warning (push)\r
tbb::atomic<int> counter; \r
counter = 0; \r
\r
- CASPAR_ASSERT(tbb::tbb_thread::hardware_concurrency() < 16);\r
// Note: this will probably only work when tbb::task_scheduler_init::num_threads() < 16.\r
Concurrency::parallel_for(0, count, 2, [&](int jobnr) \r
{ \r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.8\include\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb\include\;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath)</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\glew-1.6.0\include;..\..\dependencies\tbb\include\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\ffmpeg 0.8\include;$(IncludePath);..\..\dependencies\concrt_extras</IncludePath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.8\lib\;..\..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
</ImportGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
- <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath)</IncludePath>\r
+ <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
<OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
<IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
- <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath)</IncludePath>\r
+ <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
<OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
<IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
- <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath)</IncludePath>\r
+ <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
<OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
<IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
- <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath)</IncludePath>\r
+ <IncludePath>../;..\dependencies/tbb/include;..\dependencies\boost_1_44_0;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
<OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
<IntDir>$(ProjectDir)tmp\$(Configuration)\</IntDir>\r
</PropertyGroup>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(SolutionDir)tmp\$(Configuration)\</IntDir>\r
<IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(SolutionDir)tmp\$(Configuration)\</IntDir>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
- <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath)</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
+ <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.8\include\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\include;..\dependencies\SFML-1.6\include\;..\dependencies\tbb\include\;$(IncludePath);..\dependencies\concrt_extras</IncludePath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.8\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.8\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.8\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\glew-1.6.0\lib;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r