SHARE
TWEET

Untitled

a guest Feb 28th, 2014 75 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  project/VS2010Express/XBMC.vcxproj                 |  166 +--
  2.  project/VS2010Express/XBMC.vcxproj.filters         | 1127 ++++++++++----------
  3.  xbmc/Application.cpp                               |   39 +-
  4.  xbmc/cores/DSPlayer/FGFilter.cpp                   |   10 +-
  5.  xbmc/cores/DSPlayer/FGLoader.cpp                   |   10 +-
  6.  xbmc/cores/DSPlayer/FGLoader.h                     |    2 +-
  7.  xbmc/cores/DSPlayer/Filters/AllocatorCommon.cpp    |   28 +-
  8.  xbmc/cores/DSPlayer/Filters/AllocatorCommon.h      |    1 +
  9.  .../DSPlayer/Filters/madVRAllocatorPresenter.cpp   |  278 +++++
  10.  .../DSPlayer/Filters/madVRAllocatorPresenter.h     |  117 ++
  11.  xbmc/cores/DSPlayer/Filters/madVRTestPattern.cpp   |  214 ++++
  12.  xbmc/cores/DSPlayer/Filters/madVRTestPattern.h     |  246 +++++
  13.  xbmc/cores/DSPlayer/Filters/mvrInterfaces.h        |  720 +++++++++++++
  14.  xbmc/cores/DSPlayer/GraphFilters.cpp               |    8 +
  15.  xbmc/cores/DSPlayer/GraphFilters.h                 |   13 +-
  16.  xbmc/cores/DSPlayer/IPaintCallback.h               |   10 +-
  17.  xbmc/cores/DSPlayer/moreuuids.h                    |    5 +-
  18.  xbmc/cores/playercorefactory/PlayerCoreFactory.cpp |   14 +-
  19.  xbmc/rendering/dx/RenderSystemDX.cpp               |   12 +-
  20.  xbmc/settings/GUISettings.cpp                      |    4 +-
  21.  20 files changed, 2366 insertions(+), 658 deletions(-)
  22.  
  23. diff --git a/project/VS2010Express/XBMC.vcxproj b/project/VS2010Express/XBMC.vcxproj
  24. index 3aba3ea..58388d9 100644
  25. --- a/project/VS2010Express/XBMC.vcxproj
  26. +++ b/project/VS2010Express/XBMC.vcxproj
  27. @@ -369,7 +369,7 @@
  28.      <ClCompile Include="..\..\xbmc\addons\Skin.cpp" />
  29.      <ClCompile Include="..\..\xbmc\Application.cpp" />
  30.      <ClCompile Include="..\..\xbmc\ApplicationMessenger.cpp" />
  31. -    <ClCompile Include="..\..\xbmc\AppParamParser.cpp" />
  32. +    <ClCompile Include="..\..\xbmc\AppParamParser.cpp" />
  33.      <ClCompile Include="..\..\xbmc\Autorun.cpp" />
  34.      <ClCompile Include="..\..\xbmc\AutoSwitch.cpp" />
  35.      <ClCompile Include="..\..\xbmc\BackgroundInfoLoader.cpp" />
  36. @@ -412,6 +412,7 @@
  37.      <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\asyncrdr.cpp" />
  38.      <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\DX9AllocatorPresenter.cpp" />
  39.      <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\EVRAllocatorPresenter.cpp" />
  40. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\madVRAllocatorPresenter.cpp" />
  41.      <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\RendererSettings.cpp" />
  42.      <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\VMR9AllocatorPresenter.cpp" />
  43.      <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\XBMCFileReader.cpp" />
  44. @@ -495,9 +496,9 @@
  45.      <ClCompile Include="..\..\xbmc\filesystem\CurlFile.cpp" />
  46.      <ClCompile Include="..\..\xbmc\filesystem\DAAPDirectory.cpp" />
  47.      <ClCompile Include="..\..\xbmc\filesystem\DAAPFile.cpp" />
  48. -    <ClCompile Include="..\..\xbmc\filesystem\DAVCommon.cpp" />
  49. +    <ClCompile Include="..\..\xbmc\filesystem\DAVCommon.cpp" />
  50.      <ClCompile Include="..\..\xbmc\filesystem\DAVDirectory.cpp" />
  51. -    <ClCompile Include="..\..\xbmc\filesystem\DAVFile.cpp" />
  52. +    <ClCompile Include="..\..\xbmc\filesystem\DAVFile.cpp" />
  53.      <ClCompile Include="..\..\xbmc\filesystem\Directory.cpp" />
  54.      <ClCompile Include="..\..\xbmc\filesystem\DirectoryCache.cpp" />
  55.      <ClCompile Include="..\..\xbmc\filesystem\DirectoryFactory.cpp" />
  56. @@ -529,7 +530,7 @@
  57.      <ClCompile Include="..\..\xbmc\filesystem\MultiPathDirectory.cpp" />
  58.      <ClCompile Include="..\..\xbmc\filesystem\MultiPathFile.cpp" />
  59.      <ClCompile Include="..\..\xbmc\filesystem\MusicDatabaseDirectory.cpp" />
  60. -    <ClCompile Include="..\..\xbmc\filesystem\MusicDatabaseDirectory\DirectoryNodeGrouped.cpp" />
  61. +    <ClCompile Include="..\..\xbmc\filesystem\MusicDatabaseDirectory\DirectoryNodeGrouped.cpp" />
  62.      <ClCompile Include="..\..\xbmc\filesystem\MusicDatabaseFile.cpp" />
  63.      <ClCompile Include="..\..\xbmc\filesystem\MusicFileDirectory.cpp" />
  64.      <ClCompile Include="..\..\xbmc\filesystem\MusicSearchDirectory.cpp" />
  65. @@ -606,7 +607,7 @@
  66.      <ClCompile Include="..\..\xbmc\filesystem\UPnPDirectory.cpp" />
  67.      <ClCompile Include="..\..\xbmc\filesystem\UPnPFile.cpp" />
  68.      <ClCompile Include="..\..\xbmc\filesystem\VideoDatabaseDirectory.cpp" />
  69. -    <ClCompile Include="..\..\xbmc\filesystem\VideoDatabaseDirectory\DirectoryNodeGrouped.cpp" />
  70. +    <ClCompile Include="..\..\xbmc\filesystem\VideoDatabaseDirectory\DirectoryNodeGrouped.cpp" />
  71.      <ClCompile Include="..\..\xbmc\filesystem\windows\WINFileSMB.cpp" />
  72.      <ClCompile Include="..\..\xbmc\filesystem\windows\WINSMBDirectory.cpp" />
  73.      <ClCompile Include="..\..\xbmc\filesystem\VirtualDirectory.cpp" />
  74. @@ -620,7 +621,7 @@
  75.      <ClCompile Include="..\..\xbmc\GUIInfoManager.cpp" />
  76.      <ClCompile Include="..\..\xbmc\GUILargeTextureManager.cpp" />
  77.      <ClCompile Include="..\..\xbmc\guilib\AnimatedGif.cpp" />
  78. -    <ClCompile Include="..\..\xbmc\guilib\cximage.cpp" />
  79. +    <ClCompile Include="..\..\xbmc\guilib\cximage.cpp" />
  80.      <ClCompile Include="..\..\xbmc\guilib\D3DResource.cpp" />
  81.      <ClCompile Include="..\..\xbmc\guilib\DDSImage.cpp" />
  82.      <ClCompile Include="..\..\xbmc\guilib\DirectXGraphics.cpp" />
  83. @@ -706,7 +707,7 @@
  84.      <ClCompile Include="..\..\xbmc\guilib\GUIWindow.cpp" />
  85.      <ClCompile Include="..\..\xbmc\guilib\GUIWindowManager.cpp" />
  86.      <ClCompile Include="..\..\xbmc\guilib\GUIWrappingListContainer.cpp" />
  87. -    <ClCompile Include="..\..\xbmc\guilib\imagefactory.cpp" />
  88. +    <ClCompile Include="..\..\xbmc\guilib\imagefactory.cpp" />
  89.      <ClCompile Include="..\..\xbmc\guilib\IWindowManagerCallback.cpp" />
  90.      <ClCompile Include="..\..\xbmc\guilib\JpegIO.cpp" />
  91.      <ClCompile Include="..\..\xbmc\guilib\Key.cpp" />
  92. @@ -737,9 +738,9 @@
  93.      <ClCompile Include="..\..\xbmc\input\KeyboardLayoutConfiguration.cpp" />
  94.      <ClCompile Include="..\..\xbmc\input\KeyboardStat.cpp" />
  95.      <ClCompile Include="..\..\xbmc\input\MouseStat.cpp" />
  96. -    <ClCompile Include="..\..\xbmc\input\touch\generic\GenericTouchActionHandler.cpp" />
  97. -    <ClCompile Include="..\..\xbmc\input\touch\generic\GenericTouchSwipeDetector.cpp" />
  98. -    <ClCompile Include="..\..\xbmc\input\touch\ITouchInputHandling.cpp" />
  99. +    <ClCompile Include="..\..\xbmc\input\touch\generic\GenericTouchActionHandler.cpp" />
  100. +    <ClCompile Include="..\..\xbmc\input\touch\generic\GenericTouchSwipeDetector.cpp" />
  101. +    <ClCompile Include="..\..\xbmc\input\touch\ITouchInputHandling.cpp" />
  102.      <ClCompile Include="..\..\xbmc\input\windows\IRServerSuite.cpp" />
  103.      <ClCompile Include="..\..\xbmc\input\windows\IrssMessage.cpp" />
  104.      <ClCompile Include="..\..\xbmc\input\windows\WINJoystick.cpp" />
  105. @@ -877,10 +878,10 @@
  106.      <ClCompile Include="..\..\xbmc\network\UdpClient.cpp" />
  107.      <ClCompile Include="..\..\xbmc\network\upnp\UPnP.cpp" />
  108.      <ClCompile Include="..\..\xbmc\network\upnp\UPnPInternal.cpp" />
  109. -    <ClCompile Include="..\..\xbmc\network\upnp\UPnPPlayer.cpp" />
  110. +    <ClCompile Include="..\..\xbmc\network\upnp\UPnPPlayer.cpp" />
  111.      <ClCompile Include="..\..\xbmc\network\upnp\UPnPRenderer.cpp" />
  112.      <ClCompile Include="..\..\xbmc\network\upnp\UPnPServer.cpp" />
  113. -    <ClCompile Include="..\..\xbmc\network\upnp\UPnPSettings.cpp" />
  114. +    <ClCompile Include="..\..\xbmc\network\upnp\UPnPSettings.cpp" />
  115.      <ClCompile Include="..\..\xbmc\network\WebServer.cpp" />
  116.      <ClCompile Include="..\..\xbmc\network\websocket\WebSocket.cpp" />
  117.      <ClCompile Include="..\..\xbmc\network\websocket\WebSocketManager.cpp" />
  118. @@ -895,7 +896,7 @@
  119.      <ClCompile Include="..\..\xbmc\PartyModeManager.cpp" />
  120.      <ClCompile Include="..\..\xbmc\PasswordManager.cpp" />
  121.      <ClCompile Include="..\..\xbmc\peripherals\bus\PeripheralBus.cpp" />
  122. -    <ClCompile Include="..\..\xbmc\peripherals\bus\virtual\PeripheralBusCEC.cpp" />
  123. +    <ClCompile Include="..\..\xbmc\peripherals\bus\virtual\PeripheralBusCEC.cpp" />
  124.      <ClCompile Include="..\..\xbmc\peripherals\bus\win32\PeripheralBusUSB.cpp" />
  125.      <ClCompile Include="..\..\xbmc\peripherals\devices\Peripheral.cpp" />
  126.      <ClCompile Include="..\..\xbmc\peripherals\devices\PeripheralBluetooth.cpp" />
  127. @@ -931,11 +932,11 @@
  128.      <ClCompile Include="..\..\xbmc\powermanagement\DPMSSupport.cpp" />
  129.      <ClCompile Include="..\..\xbmc\powermanagement\PowerManager.cpp" />
  130.      <ClCompile Include="..\..\xbmc\powermanagement\windows\Win32PowerSyscall.cpp" />
  131. -    <ClCompile Include="..\..\xbmc\profiles\dialogs\GUIDialogLockSettings.cpp" />
  132. -    <ClCompile Include="..\..\xbmc\profiles\dialogs\GUIDialogProfileSettings.cpp" />
  133. -    <ClCompile Include="..\..\xbmc\profiles\Profile.cpp" />
  134. -    <ClCompile Include="..\..\xbmc\profiles\ProfilesManager.cpp" />
  135. -    <ClCompile Include="..\..\xbmc\profiles\windows\GUIWindowSettingsProfile.cpp" />
  136. +    <ClCompile Include="..\..\xbmc\profiles\dialogs\GUIDialogLockSettings.cpp" />
  137. +    <ClCompile Include="..\..\xbmc\profiles\dialogs\GUIDialogProfileSettings.cpp" />
  138. +    <ClCompile Include="..\..\xbmc\profiles\Profile.cpp" />
  139. +    <ClCompile Include="..\..\xbmc\profiles\ProfilesManager.cpp" />
  140. +    <ClCompile Include="..\..\xbmc\profiles\windows\GUIWindowSettingsProfile.cpp" />
  141.      <ClCompile Include="..\..\xbmc\programs\GUIViewStatePrograms.cpp" />
  142.      <ClCompile Include="..\..\xbmc\programs\GUIWindowPrograms.cpp" />
  143.      <ClCompile Include="..\..\xbmc\pvr\addons\PVRClient.cpp" />
  144. @@ -985,20 +986,20 @@
  145.      <ClCompile Include="..\..\xbmc\rendering\RenderSystem.cpp" />
  146.      <ClCompile Include="..\..\xbmc\SectionLoader.cpp" />
  147.      <ClCompile Include="..\..\xbmc\settings\AdvancedSettings.cpp" />
  148. -    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogContentSettings.cpp" />
  149. -    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogSettings.cpp" />
  150. -    <ClCompile Include="..\..\xbmc\settings\DisplaySettings.cpp" />
  151. +    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogContentSettings.cpp" />
  152. +    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogSettings.cpp" />
  153. +    <ClCompile Include="..\..\xbmc\settings\DisplaySettings.cpp" />
  154.      <ClCompile Include="..\..\xbmc\settings\GUISettings.cpp" />
  155. -    <ClCompile Include="..\..\xbmc\settings\MediaSettings.cpp" />
  156. -    <ClCompile Include="..\..\xbmc\settings\MediaSourceSettings.cpp" />
  157. +    <ClCompile Include="..\..\xbmc\settings\MediaSettings.cpp" />
  158. +    <ClCompile Include="..\..\xbmc\settings\MediaSourceSettings.cpp" />
  159.      <ClCompile Include="..\..\xbmc\settings\Settings.cpp" />
  160. -    <ClCompile Include="..\..\xbmc\settings\SkinSettings.cpp" />
  161. +    <ClCompile Include="..\..\xbmc\settings\SkinSettings.cpp" />
  162.      <ClCompile Include="..\..\xbmc\settings\VideoSettings.cpp" />
  163. -    <ClCompile Include="..\..\xbmc\settings\windows\GUISettingControls.cpp" />
  164. -    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettings.cpp" />
  165. -    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettingsCategory.cpp" />
  166. -    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettingsScreenCalibration.cpp" />
  167. -    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowTestPattern.cpp" />
  168. +    <ClCompile Include="..\..\xbmc\settings\windows\GUISettingControls.cpp" />
  169. +    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettings.cpp" />
  170. +    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettingsCategory.cpp" />
  171. +    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettingsScreenCalibration.cpp" />
  172. +    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowTestPattern.cpp" />
  173.      <ClCompile Include="..\..\xbmc\storage\AutorunMediaJob.cpp" />
  174.      <ClCompile Include="..\..\xbmc\storage\cdioSupport.cpp" />
  175.      <ClCompile Include="..\..\xbmc\storage\IoSupport.cpp" />
  176. @@ -1040,7 +1041,7 @@
  177.      <ClCompile Include="..\..\xbmc\TextureCacheJob.cpp" />
  178.      <ClCompile Include="..\..\xbmc\TextureDatabase.cpp" />
  179.      <ClCompile Include="..\..\xbmc\DatabaseManager.cpp" />
  180. -    <ClInclude Include="..\..\xbmc\AppParamParser.h" />
  181. +    <ClInclude Include="..\..\xbmc\AppParamParser.h" />
  182.      <ClInclude Include="..\..\xbmc\cores\AudioEngine\AEAudioFormat.h" />
  183.      <ClInclude Include="..\..\xbmc\cores\AudioEngine\AEFactory.h" />
  184.      <ClInclude Include="..\..\xbmc\cores\AudioEngine\AESinkFactory.h" />
  185. @@ -1097,6 +1098,7 @@
  186.      <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowDecVideo.h" />
  187.      <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowEnc.h" />
  188.      <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowParamsEnum.h" />
  189. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\madVRAllocatorPresenter.h" />
  190.      <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\RendererSettings.h" />
  191.      <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\VMR9AllocatorPresenter.h" />
  192.      <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\XBMCFileReader.h" />
  193. @@ -1126,25 +1128,25 @@
  194.      <ClInclude Include="..\..\xbmc\DbUrl.h" />
  195.      <ClInclude Include="..\..\xbmc\dialogs\GUIDialogMediaFilter.h" />
  196.      <ClInclude Include="..\..\xbmc\filesystem\HTTPFile.h" />
  197. -    <ClInclude Include="..\..\xbmc\filesystem\DAVCommon.h" />
  198. -    <ClInclude Include="..\..\xbmc\filesystem\DAVFile.h" />
  199. +    <ClInclude Include="..\..\xbmc\filesystem\DAVCommon.h" />
  200. +    <ClInclude Include="..\..\xbmc\filesystem\DAVFile.h" />
  201.      <ClInclude Include="..\..\xbmc\filesystem\ImageFile.h" />
  202. -    <ClInclude Include="..\..\xbmc\filesystem\MusicDatabaseDirectory\DirectoryNodeGrouped.h" />
  203. -    <ClInclude Include="..\..\xbmc\filesystem\VideoDatabaseDirectory\DirectoryNodeGrouped.h" />
  204. +    <ClInclude Include="..\..\xbmc\filesystem\MusicDatabaseDirectory\DirectoryNodeGrouped.h" />
  205. +    <ClInclude Include="..\..\xbmc\filesystem\VideoDatabaseDirectory\DirectoryNodeGrouped.h" />
  206.      <ClInclude Include="..\..\xbmc\filesystem\windows\WINFileSMB.h" />
  207.      <ClInclude Include="..\..\xbmc\filesystem\windows\WINSMBDirectory.h" />
  208. -    <ClInclude Include="..\..\xbmc\guilib\cximage.h" />
  209. +    <ClInclude Include="..\..\xbmc\guilib\cximage.h" />
  210.      <ClInclude Include="..\..\xbmc\guilib\GUIKeyboard.h" />
  211.      <ClInclude Include="..\..\xbmc\guilib\GUIKeyboardFactory.h" />
  212. -    <ClInclude Include="..\..\xbmc\guilib\iimage.h" />
  213. -    <ClInclude Include="..\..\xbmc\guilib\imagefactory.h" />
  214. -    <ClInclude Include="..\..\xbmc\input\touch\generic\GenericTouchActionHandler.h" />
  215. -    <ClInclude Include="..\..\xbmc\input\touch\generic\GenericTouchSwipeDetector.h" />
  216. -    <ClInclude Include="..\..\xbmc\input\touch\generic\IGenericTouchGestureDetector.h" />
  217. -    <ClInclude Include="..\..\xbmc\input\touch\ITouchActionHandler.h" />
  218. -    <ClInclude Include="..\..\xbmc\input\touch\ITouchInputHandler.h" />
  219. -    <ClInclude Include="..\..\xbmc\input\touch\ITouchInputHandling.h" />
  220. -    <ClInclude Include="..\..\xbmc\input\touch\TouchTypes.h" />
  221. +    <ClInclude Include="..\..\xbmc\guilib\iimage.h" />
  222. +    <ClInclude Include="..\..\xbmc\guilib\imagefactory.h" />
  223. +    <ClInclude Include="..\..\xbmc\input\touch\generic\GenericTouchActionHandler.h" />
  224. +    <ClInclude Include="..\..\xbmc\input\touch\generic\GenericTouchSwipeDetector.h" />
  225. +    <ClInclude Include="..\..\xbmc\input\touch\generic\IGenericTouchGestureDetector.h" />
  226. +    <ClInclude Include="..\..\xbmc\input\touch\ITouchActionHandler.h" />
  227. +    <ClInclude Include="..\..\xbmc\input\touch\ITouchInputHandler.h" />
  228. +    <ClInclude Include="..\..\xbmc\input\touch\ITouchInputHandling.h" />
  229. +    <ClInclude Include="..\..\xbmc\input\touch\TouchTypes.h" />
  230.      <ClInclude Include="..\..\xbmc\input\windows\WINJoystick.h" />
  231.      <ClInclude Include="..\..\xbmc\interfaces\json-rpc\PVROperations.h" />
  232.      <ClInclude Include="..\..\xbmc\interfaces\legacy\Addon.h" />
  233. @@ -1189,29 +1191,29 @@
  234.      <ClInclude Include="..\..\xbmc\interfaces\python\PyContext.h" />
  235.      <ClInclude Include="..\..\xbmc\interfaces\python\pythreadstate.h" />
  236.      <ClInclude Include="..\..\xbmc\music\karaoke\karaokevideobackground.h" />
  237. -    <ClInclude Include="..\..\xbmc\peripherals\bus\virtual\PeripheralBusCEC.h" />
  238. -    <ClInclude Include="..\..\xbmc\network\upnp\UPnPSettings.h" />
  239. -    <ClInclude Include="..\..\xbmc\profiles\dialogs\GUIDialogLockSettings.h" />
  240. -    <ClInclude Include="..\..\xbmc\profiles\dialogs\GUIDialogProfileSettings.h" />
  241. -    <ClInclude Include="..\..\xbmc\profiles\Profile.h" />
  242. -    <ClInclude Include="..\..\xbmc\profiles\ProfilesManager.h" />
  243. -    <ClInclude Include="..\..\xbmc\profiles\windows\GUIWindowSettingsProfile.h" />
  244. -    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogContentSettings.h" />
  245. -    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogSettings.h" />
  246. -    <ClInclude Include="..\..\xbmc\settings\DisplaySettings.h" />
  247. -    <ClInclude Include="..\..\xbmc\settings\ISettingsHandler.h" />
  248. -    <ClInclude Include="..\..\xbmc\settings\ISubSettings.h" />
  249. -    <ClInclude Include="..\..\xbmc\settings\MediaSettings.h" />
  250. -    <ClInclude Include="..\..\xbmc\settings\MediaSourceSettings.h" />
  251. -    <ClInclude Include="..\..\xbmc\settings\SkinSettings.h" />
  252. -    <ClInclude Include="..\..\xbmc\settings\windows\GUISettingControls.h" />
  253. -    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettings.h" />
  254. -    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettingsCategory.h" />
  255. -    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettingsScreenCalibration.h" />
  256. -    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowTestPattern.h" />
  257. -    <ClInclude Include="..\..\xbmc\utils\IRssObserver.h" />
  258. -    <ClInclude Include="..\..\xbmc\utils\RssManager.h" />
  259. -    <ClInclude Include="..\..\xbmc\utils\Vector.h" />
  260. +    <ClInclude Include="..\..\xbmc\peripherals\bus\virtual\PeripheralBusCEC.h" />
  261. +    <ClInclude Include="..\..\xbmc\network\upnp\UPnPSettings.h" />
  262. +    <ClInclude Include="..\..\xbmc\profiles\dialogs\GUIDialogLockSettings.h" />
  263. +    <ClInclude Include="..\..\xbmc\profiles\dialogs\GUIDialogProfileSettings.h" />
  264. +    <ClInclude Include="..\..\xbmc\profiles\Profile.h" />
  265. +    <ClInclude Include="..\..\xbmc\profiles\ProfilesManager.h" />
  266. +    <ClInclude Include="..\..\xbmc\profiles\windows\GUIWindowSettingsProfile.h" />
  267. +    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogContentSettings.h" />
  268. +    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogSettings.h" />
  269. +    <ClInclude Include="..\..\xbmc\settings\DisplaySettings.h" />
  270. +    <ClInclude Include="..\..\xbmc\settings\ISettingsHandler.h" />
  271. +    <ClInclude Include="..\..\xbmc\settings\ISubSettings.h" />
  272. +    <ClInclude Include="..\..\xbmc\settings\MediaSettings.h" />
  273. +    <ClInclude Include="..\..\xbmc\settings\MediaSourceSettings.h" />
  274. +    <ClInclude Include="..\..\xbmc\settings\SkinSettings.h" />
  275. +    <ClInclude Include="..\..\xbmc\settings\windows\GUISettingControls.h" />
  276. +    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettings.h" />
  277. +    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettingsCategory.h" />
  278. +    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettingsScreenCalibration.h" />
  279. +    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowTestPattern.h" />
  280. +    <ClInclude Include="..\..\xbmc\utils\IRssObserver.h" />
  281. +    <ClInclude Include="..\..\xbmc\utils\RssManager.h" />
  282. +    <ClInclude Include="..\..\xbmc\utils\Vector.h" />
  283.      <ClInclude Include="..\..\xbmc\video\FFmpegVideoDecoder.h" />
  284.      <ClInclude Include="..\..\xbmc\interfaces\python\swig.h" />
  285.      <ClInclude Include="..\..\xbmc\interfaces\python\XBPython.h" />
  286. @@ -1225,7 +1227,7 @@
  287.      <ClInclude Include="..\..\xbmc\network\DllLibShairplay.h" />
  288.      <ClInclude Include="..\..\xbmc\network\upnp\UPnP.h" />
  289.      <ClInclude Include="..\..\xbmc\network\upnp\UPnPInternal.h" />
  290. -    <ClInclude Include="..\..\xbmc\network\upnp\UPnPPlayer.h" />
  291. +    <ClInclude Include="..\..\xbmc\network\upnp\UPnPPlayer.h" />
  292.      <ClInclude Include="..\..\xbmc\network\upnp\UPnPRenderer.h" />
  293.      <ClInclude Include="..\..\xbmc\network\upnp\UPnPServer.h" />
  294.      <ClInclude Include="..\..\xbmc\network\websocket\WebSocket.h" />
  295. @@ -1347,7 +1349,7 @@
  296.      </ClInclude>
  297.      <ClInclude Include="..\..\xbmc\interfaces\json-rpc\AddonsOperations.h" />
  298.      <ClCompile Include="..\..\xbmc\ThumbLoader.cpp" />
  299. -    <ClCompile Include="..\..\xbmc\utils\RssManager.cpp" />
  300. +    <ClCompile Include="..\..\xbmc\utils\RssManager.cpp" />
  301.      <ClCompile Include="..\..\xbmc\utils\test\TestUrlOptions.cpp">
  302.        <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug (DirectX)|Win32'">true</ExcludedFromBuild>
  303.        <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug (OpenGL)|Win32'">true</ExcludedFromBuild>
  304. @@ -1355,8 +1357,8 @@
  305.        <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release (OpenGL)|Win32'">true</ExcludedFromBuild>
  306.        <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Template|Win32'">true</ExcludedFromBuild>
  307.      </ClCompile>
  308. -    <ClCompile Include="..\..\xbmc\utils\Vector.cpp" />
  309. -    <ClCompile Include="..\..\xbmc\video\PlayerController.cpp" />
  310. +    <ClCompile Include="..\..\xbmc\utils\Vector.cpp" />
  311. +    <ClCompile Include="..\..\xbmc\video\PlayerController.cpp" />
  312.      <ClCompile Include="..\..\xbmc\video\VideoThumbLoader.cpp" />
  313.      <ClCompile Include="..\..\xbmc\music\MusicThumbLoader.cpp" />
  314.      <ClCompile Include="..\..\xbmc\ThumbnailCache.cpp" />
  315. @@ -1775,10 +1777,10 @@
  316.      <ClCompile Include="..\..\xbmc\video\windows\GUIWindowVideoBase.cpp" />
  317.      <ClCompile Include="..\..\xbmc\video\windows\GUIWindowVideoNav.cpp" />
  318.      <ClCompile Include="..\..\xbmc\video\windows\GUIWindowVideoPlaylist.cpp" />
  319. -    <ClCompile Include="..\..\xbmc\view\GUIViewControl.cpp" />
  320. -    <ClCompile Include="..\..\xbmc\view\GUIViewState.cpp" />
  321. -    <ClCompile Include="..\..\xbmc\view\ViewDatabase.cpp" />
  322. -    <ClCompile Include="..\..\xbmc\view\ViewStateSettings.cpp" />
  323. +    <ClCompile Include="..\..\xbmc\view\GUIViewControl.cpp" />
  324. +    <ClCompile Include="..\..\xbmc\view\GUIViewState.cpp" />
  325. +    <ClCompile Include="..\..\xbmc\view\ViewDatabase.cpp" />
  326. +    <ClCompile Include="..\..\xbmc\view\ViewStateSettings.cpp" />
  327.      <ClCompile Include="..\..\xbmc\win32\pch.cpp">
  328.        <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug (DirectX)|Win32'">Create</PrecompiledHeader>
  329.        <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Testsuite|Win32'">Create</PrecompiledHeader>
  330. @@ -2471,7 +2473,7 @@
  331.      <ClInclude Include="..\..\xbmc\TextureDatabase.h" />
  332.      <ClInclude Include="..\..\xbmc\DatabaseManager.h" />
  333.      <ClInclude Include="..\..\xbmc\ThumbLoader.h" />
  334. -    <ClInclude Include="..\..\xbmc\video\PlayerController.h" />
  335. +    <ClInclude Include="..\..\xbmc\video\PlayerController.h" />
  336.      <ClInclude Include="..\..\xbmc\video\VideoThumbLoader.h" />
  337.      <ClInclude Include="..\..\xbmc\music\MusicThumbLoader.h" />
  338.      <ClInclude Include="..\..\xbmc\ThumbnailCache.h" />
  339. @@ -2582,11 +2584,11 @@
  340.      <ClInclude Include="..\..\xbmc\video\windows\GUIWindowVideoBase.h" />
  341.      <ClInclude Include="..\..\xbmc\video\windows\GUIWindowVideoNav.h" />
  342.      <ClInclude Include="..\..\xbmc\video\windows\GUIWindowVideoPlaylist.h" />
  343. -    <ClInclude Include="..\..\xbmc\view\GUIViewControl.h" />
  344. -    <ClInclude Include="..\..\xbmc\view\GUIViewState.h" />
  345. -    <ClInclude Include="..\..\xbmc\view\ViewDatabase.h" />
  346. -    <ClInclude Include="..\..\xbmc\view\ViewState.h" />
  347. -    <ClInclude Include="..\..\xbmc\view\ViewStateSettings.h" />
  348. +    <ClInclude Include="..\..\xbmc\view\GUIViewControl.h" />
  349. +    <ClInclude Include="..\..\xbmc\view\GUIViewState.h" />
  350. +    <ClInclude Include="..\..\xbmc\view\ViewDatabase.h" />
  351. +    <ClInclude Include="..\..\xbmc\view\ViewState.h" />
  352. +    <ClInclude Include="..\..\xbmc\view\ViewStateSettings.h" />
  353.      <ClInclude Include="..\..\xbmc\win32\pch.h" />
  354.      <ClInclude Include="..\..\xbmc\win32\PlatformDefs.h" />
  355.      <ClInclude Include="..\..\xbmc\XBDateTime.h" />
  356. @@ -3050,4 +3052,4 @@
  357.      </VisualStudio>
  358.    </ProjectExtensions>
  359.    <Import Project="$(SolutionDir)\$(ProjectFileName).targets.user" Condition="Exists('$(SolutionDir)\$(ProjectFileName).targets.user')" />
  360. -</Project>
  361. +</Project>
  362. \ No newline at end of file
  363. diff --git a/project/VS2010Express/XBMC.vcxproj.filters b/project/VS2010Express/XBMC.vcxproj.filters
  364. index ec51b1a..8c3b077 100644
  365. --- a/project/VS2010Express/XBMC.vcxproj.filters
  366. +++ b/project/VS2010Express/XBMC.vcxproj.filters
  367. @@ -106,9 +106,6 @@
  368.      <Filter Include="settings">
  369.        <UniqueIdentifier>{8cd0e706-bd9f-4e99-afa2-34307239cb3e}</UniqueIdentifier>
  370.      </Filter>
  371. -    <Filter Include="storage">
  372. -      <UniqueIdentifier>{2500f45e-2a56-4434-87bd-727050d0d1aa}</UniqueIdentifier>
  373. -    </Filter>
  374.      <Filter Include="utils">
  375.        <UniqueIdentifier>{acd585b0-c319-43f0-9149-b3b5dddf5122}</UniqueIdentifier>
  376.      </Filter>
  377. @@ -160,9 +157,6 @@
  378.      <Filter Include="rendering\gl">
  379.        <UniqueIdentifier>{c23bb4dd-e0dc-4e0e-aaa5-d66798a0fc34}</UniqueIdentifier>
  380.      </Filter>
  381. -    <Filter Include="storage\windows">
  382. -      <UniqueIdentifier>{04b51f60-cfb4-43fd-8f23-40a7d0ac5c31}</UniqueIdentifier>
  383. -    </Filter>
  384.      <Filter Include="video\dialogs">
  385.        <UniqueIdentifier>{0dec7f48-a12d-4afa-b60d-4a2b50ca9975}</UniqueIdentifier>
  386.      </Filter>
  387. @@ -277,62 +271,69 @@
  388.      <Filter Include="interfaces\python\test">
  389.        <UniqueIdentifier>{0a84b5ee-2ad4-4ae2-9a8d-fc585c6d8aae}</UniqueIdentifier>
  390.      </Filter>
  391. -    <Filter Include="view">
  392. -      <UniqueIdentifier>{90f512bb-8cda-4f04-b938-4f48d29bc82a}</UniqueIdentifier>
  393. -    </Filter>    <Filter Include="cores\DSPlayer">
  394. -      <UniqueIdentifier>{8b65ff5a-9862-42bc-bf92-b5cf22b9c12a}</UniqueIdentifier>
  395. -    </Filter>
  396. -    <Filter Include="settings\dialogs">
  397. -      <UniqueIdentifier>{38264422-e35f-427f-8d3d-27bc075b9bdd}</UniqueIdentifier>
  398. -    </Filter>
  399. -    <Filter Include="settings\windows">
  400. -      <UniqueIdentifier>{1a1eb956-43d1-4709-9467-ce471d54941d}</UniqueIdentifier>
  401. -    </Filter>
  402. -    <Filter Include="profiles">
  403. -      <UniqueIdentifier>{e0e6a2e7-683d-442f-bbd1-bc4e0ecd140a}</UniqueIdentifier>
  404. -    </Filter>
  405. -    <Filter Include="profiles\dialogs">
  406. -      <UniqueIdentifier>{e658a9f4-98f8-4403-aa85-a5ed7ec67868}</UniqueIdentifier>
  407. -    </Filter>
  408. -    <Filter Include="profiles\windows">
  409. -      <UniqueIdentifier>{b5a6d872-7e56-4976-81c5-47baad252337}</UniqueIdentifier>
  410. -    </Filter>
  411. -    <Filter Include="input\touch">
  412. -      <UniqueIdentifier>{4e236b17-3720-4ed8-89af-90cb86bf9b03}</UniqueIdentifier>
  413. -    </Filter>
  414. -    <Filter Include="input\touch\generic">
  415. -      <UniqueIdentifier>{d062c356-66f2-49e7-9510-b216701d2298}</UniqueIdentifier>
  416. -    </Filter>
  417. -    <Filter Include="cores\DSPlayer\FilterCoreFactory">
  418. -      <UniqueIdentifier>{e51e3d8c-ee41-4a89-b895-7855b6655146}</UniqueIdentifier>
  419. -    </Filter>
  420. -    <Filter Include="cores\DSPlayer\Filters">
  421. -      <UniqueIdentifier>{82fef0c7-f356-48c8-9bd3-f232311e770a}</UniqueIdentifier>
  422. -    </Filter>
  423. -    <Filter Include="cores\DSPlayer\Interfaces">
  424. -      <UniqueIdentifier>{63ced100-c60a-4c01-8e20-cef3c67e1925}</UniqueIdentifier>
  425. -    </Filter>
  426. -    <Filter Include="cores\DSPlayer\Shaders">
  427. -      <UniqueIdentifier>{cebe8028-82be-4cec-b3de-0d87a95cb2b0}</UniqueIdentifier>
  428. -    </Filter>
  429. -    <Filter Include="cores\DSPlayer\Utils">
  430. -      <UniqueIdentifier>{11b4988a-2f71-4471-902a-81e3230df77c}</UniqueIdentifier>
  431. -    </Filter>
  432. -    <Filter Include="cores\DSPlayer\Interfaces\ffdshow">
  433. -      <UniqueIdentifier>{2824d426-eef9-4287-a19d-89340415fef4}</UniqueIdentifier>
  434. -    </Filter>
  435. -    <Filter Include="cores\DSPlayer\Filters\BaseClassFilters">
  436. -      <UniqueIdentifier>{539077e3-65bf-4cab-b48b-01dd16a9a8a6}</UniqueIdentifier>
  437. -    </Filter>
  438. -    <Filter Include="cores\DSPlayer\Filters\Include">
  439. -      <UniqueIdentifier>{a7d6b73c-f765-44b6-aff2-140a5903b128}</UniqueIdentifier>
  440. -    </Filter>
  441. -    <Filter Include="cores\DSPlayer\Filters\Video Renderers">
  442. -      <UniqueIdentifier>{3b6b6bfa-49fe-40c8-abe6-4b14e46d2257}</UniqueIdentifier>
  443. -    </Filter>
  444. -    <Filter Include="cores\DSPlayer\Filters\Source">
  445. -      <UniqueIdentifier>{c356be07-4c7d-42dc-9a99-2beea6f8dc56}</UniqueIdentifier>
  446. -    </Filter>
  447. +    <Filter Include="view">
  448. +      <UniqueIdentifier>{90f512bb-8cda-4f04-b938-4f48d29bc82a}</UniqueIdentifier>
  449. +    </Filter>
  450. +    <Filter Include="cores\DSPlayer">
  451. +      <UniqueIdentifier>{8b65ff5a-9862-42bc-bf92-b5cf22b9c12a}</UniqueIdentifier>
  452. +    </Filter>
  453. +    <Filter Include="settings\dialogs">
  454. +      <UniqueIdentifier>{38264422-e35f-427f-8d3d-27bc075b9bdd}</UniqueIdentifier>
  455. +    </Filter>
  456. +    <Filter Include="settings\windows">
  457. +      <UniqueIdentifier>{1a1eb956-43d1-4709-9467-ce471d54941d}</UniqueIdentifier>
  458. +    </Filter>
  459. +    <Filter Include="profiles">
  460. +      <UniqueIdentifier>{e0e6a2e7-683d-442f-bbd1-bc4e0ecd140a}</UniqueIdentifier>
  461. +    </Filter>
  462. +    <Filter Include="profiles\dialogs">
  463. +      <UniqueIdentifier>{e658a9f4-98f8-4403-aa85-a5ed7ec67868}</UniqueIdentifier>
  464. +    </Filter>
  465. +    <Filter Include="profiles\windows">
  466. +      <UniqueIdentifier>{b5a6d872-7e56-4976-81c5-47baad252337}</UniqueIdentifier>
  467. +    </Filter>
  468. +    <Filter Include="input\touch">
  469. +      <UniqueIdentifier>{4e236b17-3720-4ed8-89af-90cb86bf9b03}</UniqueIdentifier>
  470. +    </Filter>
  471. +    <Filter Include="input\touch\generic">
  472. +      <UniqueIdentifier>{d062c356-66f2-49e7-9510-b216701d2298}</UniqueIdentifier>
  473. +    </Filter>
  474. +    <Filter Include="cores\DSPlayer\FilterCoreFactory">
  475. +      <UniqueIdentifier>{e51e3d8c-ee41-4a89-b895-7855b6655146}</UniqueIdentifier>
  476. +    </Filter>
  477. +    <Filter Include="cores\DSPlayer\Filters">
  478. +      <UniqueIdentifier>{82fef0c7-f356-48c8-9bd3-f232311e770a}</UniqueIdentifier>
  479. +    </Filter>
  480. +    <Filter Include="cores\DSPlayer\Interfaces">
  481. +      <UniqueIdentifier>{63ced100-c60a-4c01-8e20-cef3c67e1925}</UniqueIdentifier>
  482. +    </Filter>
  483. +    <Filter Include="cores\DSPlayer\Shaders">
  484. +      <UniqueIdentifier>{cebe8028-82be-4cec-b3de-0d87a95cb2b0}</UniqueIdentifier>
  485. +    </Filter>
  486. +    <Filter Include="cores\DSPlayer\Utils">
  487. +      <UniqueIdentifier>{11b4988a-2f71-4471-902a-81e3230df77c}</UniqueIdentifier>
  488. +    </Filter>
  489. +    <Filter Include="cores\DSPlayer\Interfaces\ffdshow">
  490. +      <UniqueIdentifier>{2824d426-eef9-4287-a19d-89340415fef4}</UniqueIdentifier>
  491. +    </Filter>
  492. +    <Filter Include="cores\DSPlayer\Filters\BaseClassFilters">
  493. +      <UniqueIdentifier>{539077e3-65bf-4cab-b48b-01dd16a9a8a6}</UniqueIdentifier>
  494. +    </Filter>
  495. +    <Filter Include="cores\DSPlayer\Filters\Include">
  496. +      <UniqueIdentifier>{a7d6b73c-f765-44b6-aff2-140a5903b128}</UniqueIdentifier>
  497. +    </Filter>
  498. +    <Filter Include="cores\DSPlayer\Filters\Video Renderers">
  499. +      <UniqueIdentifier>{3b6b6bfa-49fe-40c8-abe6-4b14e46d2257}</UniqueIdentifier>
  500. +    </Filter>
  501. +    <Filter Include="cores\DSPlayer\Filters\Source">
  502. +      <UniqueIdentifier>{c356be07-4c7d-42dc-9a99-2beea6f8dc56}</UniqueIdentifier>
  503. +    </Filter>
  504. +    <Filter Include="settings\storage">
  505. +      <UniqueIdentifier>{2500f45e-2a56-4434-87bd-727050d0d1aa}</UniqueIdentifier>
  506. +    </Filter>
  507. +    <Filter Include="settings\storage\windows">
  508. +      <UniqueIdentifier>{04b51f60-cfb4-43fd-8f23-40a7d0ac5c31}</UniqueIdentifier>
  509. +    </Filter>
  510.    </ItemGroup>
  511.    <ItemGroup>
  512.      <ClCompile Include="..\..\xbmc\win32\pch.cpp">
  513. @@ -1462,19 +1463,19 @@
  514.        <Filter>settings</Filter>
  515.      </ClCompile>
  516.      <ClCompile Include="..\..\xbmc\storage\AutorunMediaJob.cpp">
  517. -      <Filter>storage</Filter>
  518. +      <Filter>settings\storage</Filter>
  519.      </ClCompile>
  520.      <ClCompile Include="..\..\xbmc\storage\cdioSupport.cpp">
  521. -      <Filter>storage</Filter>
  522. +      <Filter>settings\storage</Filter>
  523.      </ClCompile>
  524.      <ClCompile Include="..\..\xbmc\storage\IoSupport.cpp">
  525. -      <Filter>storage</Filter>
  526. +      <Filter>settings\storage</Filter>
  527.      </ClCompile>
  528.      <ClCompile Include="..\..\xbmc\storage\MediaManager.cpp">
  529. -      <Filter>storage</Filter>
  530. +      <Filter>settings\storage</Filter>
  531.      </ClCompile>
  532.      <ClCompile Include="..\..\xbmc\storage\windows\Win32StorageProvider.cpp">
  533. -      <Filter>storage\windows</Filter>
  534. +      <Filter>settings\storage\windows</Filter>
  535.      </ClCompile>
  536.      <ClCompile Include="..\..\xbmc\utils\AlarmClock.cpp">
  537.        <Filter>utils</Filter>
  538. @@ -2914,198 +2915,208 @@
  539.      <ClCompile Include="..\..\xbmc\interfaces\python\PyContext.cpp">
  540.        <Filter>interfaces\python</Filter>
  541.      </ClCompile>
  542. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\ChaptersManager.cpp">
  543. -      <Filter>cores\DSPlayer</Filter>
  544. -    </ClCompile>
  545. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\DSGraph.cpp">
  546. -      <Filter>cores\DSPlayer</Filter>
  547. -    </ClCompile>
  548. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\DSPlayer.cpp">
  549. -      <Filter>cores\DSPlayer</Filter>
  550. -    </ClCompile>
  551. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\DSPropertyPage.cpp">
  552. -      <Filter>cores\DSPlayer</Filter>
  553. -    </ClCompile>
  554. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\FGFilter.cpp">
  555. -      <Filter>cores\DSPlayer</Filter>
  556. -    </ClCompile>
  557. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\FGLoader.cpp">
  558. -      <Filter>cores\DSPlayer</Filter>
  559. -    </ClCompile>
  560. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\FGManager.cpp">
  561. -      <Filter>cores\DSPlayer</Filter>
  562. -    </ClCompile>
  563. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\FGManager2.cpp">
  564. -      <Filter>cores\DSPlayer</Filter>
  565. -    </ClCompile>
  566. -    <ClCompile Include="..\..\xbmc\peripherals\bus\virtual\PeripheralBusCEC.cpp">
  567. -      <Filter>peripherals\bus</Filter>
  568. -    </ClCompile>
  569. -    <ClCompile Include="..\..\xbmc\network\upnp\UPnPSettings.cpp">
  570. -      <Filter>network\upnp</Filter>
  571. -    </ClCompile>
  572. -    <ClCompile Include="..\..\xbmc\AppParamParser.cpp" />
  573. -    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogContentSettings.cpp">
  574. -      <Filter>settings\dialogs</Filter>
  575. -    </ClCompile>
  576. -    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogSettings.cpp">
  577. -      <Filter>settings\dialogs</Filter>
  578. -    </ClCompile>
  579. -    <ClCompile Include="..\..\xbmc\settings\windows\GUISettingControls.cpp">
  580. -      <Filter>settings\windows</Filter>
  581. -    </ClCompile>
  582. -    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettings.cpp">
  583. -      <Filter>settings\windows</Filter>
  584. -    </ClCompile>
  585. -    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettingsCategory.cpp">
  586. -      <Filter>settings\windows</Filter>
  587. -    </ClCompile>
  588. -    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettingsScreenCalibration.cpp">
  589. -      <Filter>settings\windows</Filter>
  590. -    </ClCompile>
  591. -    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowTestPattern.cpp">
  592. -      <Filter>settings\windows</Filter>
  593. -    </ClCompile>
  594. -    <ClCompile Include="..\..\xbmc\utils\RssManager.cpp">
  595. -      <Filter>utils</Filter>
  596. -    </ClCompile>
  597. -    <ClCompile Include="..\..\xbmc\settings\SkinSettings.cpp">
  598. -      <Filter>settings</Filter>
  599. -    </ClCompile>
  600. -    <ClCompile Include="..\..\xbmc\settings\MediaSourceSettings.cpp">
  601. -      <Filter>settings</Filter>
  602. -    </ClCompile>
  603. -    <ClCompile Include="..\..\xbmc\view\ViewStateSettings.cpp">
  604. -      <Filter>view</Filter>
  605. -    </ClCompile>
  606. -    <ClCompile Include="..\..\xbmc\settings\MediaSettings.cpp">
  607. -      <Filter>settings</Filter>
  608. -    </ClCompile>
  609. -    <ClCompile Include="..\..\xbmc\settings\DisplaySettings.cpp">
  610. -      <Filter>settings</Filter>
  611. -    </ClCompile>
  612. -    <ClCompile Include="..\..\xbmc\profiles\dialogs\GUIDialogLockSettings.cpp">
  613. -      <Filter>profiles\dialogs</Filter>
  614. -    </ClCompile>
  615. -    <ClCompile Include="..\..\xbmc\profiles\dialogs\GUIDialogProfileSettings.cpp">
  616. -      <Filter>profiles\dialogs</Filter>
  617. -    </ClCompile>
  618. -    <ClCompile Include="..\..\xbmc\profiles\windows\GUIWindowSettingsProfile.cpp">
  619. -      <Filter>profiles\windows</Filter>
  620. -    </ClCompile>
  621. -    <ClCompile Include="..\..\xbmc\profiles\Profile.cpp">
  622. -      <Filter>profiles</Filter>
  623. -    </ClCompile>
  624. -    <ClCompile Include="..\..\xbmc\profiles\ProfilesManager.cpp">
  625. -      <Filter>profiles</Filter>
  626. -    </ClCompile>
  627. -    <ClCompile Include="..\..\xbmc\input\touch\generic\GenericTouchActionHandler.cpp">
  628. -      <Filter>input\touch\generic</Filter>
  629. -    </ClCompile>
  630. -    <ClCompile Include="..\..\xbmc\input\touch\generic\GenericTouchSwipeDetector.cpp">
  631. -      <Filter>input\touch\generic</Filter>
  632. -    </ClCompile>
  633. -    <ClCompile Include="..\..\xbmc\input\touch\ITouchInputHandling.cpp">
  634. -      <Filter>input\touch</Filter>
  635. -    </ClCompile>
  636. -    <ClCompile Include="..\..\xbmc\utils\Vector.cpp">
  637. -      <Filter>utils</Filter>
  638. -    </ClCompile>
  639. -    <ClCompile Include="..\..\xbmc\video\PlayerController.cpp">
  640. -      <Filter>video</Filter>
  641. -    </ClCompile>
  642. -    <ClCompile Include="..\..\xbmc\filesystem\VideoDatabaseDirectory\DirectoryNodeGrouped.cpp">
  643. -      <Filter>filesystem\VideoDatabaseDirectory</Filter>
  644. -    </ClCompile>
  645. -    <ClCompile Include="..\..\xbmc\filesystem\MusicDatabaseDirectory\DirectoryNodeGrouped.cpp">
  646. -      <Filter>filesystem\MusicDatabaseDirectory</Filter>
  647. -    </ClCompile>
  648. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\GraphFilters.cpp">
  649. -      <Filter>cores\DSPlayer</Filter>
  650. -    </ClCompile>
  651. -
  652. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\StreamsManager.cpp">
  653. -      <Filter>cores\DSPlayer</Filter>
  654. -    </ClCompile>
  655. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Utils\AudioEnumerator.cpp">
  656. -      <Filter>cores\DSPlayer\Utils</Filter>
  657. -    </ClCompile>
  658. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Utils\DSTemplate.cpp">
  659. -      <Filter>cores\DSPlayer\Utils</Filter>
  660. -    </ClCompile>
  661. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Utils\IPinHook.cpp">
  662. -      <Filter>cores\DSPlayer\Utils</Filter>
  663. -    </ClCompile>
  664. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Utils\MacrovisionKicker.cpp">
  665. -      <Filter>cores\DSPlayer\Utils</Filter>
  666. -    </ClCompile>
  667. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\ExternalPixelShader.cpp">
  668. -      <Filter>cores\DSPlayer\Shaders</Filter>
  669. -    </ClCompile>
  670. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\PixelShaderCompiler.cpp">
  671. -      <Filter>cores\DSPlayer\Shaders</Filter>
  672. -    </ClCompile>
  673. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\PixelShaderList.cpp">
  674. -      <Filter>cores\DSPlayer\Shaders</Filter>
  675. -    </ClCompile>
  676. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\ShadersSelectionRule.cpp">
  677. -      <Filter>cores\DSPlayer\Shaders</Filter>
  678. -    </ClCompile>
  679. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Subtitles\ILogImpl.cpp">
  680. -      <Filter>cores\DSPlayer\Interfaces</Filter>
  681. -    </ClCompile>
  682. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\AllocatorCommon.cpp">
  683. -      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  684. -    </ClCompile>
  685. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\DX9AllocatorPresenter.cpp">
  686. -      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  687. -    </ClCompile>
  688. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\EVRAllocatorPresenter.cpp">
  689. -      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  690. -    </ClCompile>
  691. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\RendererSettings.cpp">
  692. -      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  693. -    </ClCompile>
  694. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\VMR9AllocatorPresenter.cpp">
  695. -      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  696. -    </ClCompile>
  697. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\XBMCFileReader.cpp">
  698. -      <Filter>cores\DSPlayer\Filters\Source</Filter>
  699. -    </ClCompile>
  700. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\XBMCFileSource.cpp">
  701. -      <Filter>cores\DSPlayer\Filters\Source</Filter>
  702. -    </ClCompile>
  703. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Subtitles\decss\CSSauth.cpp">
  704. -      <Filter>cores\DSPlayer\Filters\Include</Filter>
  705. -    </ClCompile>
  706. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Subtitles\decss\CSSscramble.cpp">
  707. -      <Filter>cores\DSPlayer\Filters\Include</Filter>
  708. -    </ClCompile>
  709. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Subtitles\decss\DeCSSInputPin.cpp">
  710. -      <Filter>cores\DSPlayer\Filters\Include</Filter>
  711. -    </ClCompile>
  712. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\asyncio.cpp">
  713. -      <Filter>cores\DSPlayer\Filters\BaseClassFilters</Filter>
  714. -    </ClCompile>
  715. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\asyncrdr.cpp">
  716. -      <Filter>cores\DSPlayer\Filters\BaseClassFilters</Filter>
  717. -    </ClCompile>
  718. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\FilterCoreFactory\FilterCoreFactory.cpp">
  719. -      <Filter>cores\DSPlayer\FilterCoreFactory</Filter>
  720. -    </ClCompile>
  721. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\FilterCoreFactory\FilterSelectionRule.cpp">
  722. -      <Filter>cores\DSPlayer\FilterCoreFactory</Filter>
  723. -    </ClCompile>
  724. -    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\WinDsRenderer.cpp">
  725. -      <Filter>cores\VideoRenderers</Filter>
  726. -    </ClCompile>
  727. -    <ClCompile Include="..\..\xbmc\video\FFmpegVideoDecoder.cpp" />
  728. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\DSInputStreamPVRManager.cpp">
  729. -      <Filter>cores\DSPlayer</Filter>
  730. -    </ClCompile>
  731. -    <ClCompile Include="..\..\xbmc\cores\DSPlayer\DSPlayerDatabase.cpp">
  732. -      <Filter>cores\DSPlayer</Filter>
  733. -    </ClCompile>
  734. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\ChaptersManager.cpp">
  735. +      <Filter>cores\DSPlayer</Filter>
  736. +    </ClCompile>
  737. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\DSGraph.cpp">
  738. +      <Filter>cores\DSPlayer</Filter>
  739. +    </ClCompile>
  740. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\DSPlayer.cpp">
  741. +      <Filter>cores\DSPlayer</Filter>
  742. +    </ClCompile>
  743. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\DSPropertyPage.cpp">
  744. +      <Filter>cores\DSPlayer</Filter>
  745. +    </ClCompile>
  746. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\FGFilter.cpp">
  747. +      <Filter>cores\DSPlayer</Filter>
  748. +    </ClCompile>
  749. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\FGLoader.cpp">
  750. +      <Filter>cores\DSPlayer</Filter>
  751. +    </ClCompile>
  752. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\FGManager.cpp">
  753. +      <Filter>cores\DSPlayer</Filter>
  754. +    </ClCompile>
  755. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\FGManager2.cpp">
  756. +      <Filter>cores\DSPlayer</Filter>
  757. +    </ClCompile>
  758. +    <ClCompile Include="..\..\xbmc\peripherals\bus\virtual\PeripheralBusCEC.cpp">
  759. +      <Filter>peripherals\bus</Filter>
  760. +    </ClCompile>
  761. +    <ClCompile Include="..\..\xbmc\network\upnp\UPnPSettings.cpp">
  762. +      <Filter>network\upnp</Filter>
  763. +    </ClCompile>
  764. +    <ClCompile Include="..\..\xbmc\AppParamParser.cpp" />
  765. +    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogContentSettings.cpp">
  766. +      <Filter>settings\dialogs</Filter>
  767. +    </ClCompile>
  768. +    <ClCompile Include="..\..\xbmc\settings\dialogs\GUIDialogSettings.cpp">
  769. +      <Filter>settings\dialogs</Filter>
  770. +    </ClCompile>
  771. +    <ClCompile Include="..\..\xbmc\settings\windows\GUISettingControls.cpp">
  772. +      <Filter>settings\windows</Filter>
  773. +    </ClCompile>
  774. +    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettings.cpp">
  775. +      <Filter>settings\windows</Filter>
  776. +    </ClCompile>
  777. +    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettingsCategory.cpp">
  778. +      <Filter>settings\windows</Filter>
  779. +    </ClCompile>
  780. +    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowSettingsScreenCalibration.cpp">
  781. +      <Filter>settings\windows</Filter>
  782. +    </ClCompile>
  783. +    <ClCompile Include="..\..\xbmc\settings\windows\GUIWindowTestPattern.cpp">
  784. +      <Filter>settings\windows</Filter>
  785. +    </ClCompile>
  786. +    <ClCompile Include="..\..\xbmc\utils\RssManager.cpp">
  787. +      <Filter>utils</Filter>
  788. +    </ClCompile>
  789. +    <ClCompile Include="..\..\xbmc\settings\SkinSettings.cpp">
  790. +      <Filter>settings</Filter>
  791. +    </ClCompile>
  792. +    <ClCompile Include="..\..\xbmc\settings\MediaSourceSettings.cpp">
  793. +      <Filter>settings</Filter>
  794. +    </ClCompile>
  795. +    <ClCompile Include="..\..\xbmc\view\ViewStateSettings.cpp">
  796. +      <Filter>view</Filter>
  797. +    </ClCompile>
  798. +    <ClCompile Include="..\..\xbmc\settings\MediaSettings.cpp">
  799. +      <Filter>settings</Filter>
  800. +    </ClCompile>
  801. +    <ClCompile Include="..\..\xbmc\settings\DisplaySettings.cpp">
  802. +      <Filter>settings</Filter>
  803. +    </ClCompile>
  804. +    <ClCompile Include="..\..\xbmc\profiles\dialogs\GUIDialogLockSettings.cpp">
  805. +      <Filter>profiles\dialogs</Filter>
  806. +    </ClCompile>
  807. +    <ClCompile Include="..\..\xbmc\profiles\dialogs\GUIDialogProfileSettings.cpp">
  808. +      <Filter>profiles\dialogs</Filter>
  809. +    </ClCompile>
  810. +    <ClCompile Include="..\..\xbmc\profiles\windows\GUIWindowSettingsProfile.cpp">
  811. +      <Filter>profiles\windows</Filter>
  812. +    </ClCompile>
  813. +    <ClCompile Include="..\..\xbmc\profiles\Profile.cpp">
  814. +      <Filter>profiles</Filter>
  815. +    </ClCompile>
  816. +    <ClCompile Include="..\..\xbmc\profiles\ProfilesManager.cpp">
  817. +      <Filter>profiles</Filter>
  818. +    </ClCompile>
  819. +    <ClCompile Include="..\..\xbmc\input\touch\generic\GenericTouchActionHandler.cpp">
  820. +      <Filter>input\touch\generic</Filter>
  821. +    </ClCompile>
  822. +    <ClCompile Include="..\..\xbmc\input\touch\generic\GenericTouchSwipeDetector.cpp">
  823. +      <Filter>input\touch\generic</Filter>
  824. +    </ClCompile>
  825. +    <ClCompile Include="..\..\xbmc\input\touch\ITouchInputHandling.cpp">
  826. +      <Filter>input\touch</Filter>
  827. +    </ClCompile>
  828. +    <ClCompile Include="..\..\xbmc\utils\Vector.cpp">
  829. +      <Filter>utils</Filter>
  830. +    </ClCompile>
  831. +    <ClCompile Include="..\..\xbmc\video\PlayerController.cpp">
  832. +      <Filter>video</Filter>
  833. +    </ClCompile>
  834. +    <ClCompile Include="..\..\xbmc\filesystem\VideoDatabaseDirectory\DirectoryNodeGrouped.cpp">
  835. +      <Filter>filesystem\VideoDatabaseDirectory</Filter>
  836. +    </ClCompile>
  837. +    <ClCompile Include="..\..\xbmc\filesystem\MusicDatabaseDirectory\DirectoryNodeGrouped.cpp">
  838. +      <Filter>filesystem\MusicDatabaseDirectory</Filter>
  839. +    </ClCompile>
  840. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\GraphFilters.cpp">
  841. +      <Filter>cores\DSPlayer</Filter>
  842. +    </ClCompile>
  843. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\StreamsManager.cpp">
  844. +      <Filter>cores\DSPlayer</Filter>
  845. +    </ClCompile>
  846. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Utils\AudioEnumerator.cpp">
  847. +      <Filter>cores\DSPlayer\Utils</Filter>
  848. +    </ClCompile>
  849. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Utils\DSTemplate.cpp">
  850. +      <Filter>cores\DSPlayer\Utils</Filter>
  851. +    </ClCompile>
  852. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Utils\IPinHook.cpp">
  853. +      <Filter>cores\DSPlayer\Utils</Filter>
  854. +    </ClCompile>
  855. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Utils\MacrovisionKicker.cpp">
  856. +      <Filter>cores\DSPlayer\Utils</Filter>
  857. +    </ClCompile>
  858. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\ExternalPixelShader.cpp">
  859. +      <Filter>cores\DSPlayer\Shaders</Filter>
  860. +    </ClCompile>
  861. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\PixelShaderCompiler.cpp">
  862. +      <Filter>cores\DSPlayer\Shaders</Filter>
  863. +    </ClCompile>
  864. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\PixelShaderList.cpp">
  865. +      <Filter>cores\DSPlayer\Shaders</Filter>
  866. +    </ClCompile>
  867. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\ShadersSelectionRule.cpp">
  868. +      <Filter>cores\DSPlayer\Shaders</Filter>
  869. +    </ClCompile>
  870. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Subtitles\ILogImpl.cpp">
  871. +      <Filter>cores\DSPlayer\Interfaces</Filter>
  872. +    </ClCompile>
  873. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\AllocatorCommon.cpp">
  874. +      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  875. +    </ClCompile>
  876. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\DX9AllocatorPresenter.cpp">
  877. +      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  878. +    </ClCompile>
  879. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\EVRAllocatorPresenter.cpp">
  880. +      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  881. +    </ClCompile>
  882. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\RendererSettings.cpp">
  883. +      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  884. +    </ClCompile>
  885. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\VMR9AllocatorPresenter.cpp">
  886. +      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  887. +    </ClCompile>
  888. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\XBMCFileReader.cpp">
  889. +      <Filter>cores\DSPlayer\Filters\Source</Filter>
  890. +    </ClCompile>
  891. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\XBMCFileSource.cpp">
  892. +      <Filter>cores\DSPlayer\Filters\Source</Filter>
  893. +    </ClCompile>
  894. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Subtitles\decss\CSSauth.cpp">
  895. +      <Filter>cores\DSPlayer\Filters\Include</Filter>
  896. +    </ClCompile>
  897. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Subtitles\decss\CSSscramble.cpp">
  898. +      <Filter>cores\DSPlayer\Filters\Include</Filter>
  899. +    </ClCompile>
  900. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Subtitles\decss\DeCSSInputPin.cpp">
  901. +      <Filter>cores\DSPlayer\Filters\Include</Filter>
  902. +    </ClCompile>
  903. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\asyncio.cpp">
  904. +      <Filter>cores\DSPlayer\Filters\BaseClassFilters</Filter>
  905. +    </ClCompile>
  906. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\asyncrdr.cpp">
  907. +      <Filter>cores\DSPlayer\Filters\BaseClassFilters</Filter>
  908. +    </ClCompile>
  909. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\FilterCoreFactory\FilterCoreFactory.cpp">
  910. +      <Filter>cores\DSPlayer\FilterCoreFactory</Filter>
  911. +    </ClCompile>
  912. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\FilterCoreFactory\FilterSelectionRule.cpp">
  913. +      <Filter>cores\DSPlayer\FilterCoreFactory</Filter>
  914. +    </ClCompile>
  915. +    <ClCompile Include="..\..\xbmc\cores\VideoRenderers\WinDsRenderer.cpp">
  916. +      <Filter>cores\VideoRenderers</Filter>
  917. +    </ClCompile>
  918. +    <ClCompile Include="..\..\xbmc\video\FFmpegVideoDecoder.cpp" />
  919. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\DSInputStreamPVRManager.cpp">
  920. +      <Filter>cores\DSPlayer</Filter>
  921. +    </ClCompile>
  922. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\DSPlayerDatabase.cpp">
  923. +      <Filter>cores\DSPlayer</Filter>
  924. +    </ClCompile>
  925. +    <ClCompile Include="..\..\xbmc\filesystem\DAVCommon.cpp" />
  926. +    <ClCompile Include="..\..\xbmc\filesystem\DAVFile.cpp" />
  927. +    <ClCompile Include="..\..\xbmc\guilib\cximage.cpp" />
  928. +    <ClCompile Include="..\..\xbmc\guilib\imagefactory.cpp" />
  929. +    <ClCompile Include="..\..\xbmc\network\upnp\UPnPPlayer.cpp" />
  930. +    <ClCompile Include="..\..\xbmc\view\GUIViewControl.cpp" />
  931. +    <ClCompile Include="..\..\xbmc\view\GUIViewState.cpp" />
  932. +    <ClCompile Include="..\..\xbmc\view\ViewDatabase.cpp" />
  933. +    <ClCompile Include="..\..\xbmc\cores\DSPlayer\Filters\madVRAllocatorPresenter.cpp">
  934. +      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  935. +    </ClCompile>
  936.    </ItemGroup>
  937.    <ItemGroup>
  938.      <ClInclude Include="..\..\xbmc\win32\pch.h">
  939. @@ -4446,22 +4457,22 @@
  940.        <Filter>settings</Filter>
  941.      </ClInclude>
  942.      <ClInclude Include="..\..\xbmc\storage\AutorunMediaJob.h">
  943. -      <Filter>storage</Filter>
  944. +      <Filter>settings\storage</Filter>
  945.      </ClInclude>
  946.      <ClInclude Include="..\..\xbmc\storage\cdioSupport.h">
  947. -      <Filter>storage</Filter>
  948. +      <Filter>settings\storage</Filter>
  949.      </ClInclude>
  950.      <ClInclude Include="..\..\xbmc\storage\IoSupport.h">
  951. -      <Filter>storage</Filter>
  952. +      <Filter>settings\storage</Filter>
  953.      </ClInclude>
  954.      <ClInclude Include="..\..\xbmc\storage\IStorageProvider.h">
  955. -      <Filter>storage</Filter>
  956. +      <Filter>settings\storage</Filter>
  957.      </ClInclude>
  958.      <ClInclude Include="..\..\xbmc\storage\MediaManager.h">
  959. -      <Filter>storage</Filter>
  960. +      <Filter>settings\storage</Filter>
  961.      </ClInclude>
  962.      <ClInclude Include="..\..\xbmc\storage\windows\Win32StorageProvider.h">
  963. -      <Filter>storage\windows</Filter>
  964. +      <Filter>settings\storage\windows</Filter>
  965.      </ClInclude>
  966.      <ClInclude Include="..\..\xbmc\utils\AlarmClock.h">
  967.        <Filter>utils</Filter>
  968. @@ -5651,9 +5662,9 @@
  969.      <ClInclude Include="..\..\xbmc\network\upnp\UPnPInternal.h">
  970.        <Filter>network\upnp</Filter>
  971.      </ClInclude>
  972. -    <ClInclude Include="..\..\xbmc\network\upnp\UPnPPlayer.h">
  973. -      <Filter>network\upnp</Filter>
  974. -    </ClInclude>
  975. +    <ClInclude Include="..\..\xbmc\network\upnp\UPnPPlayer.h">
  976. +      <Filter>network\upnp</Filter>
  977. +    </ClInclude>
  978.      <ClInclude Include="..\..\xbmc\network\upnp\UPnPRenderer.h">
  979.        <Filter>network\upnp</Filter>
  980.      </ClInclude>
  981. @@ -5825,293 +5836,297 @@
  982.      <ClInclude Include="..\..\xbmc\interfaces\python\PyContext.h">
  983.        <Filter>interfaces\python</Filter>
  984.      </ClInclude>
  985. -    <ClInclude Include="..\..\xbmc\guilib\iimage.h">
  986. -      <Filter>guilib</Filter>
  987. -    </ClInclude>
  988. -    <ClInclude Include="..\..\xbmc\guilib\imagefactory.h">
  989. -      <Filter>guilib</Filter>
  990. -    </ClInclude>
  991. -    <ClInclude Include="..\..\xbmc\guilib\cximage.h">
  992. -      <Filter>guilib</Filter>
  993. -    </ClInclude>
  994. -    <ClInclude Include="..\..\xbmc\music\karaoke\karaokevideobackground.h">
  995. -      <Filter>music\karaoke</Filter>
  996. -    </ClInclude>
  997. -    <ClInclude Include="..\..\xbmc\video\FFmpegVideoDecoder.h">
  998. -      <Filter>video</Filter>
  999. -    </ClInclude>
  1000. -    <ClInclude Include="..\..\xbmc\view\GUIViewControl.h">
  1001. -      <Filter>view</Filter>
  1002. -    </ClInclude>
  1003. -    <ClInclude Include="..\..\xbmc\view\GUIViewState.h">
  1004. -      <Filter>view</Filter>
  1005. -    </ClInclude>
  1006. -    <ClInclude Include="..\..\xbmc\view\ViewDatabase.h">
  1007. -      <Filter>view</Filter>
  1008. -    </ClInclude>
  1009. -    <ClInclude Include="..\..\xbmc\view\ViewState.h">
  1010. -      <Filter>view</Filter>
  1011. -    </ClInclude>
  1012. -    <ClInclude Include="..\..\xbmc\filesystem\DAVFile.h">
  1013. -      <Filter>filesystem</Filter>
  1014. -    </ClInclude>
  1015. -    <ClInclude Include="..\..\xbmc\filesystem\DAVCommon.h">
  1016. -      <Filter>filesystem</Filter>
  1017. -    </ClInclude>
  1018. -    <ClInclude Include="..\..\xbmc\peripherals\bus\virtual\PeripheralBusCEC.h">
  1019. -      <Filter>peripherals\bus</Filter>
  1020. -    </ClInclude>
  1021. -    <ClInclude Include="..\..\xbmc\network\upnp\UPnPSettings.h">
  1022. -      <Filter>network\upnp</Filter>
  1023. -    </ClInclude>
  1024. -    <ClInclude Include="..\..\xbmc\AppParamParser.h" />
  1025. -    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogContentSettings.h">
  1026. -      <Filter>settings\dialogs</Filter>
  1027. -    </ClInclude>
  1028. -    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogSettings.h">
  1029. -      <Filter>settings\dialogs</Filter>
  1030. -    </ClInclude>
  1031. -    <ClInclude Include="..\..\xbmc\settings\windows\GUISettingControls.h">
  1032. -      <Filter>settings\windows</Filter>
  1033. -    </ClInclude>
  1034. -    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettings.h">
  1035. -      <Filter>settings\windows</Filter>
  1036. -    </ClInclude>
  1037. -    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettingsCategory.h">
  1038. -      <Filter>settings\windows</Filter>
  1039. -    </ClInclude>
  1040. -    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettingsScreenCalibration.h">
  1041. -      <Filter>settings\windows</Filter>
  1042. -    </ClInclude>
  1043. -    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowTestPattern.h">
  1044. -      <Filter>settings\windows</Filter>
  1045. -    </ClInclude>
  1046. -    <ClInclude Include="..\..\xbmc\utils\IRssObserver.h">
  1047. -      <Filter>utils</Filter>
  1048. -    </ClInclude>
  1049. -    <ClInclude Include="..\..\xbmc\utils\RssManager.h">
  1050. -      <Filter>utils</Filter>
  1051. -    </ClInclude>    <ClInclude Include="..\..\xbmc\cores\DSPlayer\ChaptersManager.h">
  1052. -      <Filter>cores\DSPlayer</Filter>
  1053. -    </ClInclude>
  1054. -    <ClInclude Include="..\..\xbmc\settings\ISettingsHandler.h">
  1055. -      <Filter>settings</Filter>
  1056. -    </ClInclude>
  1057. -    <ClInclude Include="..\..\xbmc\settings\ISubSettings.h">
  1058. -      <Filter>settings</Filter>
  1059. -    </ClInclude>
  1060. -    <ClInclude Include="..\..\xbmc\settings\SkinSettings.h">
  1061. -      <Filter>settings</Filter>
  1062. -    </ClInclude>
  1063. -    <ClInclude Include="..\..\xbmc\settings\MediaSourceSettings.h">
  1064. -      <Filter>settings</Filter>
  1065. -    </ClInclude>
  1066. -    <ClInclude Include="..\..\xbmc\view\ViewStateSettings.h">
  1067. -      <Filter>view</Filter>
  1068. -    </ClInclude>
  1069. -    <ClInclude Include="..\..\xbmc\settings\MediaSettings.h">
  1070. -      <Filter>settings</Filter>
  1071. -    </ClInclude>
  1072. -    <ClInclude Include="..\..\xbmc\settings\DisplaySettings.h">
  1073. -      <Filter>settings</Filter>
  1074. -    </ClInclude>
  1075. -    <ClInclude Include="..\..\xbmc\profiles\dialogs\GUIDialogLockSettings.h">
  1076. -      <Filter>profiles\dialogs</Filter>
  1077. -    </ClInclude>
  1078. -    <ClInclude Include="..\..\xbmc\profiles\dialogs\GUIDialogProfileSettings.h">
  1079. -      <Filter>profiles\dialogs</Filter>
  1080. -    </ClInclude>
  1081. -    <ClInclude Include="..\..\xbmc\profiles\windows\GUIWindowSettingsProfile.h">
  1082. -      <Filter>profiles\windows</Filter>
  1083. -    </ClInclude>
  1084. -    <ClInclude Include="..\..\xbmc\profiles\Profile.h">
  1085. -      <Filter>profiles</Filter>
  1086. -    </ClInclude>
  1087. -    <ClInclude Include="..\..\xbmc\profiles\ProfilesManager.h">
  1088. -      <Filter>profiles</Filter>
  1089. -    </ClInclude>
  1090. -    <ClInclude Include="..\..\xbmc\input\touch\ITouchActionHandler.h">
  1091. -      <Filter>input\touch</Filter>
  1092. -    </ClInclude>
  1093. -    <ClInclude Include="..\..\xbmc\input\touch\generic\GenericTouchActionHandler.h">
  1094. -      <Filter>input\touch\generic</Filter>
  1095. -    </ClInclude>
  1096. -    <ClInclude Include="..\..\xbmc\input\touch\TouchTypes.h">
  1097. -      <Filter>input\touch</Filter>
  1098. -    </ClInclude>
  1099. -    <ClInclude Include="..\..\xbmc\input\touch\generic\GenericTouchSwipeDetector.h">
  1100. -      <Filter>input\touch\generic</Filter>
  1101. -    </ClInclude>
  1102. -    <ClInclude Include="..\..\xbmc\input\touch\generic\IGenericTouchGestureDetector.h">
  1103. -      <Filter>input\touch\generic</Filter>
  1104. -    </ClInclude>
  1105. -    <ClInclude Include="..\..\xbmc\input\touch\ITouchInputHandler.h">
  1106. -      <Filter>input\touch</Filter>
  1107. -    </ClInclude>
  1108. -    <ClInclude Include="..\..\xbmc\input\touch\ITouchInputHandling.h">
  1109. -      <Filter>input\touch</Filter>
  1110. -    </ClInclude>
  1111. -    <ClInclude Include="..\..\xbmc\utils\Vector.h">
  1112. -      <Filter>utils</Filter>
  1113. -    </ClInclude>
  1114. -    <ClInclude Include="..\..\xbmc\video\PlayerController.h">
  1115. -      <Filter>video</Filter>
  1116. -    </ClInclude>
  1117. -    <ClInclude Include="..\..\xbmc\filesystem\VideoDatabaseDirectory\DirectoryNodeGrouped.h">
  1118. -      <Filter>filesystem\VideoDatabaseDirectory</Filter>
  1119. -    </ClInclude>
  1120. -    <ClInclude Include="..\..\xbmc\filesystem\MusicDatabaseDirectory\DirectoryNodeGrouped.h">
  1121. -      <Filter>filesystem\MusicDatabaseDirectory</Filter>
  1122. -    </ClInclude>
  1123. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\DSGraph.h">
  1124. -      <Filter>cores\DSPlayer</Filter>
  1125. -    </ClInclude>
  1126. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\DSMessage.h">
  1127. -      <Filter>cores\DSPlayer</Filter>
  1128. -    </ClInclude>
  1129. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\DSPlayer.h">
  1130. -      <Filter>cores\DSPlayer</Filter>
  1131. -    </ClInclude>
  1132. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\DSPropertyPage.h">
  1133. -      <Filter>cores\DSPlayer</Filter>
  1134. -    </ClInclude>
  1135. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\FGFilter.h">
  1136. -      <Filter>cores\DSPlayer</Filter>
  1137. -    </ClInclude>
  1138. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\FGLoader.h">
  1139. -      <Filter>cores\DSPlayer</Filter>
  1140. -    </ClInclude>
  1141. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\FGManager.h">
  1142. -      <Filter>cores\DSPlayer</Filter>
  1143. -    </ClInclude>
  1144. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\FGManager2.h">
  1145. -      <Filter>cores\DSPlayer</Filter>
  1146. -    </ClInclude>
  1147. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\GraphFilters.h">
  1148. -      <Filter>cores\DSPlayer</Filter>
  1149. -    </ClInclude>
  1150. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\moreuuids.h">
  1151. -      <Filter>cores\DSPlayer</Filter>
  1152. -    </ClInclude>
  1153. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\StreamsManager.h">
  1154. -      <Filter>cores\DSPlayer</Filter>
  1155. -    </ClInclude>
  1156. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Utils\AudioEnumerator.h">
  1157. -      <Filter>cores\DSPlayer\Utils</Filter>
  1158. -    </ClInclude>
  1159. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Utils\DSTemplate.h">
  1160. -      <Filter>cores\DSPlayer\Utils</Filter>
  1161. -    </ClInclude>
  1162. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Utils\IPinHook.h">
  1163. -      <Filter>cores\DSPlayer\Utils</Filter>
  1164. -    </ClInclude>
  1165. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Utils\MacrovisionKicker.h">
  1166. -      <Filter>cores\DSPlayer\Utils</Filter>
  1167. -    </ClInclude>
  1168. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Utils\SmartList.h">
  1169. -      <Filter>cores\DSPlayer\Utils</Filter>
  1170. -    </ClInclude>
  1171. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\ExternalPixelShader.h">
  1172. -      <Filter>cores\DSPlayer\Shaders</Filter>
  1173. -    </ClInclude>
  1174. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\PixelShaderCompiler.h">
  1175. -      <Filter>cores\DSPlayer\Shaders</Filter>
  1176. -    </ClInclude>
  1177. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\PixelShaderList.h">
  1178. -      <Filter>cores\DSPlayer\Shaders</Filter>
  1179. -    </ClInclude>
  1180. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\ShadersSelectionRule.h">
  1181. -      <Filter>cores\DSPlayer\Shaders</Filter>
  1182. -    </ClInclude>
  1183. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\ffdshow_constants.h">
  1184. -      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1185. -    </ClInclude>
  1186. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffDecoder.h">
  1187. -      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1188. -    </ClInclude>
  1189. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowBase.h">
  1190. -      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1191. -    </ClInclude>
  1192. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowDec.h">
  1193. -      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1194. -    </ClInclude>
  1195. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowDecAudio.h">
  1196. -      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1197. -    </ClInclude>
  1198. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowDecVideo.h">
  1199. -      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1200. -    </ClInclude>
  1201. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowEnc.h">
  1202. -      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1203. -    </ClInclude>
  1204. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowParamsEnum.h">
  1205. -      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1206. -    </ClInclude>
  1207. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Subtitles\DllLibSubs.h">
  1208. -      <Filter>cores\DSPlayer\Interfaces</Filter>
  1209. -    </ClInclude>
  1210. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Subtitles\ILogImpl.h">
  1211. -      <Filter>cores\DSPlayer\Interfaces</Filter>
  1212. -    </ClInclude>
  1213. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\AllocatorCommon.h">
  1214. -      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  1215. -    </ClInclude>
  1216. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\DX9AllocatorPresenter.h">
  1217. -      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  1218. -    </ClInclude>
  1219. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\EVRAllocatorPresenter.h">
  1220. -      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  1221. -    </ClInclude>
  1222. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\RendererSettings.h">
  1223. -      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  1224. -    </ClInclude>
  1225. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\VMR9AllocatorPresenter.h">
  1226. -      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  1227. -    </ClInclude>
  1228. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\XBMCFileReader.h">
  1229. -      <Filter>cores\DSPlayer\Filters\Source</Filter>
  1230. -    </ClInclude>
  1231. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\XBMCFileSource.h">
  1232. -      <Filter>cores\DSPlayer\Filters\Source</Filter>
  1233. -    </ClInclude>
  1234. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Subtitles\decss\CSSauth.h">
  1235. -      <Filter>cores\DSPlayer\Filters\Include</Filter>
  1236. -    </ClInclude>
  1237. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Subtitles\decss\CSSscramble.h">
  1238. -      <Filter>cores\DSPlayer\Filters\Include</Filter>
  1239. -    </ClInclude>
  1240. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Subtitles\decss\DeCSSInputPin.h">
  1241. -      <Filter>cores\DSPlayer\Filters\Include</Filter>
  1242. -    </ClInclude>
  1243. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\asyncio.h">
  1244. -      <Filter>cores\DSPlayer\Filters\BaseClassFilters</Filter>
  1245. -    </ClInclude>
  1246. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\asyncrdr.h">
  1247. -      <Filter>cores\DSPlayer\Filters\BaseClassFilters</Filter>
  1248. -    </ClInclude>
  1249. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\FilterCoreFactory\FilterCoreFactory.h">
  1250. -      <Filter>cores\DSPlayer\FilterCoreFactory</Filter>
  1251. -    </ClInclude>
  1252. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\FilterCoreFactory\FilterSelectionRule.h">
  1253. -      <Filter>cores\DSPlayer\FilterCoreFactory</Filter>
  1254. -    </ClInclude>
  1255. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\FilterCoreFactory\GlobalFilterSelectionRule.h">
  1256. -      <Filter>cores\DSPlayer\FilterCoreFactory</Filter>
  1257. -    </ClInclude>
  1258. -    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\WinBaseRenderer.h">
  1259. -      <Filter>cores\VideoRenderers</Filter>
  1260. -    </ClInclude>
  1261. -    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\WinDsRenderer.h">
  1262. -      <Filter>cores\VideoRenderers</Filter>
  1263. -    </ClInclude>
  1264. -    <ClInclude Include="..\..\xbmc\music\karaoke\karaokevideobackground.h" />
  1265. -    <ClInclude Include="..\..\xbmc\video\FFmpegVideoDecoder.h" />
  1266. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\DSInputStreamPVRManager.h">
  1267. -      <Filter>cores\DSPlayer</Filter>
  1268. -    </ClInclude>
  1269. -    <ClInclude Include="..\..\xbmc\cores\DSPlayer\DSPlayerDatabase.h">
  1270. -      <Filter>cores\DSPlayer</Filter>
  1271. -    </ClInclude>
  1272. +    <ClInclude Include="..\..\xbmc\guilib\iimage.h">
  1273. +      <Filter>guilib</Filter>
  1274. +    </ClInclude>
  1275. +    <ClInclude Include="..\..\xbmc\guilib\imagefactory.h">
  1276. +      <Filter>guilib</Filter>
  1277. +    </ClInclude>
  1278. +    <ClInclude Include="..\..\xbmc\guilib\cximage.h">
  1279. +      <Filter>guilib</Filter>
  1280. +    </ClInclude>
  1281. +    <ClInclude Include="..\..\xbmc\music\karaoke\karaokevideobackground.h">
  1282. +      <Filter>music\karaoke</Filter>
  1283. +    </ClInclude>
  1284. +    <ClInclude Include="..\..\xbmc\video\FFmpegVideoDecoder.h">
  1285. +      <Filter>video</Filter>
  1286. +    </ClInclude>
  1287. +    <ClInclude Include="..\..\xbmc\view\GUIViewControl.h">
  1288. +      <Filter>view</Filter>
  1289. +    </ClInclude>
  1290. +    <ClInclude Include="..\..\xbmc\view\GUIViewState.h">
  1291. +      <Filter>view</Filter>
  1292. +    </ClInclude>
  1293. +    <ClInclude Include="..\..\xbmc\view\ViewDatabase.h">
  1294. +      <Filter>view</Filter>
  1295. +    </ClInclude>
  1296. +    <ClInclude Include="..\..\xbmc\view\ViewState.h">
  1297. +      <Filter>view</Filter>
  1298. +    </ClInclude>
  1299. +    <ClInclude Include="..\..\xbmc\filesystem\DAVFile.h">
  1300. +      <Filter>filesystem</Filter>
  1301. +    </ClInclude>
  1302. +    <ClInclude Include="..\..\xbmc\filesystem\DAVCommon.h">
  1303. +      <Filter>filesystem</Filter>
  1304. +    </ClInclude>
  1305. +    <ClInclude Include="..\..\xbmc\peripherals\bus\virtual\PeripheralBusCEC.h">
  1306. +      <Filter>peripherals\bus</Filter>
  1307. +    </ClInclude>
  1308. +    <ClInclude Include="..\..\xbmc\network\upnp\UPnPSettings.h">
  1309. +      <Filter>network\upnp</Filter>
  1310. +    </ClInclude>
  1311. +    <ClInclude Include="..\..\xbmc\AppParamParser.h" />
  1312. +    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogContentSettings.h">
  1313. +      <Filter>settings\dialogs</Filter>
  1314. +    </ClInclude>
  1315. +    <ClInclude Include="..\..\xbmc\settings\dialogs\GUIDialogSettings.h">
  1316. +      <Filter>settings\dialogs</Filter>
  1317. +    </ClInclude>
  1318. +    <ClInclude Include="..\..\xbmc\settings\windows\GUISettingControls.h">
  1319. +      <Filter>settings\windows</Filter>
  1320. +    </ClInclude>
  1321. +    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettings.h">
  1322. +      <Filter>settings\windows</Filter>
  1323. +    </ClInclude>
  1324. +    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettingsCategory.h">
  1325. +      <Filter>settings\windows</Filter>
  1326. +    </ClInclude>
  1327. +    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowSettingsScreenCalibration.h">
  1328. +      <Filter>settings\windows</Filter>
  1329. +    </ClInclude>
  1330. +    <ClInclude Include="..\..\xbmc\settings\windows\GUIWindowTestPattern.h">
  1331. +      <Filter>settings\windows</Filter>
  1332. +    </ClInclude>
  1333. +    <ClInclude Include="..\..\xbmc\utils\IRssObserver.h">
  1334. +      <Filter>utils</Filter>
  1335. +    </ClInclude>
  1336. +    <ClInclude Include="..\..\xbmc\utils\RssManager.h">
  1337. +      <Filter>utils</Filter>
  1338. +    </ClInclude>
  1339. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\ChaptersManager.h">
  1340. +      <Filter>cores\DSPlayer</Filter>
  1341. +    </ClInclude>
  1342. +    <ClInclude Include="..\..\xbmc\settings\ISettingsHandler.h">
  1343. +      <Filter>settings</Filter>
  1344. +    </ClInclude>
  1345. +    <ClInclude Include="..\..\xbmc\settings\ISubSettings.h">
  1346. +      <Filter>settings</Filter>
  1347. +    </ClInclude>
  1348. +    <ClInclude Include="..\..\xbmc\settings\SkinSettings.h">
  1349. +      <Filter>settings</Filter>
  1350. +    </ClInclude>
  1351. +    <ClInclude Include="..\..\xbmc\settings\MediaSourceSettings.h">
  1352. +      <Filter>settings</Filter>
  1353. +    </ClInclude>
  1354. +    <ClInclude Include="..\..\xbmc\view\ViewStateSettings.h">
  1355. +      <Filter>view</Filter>
  1356. +    </ClInclude>
  1357. +    <ClInclude Include="..\..\xbmc\settings\MediaSettings.h">
  1358. +      <Filter>settings</Filter>
  1359. +    </ClInclude>
  1360. +    <ClInclude Include="..\..\xbmc\settings\DisplaySettings.h">
  1361. +      <Filter>settings</Filter>
  1362. +    </ClInclude>
  1363. +    <ClInclude Include="..\..\xbmc\profiles\dialogs\GUIDialogLockSettings.h">
  1364. +      <Filter>profiles\dialogs</Filter>
  1365. +    </ClInclude>
  1366. +    <ClInclude Include="..\..\xbmc\profiles\dialogs\GUIDialogProfileSettings.h">
  1367. +      <Filter>profiles\dialogs</Filter>
  1368. +    </ClInclude>
  1369. +    <ClInclude Include="..\..\xbmc\profiles\windows\GUIWindowSettingsProfile.h">
  1370. +      <Filter>profiles\windows</Filter>
  1371. +    </ClInclude>
  1372. +    <ClInclude Include="..\..\xbmc\profiles\Profile.h">
  1373. +      <Filter>profiles</Filter>
  1374. +    </ClInclude>
  1375. +    <ClInclude Include="..\..\xbmc\profiles\ProfilesManager.h">
  1376. +      <Filter>profiles</Filter>
  1377. +    </ClInclude>
  1378. +    <ClInclude Include="..\..\xbmc\input\touch\ITouchActionHandler.h">
  1379. +      <Filter>input\touch</Filter>
  1380. +    </ClInclude>
  1381. +    <ClInclude Include="..\..\xbmc\input\touch\generic\GenericTouchActionHandler.h">
  1382. +      <Filter>input\touch\generic</Filter>
  1383. +    </ClInclude>
  1384. +    <ClInclude Include="..\..\xbmc\input\touch\TouchTypes.h">
  1385. +      <Filter>input\touch</Filter>
  1386. +    </ClInclude>
  1387. +    <ClInclude Include="..\..\xbmc\input\touch\generic\GenericTouchSwipeDetector.h">
  1388. +      <Filter>input\touch\generic</Filter>
  1389. +    </ClInclude>
  1390. +    <ClInclude Include="..\..\xbmc\input\touch\generic\IGenericTouchGestureDetector.h">
  1391. +      <Filter>input\touch\generic</Filter>
  1392. +    </ClInclude>
  1393. +    <ClInclude Include="..\..\xbmc\input\touch\ITouchInputHandler.h">
  1394. +      <Filter>input\touch</Filter>
  1395. +    </ClInclude>
  1396. +    <ClInclude Include="..\..\xbmc\input\touch\ITouchInputHandling.h">
  1397. +      <Filter>input\touch</Filter>
  1398. +    </ClInclude>
  1399. +    <ClInclude Include="..\..\xbmc\utils\Vector.h">
  1400. +      <Filter>utils</Filter>
  1401. +    </ClInclude>
  1402. +    <ClInclude Include="..\..\xbmc\video\PlayerController.h">
  1403. +      <Filter>video</Filter>
  1404. +    </ClInclude>
  1405. +    <ClInclude Include="..\..\xbmc\filesystem\VideoDatabaseDirectory\DirectoryNodeGrouped.h">
  1406. +      <Filter>filesystem\VideoDatabaseDirectory</Filter>
  1407. +    </ClInclude>
  1408. +    <ClInclude Include="..\..\xbmc\filesystem\MusicDatabaseDirectory\DirectoryNodeGrouped.h">
  1409. +      <Filter>filesystem\MusicDatabaseDirectory</Filter>
  1410. +    </ClInclude>
  1411. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\DSGraph.h">
  1412. +      <Filter>cores\DSPlayer</Filter>
  1413. +    </ClInclude>
  1414. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\DSMessage.h">
  1415. +      <Filter>cores\DSPlayer</Filter>
  1416. +    </ClInclude>
  1417. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\DSPlayer.h">
  1418. +      <Filter>cores\DSPlayer</Filter>
  1419. +    </ClInclude>
  1420. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\DSPropertyPage.h">
  1421. +      <Filter>cores\DSPlayer</Filter>
  1422. +    </ClInclude>
  1423. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\FGFilter.h">
  1424. +      <Filter>cores\DSPlayer</Filter>
  1425. +    </ClInclude>
  1426. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\FGLoader.h">
  1427. +      <Filter>cores\DSPlayer</Filter>
  1428. +    </ClInclude>
  1429. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\FGManager.h">
  1430. +      <Filter>cores\DSPlayer</Filter>
  1431. +    </ClInclude>
  1432. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\FGManager2.h">
  1433. +      <Filter>cores\DSPlayer</Filter>
  1434. +    </ClInclude>
  1435. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\GraphFilters.h">
  1436. +      <Filter>cores\DSPlayer</Filter>
  1437. +    </ClInclude>
  1438. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\moreuuids.h">
  1439. +      <Filter>cores\DSPlayer</Filter>
  1440. +    </ClInclude>
  1441. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\StreamsManager.h">
  1442. +      <Filter>cores\DSPlayer</Filter>
  1443. +    </ClInclude>
  1444. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Utils\AudioEnumerator.h">
  1445. +      <Filter>cores\DSPlayer\Utils</Filter>
  1446. +    </ClInclude>
  1447. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Utils\DSTemplate.h">
  1448. +      <Filter>cores\DSPlayer\Utils</Filter>
  1449. +    </ClInclude>
  1450. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Utils\IPinHook.h">
  1451. +      <Filter>cores\DSPlayer\Utils</Filter>
  1452. +    </ClInclude>
  1453. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Utils\MacrovisionKicker.h">
  1454. +      <Filter>cores\DSPlayer\Utils</Filter>
  1455. +    </ClInclude>
  1456. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Utils\SmartList.h">
  1457. +      <Filter>cores\DSPlayer\Utils</Filter>
  1458. +    </ClInclude>
  1459. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\ExternalPixelShader.h">
  1460. +      <Filter>cores\DSPlayer\Shaders</Filter>
  1461. +    </ClInclude>
  1462. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\PixelShaderCompiler.h">
  1463. +      <Filter>cores\DSPlayer\Shaders</Filter>
  1464. +    </ClInclude>
  1465. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\PixelShaderList.h">
  1466. +      <Filter>cores\DSPlayer\Shaders</Filter>
  1467. +    </ClInclude>
  1468. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\ShadersSelectionRule.h">
  1469. +      <Filter>cores\DSPlayer\Shaders</Filter>
  1470. +    </ClInclude>
  1471. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\ffdshow_constants.h">
  1472. +      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1473. +    </ClInclude>
  1474. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffDecoder.h">
  1475. +      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1476. +    </ClInclude>
  1477. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowBase.h">
  1478. +      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1479. +    </ClInclude>
  1480. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowDec.h">
  1481. +      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1482. +    </ClInclude>
  1483. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowDecAudio.h">
  1484. +      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1485. +    </ClInclude>
  1486. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowDecVideo.h">
  1487. +      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1488. +    </ClInclude>
  1489. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowEnc.h">
  1490. +      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1491. +    </ClInclude>
  1492. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\IffdshowParamsEnum.h">
  1493. +      <Filter>cores\DSPlayer\Interfaces\ffdshow</Filter>
  1494. +    </ClInclude>
  1495. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Subtitles\DllLibSubs.h">
  1496. +      <Filter>cores\DSPlayer\Interfaces</Filter>
  1497. +    </ClInclude>
  1498. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Subtitles\ILogImpl.h">
  1499. +      <Filter>cores\DSPlayer\Interfaces</Filter>
  1500. +    </ClInclude>
  1501. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\AllocatorCommon.h">
  1502. +      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  1503. +    </ClInclude>
  1504. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\DX9AllocatorPresenter.h">
  1505. +      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  1506. +    </ClInclude>
  1507. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\EVRAllocatorPresenter.h">
  1508. +      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  1509. +    </ClInclude>
  1510. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\RendererSettings.h">
  1511. +      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  1512. +    </ClInclude>
  1513. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\VMR9AllocatorPresenter.h">
  1514. +      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  1515. +    </ClInclude>
  1516. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\XBMCFileReader.h">
  1517. +      <Filter>cores\DSPlayer\Filters\Source</Filter>
  1518. +    </ClInclude>
  1519. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\XBMCFileSource.h">
  1520. +      <Filter>cores\DSPlayer\Filters\Source</Filter>
  1521. +    </ClInclude>
  1522. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Subtitles\decss\CSSauth.h">
  1523. +      <Filter>cores\DSPlayer\Filters\Include</Filter>
  1524. +    </ClInclude>
  1525. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Subtitles\decss\CSSscramble.h">
  1526. +      <Filter>cores\DSPlayer\Filters\Include</Filter>
  1527. +    </ClInclude>
  1528. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Subtitles\decss\DeCSSInputPin.h">
  1529. +      <Filter>cores\DSPlayer\Filters\Include</Filter>
  1530. +    </ClInclude>
  1531. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\asyncio.h">
  1532. +      <Filter>cores\DSPlayer\Filters\BaseClassFilters</Filter>
  1533. +    </ClInclude>
  1534. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\asyncrdr.h">
  1535. +      <Filter>cores\DSPlayer\Filters\BaseClassFilters</Filter>
  1536. +    </ClInclude>
  1537. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\FilterCoreFactory\FilterCoreFactory.h">
  1538. +      <Filter>cores\DSPlayer\FilterCoreFactory</Filter>
  1539. +    </ClInclude>
  1540. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\FilterCoreFactory\FilterSelectionRule.h">
  1541. +      <Filter>cores\DSPlayer\FilterCoreFactory</Filter>
  1542. +    </ClInclude>
  1543. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\FilterCoreFactory\GlobalFilterSelectionRule.h">
  1544. +      <Filter>cores\DSPlayer\FilterCoreFactory</Filter>
  1545. +    </ClInclude>
  1546. +    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\WinBaseRenderer.h">
  1547. +      <Filter>cores\VideoRenderers</Filter>
  1548. +    </ClInclude>
  1549. +    <ClInclude Include="..\..\xbmc\cores\VideoRenderers\WinDsRenderer.h">
  1550. +      <Filter>cores\VideoRenderers</Filter>
  1551. +    </ClInclude>
  1552. +    <ClInclude Include="..\..\xbmc\music\karaoke\karaokevideobackground.h" />
  1553. +    <ClInclude Include="..\..\xbmc\video\FFmpegVideoDecoder.h" />
  1554. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\DSInputStreamPVRManager.h">
  1555. +      <Filter>cores\DSPlayer</Filter>
  1556. +    </ClInclude>
  1557. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\DSPlayerDatabase.h">
  1558. +      <Filter>cores\DSPlayer</Filter>
  1559. +    </ClInclude>
  1560. +    <ClInclude Include="..\..\xbmc\cores\DSPlayer\Filters\madVRAllocatorPresenter.h">
  1561. +      <Filter>cores\DSPlayer\Filters\Video Renderers</Filter>
  1562. +    </ClInclude>
  1563.    </ItemGroup>
  1564.    <ItemGroup>
  1565.      <ResourceCompile Include="..\..\xbmc\win32\XBMC_PC.rc">
  1566. @@ -6152,4 +6167,4 @@
  1567.        <Filter>cores\DSPlayer\FilterCoreFactory</Filter>
  1568.      </None>
  1569.    </ItemGroup>
  1570. -</Project>
  1571. +</Project>
  1572. \ No newline at end of file
  1573. diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
  1574. index 3da5771..485b7b6 100644
  1575. --- a/xbmc/Application.cpp
  1576. +++ b/xbmc/Application.cpp
  1577. @@ -258,6 +258,7 @@
  1578.  #endif
  1579.  #ifdef HAS_DS_PLAYER
  1580.  #include "cores/DSPlayer/GUIDialogShaderList.h"
  1581. +#include "cores/DSPlayer/GraphFilters.h"
  1582.  #endif
  1583.  /* PVR related include Files */
  1584.  #include "pvr/PVRManager.h"
  1585. @@ -2369,6 +2370,11 @@ void CApplication::Render()
  1586.      return;
  1587.  
  1588.    MEASURE_FUNCTION;
  1589. +  
  1590. +  /*MADVR*/
  1591. +  if (CGraphFilters::Get()->UsingMadVr())
  1592. +    return;
  1593. +
  1594.  
  1595.    int vsync_mode = g_guiSettings.GetInt("videoscreen.vsync");
  1596.  
  1597. @@ -2444,6 +2450,15 @@ void CApplication::Render()
  1598.    else if (vsync_mode != VSYNC_DRIVER)
  1599.      g_Windowing.SetVSync(false);
  1600.  
  1601. +  /*MADVR*/
  1602. +  if ( g_application.GetCurrentPlayer() == PCID_DSPLAYER )
  1603. +  {
  1604. +    if (CGraphFilters::Get()->GetCurrentRenderer() == DIRECTSHOW_RENDERER_MADVR)
  1605. +      if (CGraphFilters::Get()->GetMadvrCallback() != NULL)
  1606. +        CGraphFilters::Get()->GetMadvrCallback()->IsReady();
  1607. +  }
  1608. +  /*MADVR*/
  1609. +
  1610.    if(!g_Windowing.BeginRender())
  1611.      return;
  1612.  
  1613. @@ -2453,6 +2468,15 @@ void CApplication::Render()
  1614.  
  1615.    g_Windowing.EndRender();
  1616.  
  1617. +  /*MADVR*/
  1618. +  if ( g_application.GetCurrentPlayer() == PCID_DSPLAYER )
  1619. +  {
  1620. +    if (CGraphFilters::Get()->GetCurrentRenderer() == DIRECTSHOW_RENDERER_MADVR)
  1621. +      if (CGraphFilters::Get()->GetMadvrCallback() != NULL)
  1622. +        CGraphFilters::Get()->GetMadvrCallback()->StartBack();
  1623. +  }
  1624. +  /*MADVR*/
  1625. +
  1626.    // execute post rendering actions (finalize window closing)
  1627.    g_windowManager.AfterRender();
  1628.  
  1629. @@ -2486,9 +2510,18 @@ void CApplication::Render()
  1630.    }
  1631.    m_lastFrameTime = XbmcThreads::SystemClockMillis();
  1632.  
  1633. -  if (flip)
  1634. -    g_graphicsContext.Flip(dirtyRegions);
  1635. -  CTimeUtils::UpdateFrameTime(flip);
  1636. +  /*MADVR*/
  1637. +  if ((CGraphFilters::Get()->GetCurrentRenderer() == DIRECTSHOW_RENDERER_MADVR)&&(CGraphFilters::Get()->GetMadvrCallback() != NULL))
  1638. +  {
  1639. +  }
  1640. +  else
  1641. +  {
  1642. +    if (flip)
  1643. +      g_graphicsContext.Flip(dirtyRegions);
  1644. +  }
  1645. +
  1646. +  
  1647. +    CTimeUtils::UpdateFrameTime(flip);
  1648.  
  1649.    g_renderManager.UpdateResolution();
  1650.    g_renderManager.ManageCaptures();
  1651. diff --git a/xbmc/cores/DSPlayer/FGFilter.cpp b/xbmc/cores/DSPlayer/FGFilter.cpp
  1652. index 5bb266a..e4248c0 100644
  1653. --- a/xbmc/cores/DSPlayer/FGFilter.cpp
  1654. +++ b/xbmc/cores/DSPlayer/FGFilter.cpp
  1655. @@ -33,6 +33,7 @@
  1656.  
  1657.  #include "Filters/VMR9AllocatorPresenter.h"
  1658.  #include "Filters/EVRAllocatorPresenter.h"
  1659. +#include "Filters/madVRAllocatorPresenter.h"
  1660.  #include "windowing/WindowingFactory.h"
  1661.  #include "utils/log.h"
  1662.  #include "utils/charsetconverter.h"
  1663. @@ -362,8 +363,10 @@ CFGFilterFile::CFGFilterFile( TiXmlElement *pFilter )
  1664.                 }
  1665.      }
  1666.    }
  1667. -
  1668. -  m_path = m_filterFound ?  _P(m_path) : GetFilterPath(clsid);
  1669. +  CStdString newpath;
  1670. +  /*always convert to CStdStringA when needed*/
  1671. +  g_charsetConverter.wToUTF8(GetFilterPath(clsid),newpath);
  1672. +  m_path = m_filterFound ?  _P(m_path) : newpath;
  1673.  
  1674.    // Call super constructor
  1675.    m_clsid = clsid;
  1676. @@ -454,7 +457,8 @@ HRESULT CFGFilterVideoRenderer::Create(IBaseFilter** ppBF)
  1677.      CreateAP9(m_clsid, g_hWnd, &pCAP);
  1678.    else if (m_clsid == CLSID_EVRAllocatorPresenter)
  1679.      CreateEVR(m_clsid, g_hWnd, &pCAP);
  1680. -
  1681. +  else if (m_clsid == CLSID_madVR)
  1682. +    CreateMadVR(m_clsid, g_hWnd, &pCAP);
  1683.    if(pCAP == NULL)
  1684.    {
  1685.      CLog::Log(LOGERROR, "%s Failed to create the allocater presenter (error: %s)", __FUNCTION__, __err.c_str());
  1686. diff --git a/xbmc/cores/DSPlayer/FGLoader.cpp b/xbmc/cores/DSPlayer/FGLoader.cpp
  1687. index 360f3bc..1f7e05d 100644
  1688. --- a/xbmc/cores/DSPlayer/FGLoader.cpp
  1689. +++ b/xbmc/cores/DSPlayer/FGLoader.cpp
  1690. @@ -44,6 +44,7 @@
  1691.  #include "filters/XBMCFileSource.h"
  1692.  #include "filters/VMR9AllocatorPresenter.h"
  1693.  #include "filters/EVRAllocatorPresenter.h"
  1694. +#include "Filters/madVRAllocatorPresenter.h"
  1695.  
  1696.  #include "Utils/AudioEnumerator.h"
  1697.  #include "DVDFileInfo.h"
  1698. @@ -338,16 +339,21 @@ HRESULT CFGLoader::InsertVideoRenderer()
  1699.        CGraphFilters::Get()->SetCurrentRenderer(DIRECTSHOW_RENDERER_VMR9);
  1700.    }    
  1701.  
  1702. +
  1703. +  /*TEMP MADVR*/
  1704. +  CGraphFilters::Get()->SetCurrentRenderer(DIRECTSHOW_RENDERER_MADVR);
  1705. +
  1706.    // Renderers
  1707.    if (CGraphFilters::Get()->GetCurrentRenderer() == DIRECTSHOW_RENDERER_EVR)
  1708.    {
  1709.      m_pFGF = new CFGFilterVideoRenderer(CLSID_EVRAllocatorPresenter, L"Xbmc EVR");
  1710.    }
  1711. -  else
  1712. +  else if(CGraphFilters::Get()->GetCurrentRenderer() == DIRECTSHOW_RENDERER_VMR9)
  1713.    {
  1714.      m_pFGF = new CFGFilterVideoRenderer(CLSID_VMR9AllocatorPresenter, L"Xbmc VMR9");
  1715.    }
  1716. -
  1717. +  else if (CGraphFilters::Get()->GetCurrentRenderer() == DIRECTSHOW_RENDERER_MADVR)
  1718. +    m_pFGF = new CFGFilterVideoRenderer(CLSID_madVR, L"MADVR");
  1719.    
  1720.    hr = m_pFGF->Create( &CGraphFilters::Get()->VideoRenderer.pBF);
  1721.    if (FAILED(hr))
  1722. diff --git a/xbmc/cores/DSPlayer/FGLoader.h b/xbmc/cores/DSPlayer/FGLoader.h
  1723. index 0fb1a0c..88ea43f 100644
  1724. --- a/xbmc/cores/DSPlayer/FGLoader.h
  1725. +++ b/xbmc/cores/DSPlayer/FGLoader.h
  1726. @@ -37,7 +37,7 @@ enum ESettingsType
  1727.    MEDIAS,
  1728.    FILTERS
  1729.  };
  1730. -
  1731. +struct SFilterInfos;
  1732.  class CFGLoader : public CCriticalSection
  1733.  {
  1734.  public:
  1735. diff --git a/xbmc/cores/DSPlayer/Filters/AllocatorCommon.cpp b/xbmc/cores/DSPlayer/Filters/AllocatorCommon.cpp
  1736. index 0f951a9..9b76776 100644
  1737. --- a/xbmc/cores/DSPlayer/Filters/AllocatorCommon.cpp
  1738. +++ b/xbmc/cores/DSPlayer/Filters/AllocatorCommon.cpp
  1739. @@ -31,7 +31,7 @@
  1740.  #include "AllocatorCommon.h"
  1741.  #include "VMR9AllocatorPresenter.h"
  1742.  #include "EVRAllocatorPresenter.h"
  1743. -
  1744. +#include "madVRAllocatorPresenter.h"
  1745.  bool IsVMR9InGraph(IFilterGraph* pFG)
  1746.  {
  1747.    BeginEnumFilters(pFG, pEF, pBF)
  1748. @@ -101,6 +101,32 @@ HRESULT CreateEVR(const CLSID& clsid, HWND hWnd, ISubPicAllocatorPresenter** ppA
  1749.    return hr;
  1750.  }
  1751.  
  1752. +HRESULT CreateMadVR(const CLSID& clsid, HWND hWnd, ISubPicAllocatorPresenter** ppAP)
  1753. +{
  1754. +  HRESULT    hr = E_FAIL;
  1755. +  if (clsid == CLSID_madVR)
  1756. +  {
  1757. +    CStdString Error;
  1758. +    *ppAP  = DNew CmadVRAllocatorPresenter(hWnd, hr, Error);
  1759. +    (*ppAP)->AddRef();
  1760. +
  1761. +    if(FAILED(hr))
  1762. +    {
  1763. +      Error += "\n";
  1764. +      Error += GetWindowsErrorMessage(hr, NULL);
  1765. +      CLog::Log(LOGERROR, "%s %s", __FUNCTION__, Error.c_str());
  1766. +      (*ppAP)->Release();
  1767. +      *ppAP = NULL;
  1768. +    }
  1769. +    else if (!Error.IsEmpty())
  1770. +    {
  1771. +      CLog::Log(LOGWARNING, "%s %s", __FUNCTION__, Error.c_str());
  1772. +    }
  1773. +  }
  1774. +
  1775. +  return hr;
  1776. +}
  1777. +
  1778.  CStdString GetWindowsErrorMessage(HRESULT _Error, HMODULE _Module)
  1779.  {
  1780.  
  1781. diff --git a/xbmc/cores/DSPlayer/Filters/AllocatorCommon.h b/xbmc/cores/DSPlayer/Filters/AllocatorCommon.h
  1782. index 70413b6..42fc93d 100644
  1783. --- a/xbmc/cores/DSPlayer/Filters/AllocatorCommon.h
  1784. +++ b/xbmc/cores/DSPlayer/Filters/AllocatorCommon.h
  1785. @@ -56,3 +56,4 @@ extern const char *GetD3DFormatStr(D3DFORMAT Format);
  1786.  
  1787.  extern HRESULT CreateAP9(const CLSID& clsid, HWND hWnd, ISubPicAllocatorPresenter** ppAP);
  1788.  extern HRESULT CreateEVR(const CLSID& clsid, HWND hWnd, ISubPicAllocatorPresenter** ppAP);
  1789. +extern HRESULT CreateMadVR(const CLSID& clsid, HWND hWnd, ISubPicAllocatorPresenter** ppAP);
  1790. \ No newline at end of file
  1791. diff --git a/xbmc/cores/DSPlayer/Filters/madVRAllocatorPresenter.cpp b/xbmc/cores/DSPlayer/Filters/madVRAllocatorPresenter.cpp
  1792. new file mode 100644
  1793. index 0000000..237218d
  1794. --- /dev/null
  1795. +++ b/xbmc/cores/DSPlayer/Filters/madVRAllocatorPresenter.cpp
  1796. @@ -0,0 +1,278 @@
  1797. +/*
  1798. + *  Copyright (C) 2011 Team XBMC
  1799. + *  http://www.xbmc.org
  1800. + *
  1801. + *  This Program is free software; you can redistribute it and/or modify
  1802. + *  it under the terms of the GNU General Public License as published by
  1803. + *  the Free Software Foundation; either version 2, or (at your option)
  1804. + *  any later version.
  1805. + *  
  1806. + *  This Program is distributed in the hope that it will be useful,
  1807. + *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  1808. + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  1809. + *  GNU General Public License for more details.
  1810. + *  
  1811. + *  You should have received a copy of the GNU General Public License
  1812. + *  along with GNU Make; see the file COPYING.  If not, write to
  1813. + *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  1814. + *  http://www.gnu.org/copyleft/gpl.html
  1815. + *
  1816. + */
  1817. +
  1818. +#ifdef HAS_DS_PLAYER
  1819. +#include "madVRAllocatorPresenter.h"
  1820. +#include "windowing/WindowingFactory.h"
  1821. +#include <moreuuids.h>
  1822. +#include "RendererSettings.h"
  1823. +#include "Application.h"
  1824. +#include "cores/VideoRenderers/RenderManager.h"
  1825. +#include "../DSPlayer.h"
  1826. +//
  1827. +// CmadVRAllocatorPresenter
  1828. +//
  1829. +
  1830. +CmadVRAllocatorPresenter::CmadVRAllocatorPresenter(HWND hWnd, HRESULT& hr, CStdString &_Error)
  1831. +  : ISubPicAllocatorPresenterImpl(hWnd, hr)
  1832. +  , m_ScreenSize(0, 0)
  1833. +{
  1834. +  if(FAILED(hr)) {
  1835. +    _Error += L"ISubPicAllocatorPresenterImpl failed\n";
  1836. +    return;
  1837. +  }
  1838. +
  1839. +  hr = S_OK;
  1840. +}
  1841. +
  1842. +CmadVRAllocatorPresenter::~CmadVRAllocatorPresenter()
  1843. +{
  1844. +  /*if(m_pSRCB) {
  1845. +    ((CSubRenderCallback*)(ISubRenderCallback2*)m_pSRCB)->SetDXRAP(NULL);
  1846. +  }*/
  1847. +
  1848. +  m_pSubPicQueue = NULL;
  1849. +  m_pAllocator = NULL;
  1850. +  m_pDXR = NULL;
  1851. +}
  1852. +
  1853. +STDMETHODIMP CmadVRAllocatorPresenter::NonDelegatingQueryInterface(REFIID riid, void** ppv)
  1854. +{
  1855. +  if(riid != IID_IUnknown && m_pDXR) {
  1856. +    if(SUCCEEDED(m_pDXR->QueryInterface(riid, ppv))) {
  1857. +      return S_OK;
  1858. +    }
  1859. +  }
  1860. +
  1861. +  return __super::NonDelegatingQueryInterface(riid, ppv);
  1862. +}
  1863. +
  1864. +HRESULT CmadVRAllocatorPresenter::SetDevice(IDirect3DDevice9* pD3DDev)
  1865. +{
  1866. +  if (!pD3DDev)
  1867. +  {
  1868. +    // release all resources
  1869. +    m_pSubPicQueue = NULL;
  1870. +    m_pAllocator = NULL;
  1871. +    return S_OK;
  1872. +  }
  1873. +
  1874. +  Com::SmartSize size;
  1875. +  
  1876. +  //from mpc-hc
  1877. +  switch(0)//GetRenderersSettings().nSPCMaxRes)
  1878. +  {
  1879. +    case 0:
  1880. +    default:
  1881. +      size = m_ScreenSize;
  1882. +      break;
  1883. +    case 1:
  1884. +      size.SetSize(1024, 768);
  1885. +      break;
  1886. +    case 2:
  1887. +      size.SetSize(800, 600);
  1888. +      break;
  1889. +    case 3:
  1890. +      size.SetSize(640, 480);
  1891. +      break;
  1892. +    case 4:
  1893. +      size.SetSize(512, 384);
  1894. +      break;
  1895. +    case 5:
  1896. +      size.SetSize(384, 288);
  1897. +      break;
  1898. +    case 6:
  1899. +      size.SetSize(2560, 1600);
  1900. +      break;
  1901. +    case 7:
  1902. +      size.SetSize(1920, 1080);
  1903. +      break;
  1904. +    case 8:
  1905. +      size.SetSize(1320, 900);
  1906. +      break;
  1907. +    case 9:
  1908. +      size.SetSize(1280, 720);
  1909. +      break;
  1910. +  }
  1911. +
  1912. +  if(m_pAllocator) {
  1913. +    m_pAllocator->ChangeDevice(pD3DDev);
  1914. +  } else {
  1915. +    m_pAllocator = DNew CDX9SubPicAllocator(pD3DDev, size,true);
  1916. +    if(!m_pAllocator) {
  1917. +      return E_FAIL;
  1918. +    }
  1919. +  }
  1920. +
  1921. +  HRESULT hr = S_OK;
  1922. +  
  1923. +  if (g_dsSettings.pRendererSettings->subtitlesSettings.bufferAhead > 0)
  1924. +    m_pSubPicQueue = new CSubPicQueue(g_dsSettings.pRendererSettings->subtitlesSettings.bufferAhead, g_dsSettings.pRendererSettings->subtitlesSettings.disableAnimations, m_pAllocator, &hr);
  1925. +  else
  1926. +    m_pSubPicQueue = new CSubPicQueueNoThread(m_pAllocator, &hr);
  1927. +  /*m_pSubPicQueue = GetRenderersSettings().nSPCSize > 0
  1928. +           ? (ISubPicQueue*)DNew CSubPicQueue(GetRenderersSettings().nSPCSize, true,!GetRenderersSettings().fSPCAllowAnimationWhenBuffering, m_pAllocator, &hr)
  1929. +           : (ISubPicQueue*)DNew CSubPicQueueNoThread(m_pAllocator, &hr);
  1930. +  if(!m_pSubPicQueue || FAILED(hr)) {
  1931. +    return E_FAIL;
  1932. +  }
  1933. +
  1934. +  if(m_SubPicProvider) {
  1935. +    m_pSubPicQueue->SetSubPicProvider(m_SubPicProvider);
  1936. +  }*/
  1937. +
  1938. +  return S_OK;
  1939. +}
  1940. +
  1941. +HRESULT CmadVRAllocatorPresenter::Render(
  1942. +  REFERENCE_TIME rtStart, REFERENCE_TIME rtStop, REFERENCE_TIME atpf,
  1943. +  int left, int top, int right, int bottom, int width, int height)
  1944. +{
  1945. +  return S_OK;
  1946. +  /*if (!g_renderManager.IsConfigured())
  1947. +  {
  1948. +    g_renderManager.Configure(m_NativeVideoSize.cx, m_NativeVideoSize.cy, m_AspectRatio.cx, m_AspectRatio.cy, m_fps,
  1949. +              CONF_FLAGS_FULLSCREEN, 0);
  1950. +  }*/
  1951. +  //m_drawingIsDone.Reset();
  1952. +  int64_t start = CurrentHostCounter();
  1953. +  
  1954. +  
  1955. +  m_readyToDraw.Set();
  1956. +  int64_t end1 = CurrentHostCounter();
  1957. +  m_readyToStartBack.WaitMSec(200);
  1958. +  int64_t end2 = CurrentHostCounter();
  1959. +  //g_application.NewFrame();
  1960. +  //m_drawingIsDone.Wait(); // Wait until the drawing is done
  1961. +  __super::SetPosition(Com::SmartRect(0, 0, width, height), Com::SmartRect(left, top, right, bottom)); // needed? should be already set by the player
  1962. +  SetTime(rtStart);
  1963. +  if(atpf > 0 && m_pSubPicQueue) {
  1964. +    m_pSubPicQueue->SetFPS(10000000.0 / atpf);
  1965. +  }
  1966. +  AlphaBltSubPic(Com::SmartSize(width, height));
  1967. +  /*this to see the time it take to render*/
  1968. +#if 0
  1969. +  CLog::Log(LOGINFO, "%s Rendering. Setting %.2fms Wait() took %.2fms", __FUNCTION__, 1000.f * (end1 - start) / CurrentHostFrequency(), 1000.f * (end2 - end1) / CurrentHostFrequency());
  1970. +#endif
  1971. +  return S_OK;
  1972. +}
  1973. +
  1974. +// ISubPicAllocatorPresenter
  1975. +
  1976. +STDMETHODIMP CmadVRAllocatorPresenter::CreateRenderer(IUnknown** ppRenderer)
  1977. +{
  1978. +  CheckPointer(ppRenderer, E_POINTER);
  1979. +
  1980. +  if(m_pDXR) {
  1981. +    return E_UNEXPECTED;
  1982. +  }
  1983. +  HRESULT hr = m_pDXR.CoCreateInstance(CLSID_madVR, GetOwner());
  1984. +  if(!m_pDXR) {
  1985. +    return E_FAIL;
  1986. +  }
  1987. +  
  1988. +  Com::SmartQIPtr<ISubRender> pSR = m_pDXR;
  1989. +  Com::SmartQIPtr<IMadVRDirect3D9Manager> pMadVrD3d = m_pDXR;
  1990. +  m_pD3DDevice =g_Windowing.Get3DDevice();
  1991. +  hr = pMadVrD3d->UseTheseDevices(m_pD3DDevice,m_pD3DDevice,m_pD3DDevice);
  1992. +  hr = pMadVrD3d->ConfigureDisplayModeChanger(FALSE, FALSE);
  1993. +  //Com::SmartQIPtr<IVideoWindow> pVW = m_pDXR;
  1994. +  //hr = pVW->put_Owner((OAHWND)g_hWnd);
  1995. +  //hr = pVW->put_Left(0);
  1996. +  //hr = pVW->put_Top(0);
  1997. +
  1998. +  if(!pSR) {
  1999. +    m_pDXR = NULL;
  2000. +    return E_FAIL;
  2001. +  }
  2002. +
  2003. +  m_pSRCB = DNew CSubRenderCallback(this);
  2004. +  if(FAILED(pSR->SetCallback(m_pSRCB))) {
  2005. +    m_pDXR = NULL;
  2006. +    return E_FAIL;
  2007. +  }
  2008. +  Com::SmartQIPtr<IBaseFilter> pBF = this;
  2009. +  if(FAILED(hr))
  2010. +      *ppRenderer = NULL;
  2011. +    else
  2012. +      *ppRenderer = pBF.Detach();
  2013. +  /*(*ppRenderer = this)->AddRef();*/
  2014. +
  2015. +  MONITORINFO mi;
  2016. +  mi.cbSize = sizeof(MONITORINFO);
  2017. +  if (GetMonitorInfo(MonitorFromWindow(m_hWnd, MONITOR_DEFAULTTONEAREST), &mi)) {
  2018. +    m_ScreenSize.SetSize(mi.rcMonitor.right-mi.rcMonitor.left, mi.rcMonitor.bottom-mi.rcMonitor.top);
  2019. +  }
  2020. +
  2021. +  CGraphFilters::Get()->SetMadVrCallback(this);
  2022. +
  2023. +  return S_OK;
  2024. +}
  2025. +
  2026. +STDMETHODIMP_(void) CmadVRAllocatorPresenter::SetPosition(RECT w, RECT v)
  2027. +{
  2028. +  if(Com::SmartQIPtr<IBasicVideo> pBV = m_pDXR) {
  2029. +    pBV->SetDefaultSourcePosition();
  2030. +    pBV->SetDestinationPosition(v.left, v.top, v.right - v.left, v.bottom - v.top);
  2031. +  }
  2032. +
  2033. +  if(Com::SmartQIPtr<IVideoWindow> pVW = m_pDXR) {
  2034. +    pVW->SetWindowPosition(w.left, w.top, w.right - w.left, w.bottom - w.top);
  2035. +  }
  2036. +}
  2037. +
  2038. +STDMETHODIMP_(SIZE) CmadVRAllocatorPresenter::GetVideoSize(bool fCorrectAR)
  2039. +{
  2040. +  SIZE size = {0, 0};
  2041. +
  2042. +  if(!fCorrectAR) {
  2043. +    if(Com::SmartQIPtr<IBasicVideo> pBV = m_pDXR) {
  2044. +      pBV->GetVideoSize(&size.cx, &size.cy);
  2045. +    }
  2046. +  } else {
  2047. +    if(Com::SmartQIPtr<IBasicVideo2> pBV2 = m_pDXR) {
  2048. +      pBV2->GetPreferredAspectRatio(&size.cx, &size.cy);
  2049. +    }
  2050. +  }
  2051. +
  2052. +  return size;
  2053. +}
  2054. +
  2055. +STDMETHODIMP CmadVRAllocatorPresenter::GetDIB(BYTE* lpDib, DWORD* size)
  2056. +{
  2057. +  HRESULT hr = E_NOTIMPL;
  2058. +  if(Com::SmartQIPtr<IBasicVideo> pBV = m_pDXR) {
  2059. +    hr = pBV->GetCurrentImage((long*)size, (long*)lpDib);
  2060. +  }
  2061. +  return hr;
  2062. +}
  2063. +
  2064. +STDMETHODIMP_(bool) CmadVRAllocatorPresenter::Paint(bool fAll)
  2065. +{
  2066. +  return false;
  2067. +}
  2068. +
  2069. +STDMETHODIMP CmadVRAllocatorPresenter::SetPixelShader(LPCSTR pSrcData, LPCSTR pTarget)
  2070. +{
  2071. +  return E_NOTIMPL;
  2072. +}
  2073. +
  2074. +#endif
  2075. \ No newline at end of file
  2076. diff --git a/xbmc/cores/DSPlayer/Filters/madVRAllocatorPresenter.h b/xbmc/cores/DSPlayer/Filters/madVRAllocatorPresenter.h
  2077. new file mode 100644
  2078. index 0000000..da71b8e
  2079. --- /dev/null
  2080. +++ b/xbmc/cores/DSPlayer/Filters/madVRAllocatorPresenter.h
  2081. @@ -0,0 +1,117 @@
  2082. +/*
  2083. + * $Id$
  2084. + *
  2085. + * (C) 2006-2011 see AUTHORS
  2086. + *
  2087. + * This file is part of mplayerc.
  2088. + *
  2089. + * Mplayerc is free software; you can redistribute it and/or modify
  2090. + * it under the terms of the GNU General Public License as published by
  2091. + * the Free Software Foundation; either version 3 of the License, or
  2092. + * (at your option) any later version.
  2093. + *
  2094. + * Mplayerc is distributed in the hope that it will be useful,
  2095. + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  2096. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2097. + * GNU General Public License for more details.
  2098. + *
  2099. + * You should have received a copy of the GNU General Public License
  2100. + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  2101. + *
  2102. + */
  2103. +
  2104. +#pragma once
  2105. +
  2106. +#include "AllocatorCommon.h"
  2107. +#include "mvrInterfaces.h"
  2108. +#include "IPaintCallback.h"
  2109. +#include "../../../threads/Event.h"
  2110. +//#include "..\ID3dHack.h"
  2111. +  class CmadVRAllocatorPresenter
  2112. +    : public ISubPicAllocatorPresenterImpl,
  2113. +      public IPaintCallbackMadvr
  2114. +  {
  2115. +    class CSubRenderCallback : public CUnknown, public ISubRenderCallback2, public CCritSec
  2116. +    {
  2117. +      CmadVRAllocatorPresenter* m_pDXRAP;
  2118. +
  2119. +    public:
  2120. +      CSubRenderCallback(CmadVRAllocatorPresenter* pDXRAP)
  2121. +        : CUnknown(_T("CSubRender"), NULL)
  2122. +        , m_pDXRAP(pDXRAP) {
  2123. +      }
  2124. +
  2125. +      DECLARE_IUNKNOWN
  2126. +      STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv) {
  2127. +        return
  2128. +          QI(ISubRenderCallback)
  2129. +          QI(ISubRenderCallback2)
  2130. +          __super::NonDelegatingQueryInterface(riid, ppv);
  2131. +      }
  2132. +
  2133. +      void SetDXRAP(CmadVRAllocatorPresenter* pDXRAP) {
  2134. +        CAutoLock cAutoLock(this);
  2135. +        m_pDXRAP = pDXRAP;
  2136. +      }
  2137. +
  2138. +      // ISubRenderCallback
  2139. +
  2140. +      STDMETHODIMP SetDevice(IDirect3DDevice9* pD3DDev) {
  2141. +        CAutoLock cAutoLock(this);
  2142. +        return m_pDXRAP ? m_pDXRAP->SetDevice(pD3DDev) : E_UNEXPECTED;
  2143. +      }
  2144. +
  2145. +      STDMETHODIMP Render(REFERENCE_TIME rtStart, int left, int top, int right, int bottom, int width, int height) {
  2146. +        CAutoLock cAutoLock(this);
  2147. +        return m_pDXRAP ? m_pDXRAP->Render(rtStart, 0, 0, left, top, right, bottom, width, height) : E_UNEXPECTED;
  2148. +      }
  2149. +      
  2150. +      // ISubRendererCallback2
  2151. +
  2152. +      STDMETHODIMP RenderEx(REFERENCE_TIME rtStart, REFERENCE_TIME rtStop, REFERENCE_TIME AvgTimePerFrame, int left, int top, int right, int bottom, int width, int height) {
  2153. +        CAutoLock cAutoLock(this);
  2154. +        return m_pDXRAP ? m_pDXRAP->Render(rtStart, rtStop, AvgTimePerFrame, left, top, right, bottom, width, height) : E_UNEXPECTED;
  2155. +      }
  2156. +    };
  2157. +    Com::SmartPtr<IUnknown> m_pDXR;
  2158. +    IDirect3DDevice9* m_pD3DDevice;
  2159. +    Com::SmartPtr<ISubRenderCallback2> m_pSRCB;
  2160. +    Com::SmartSize m_ScreenSize;
  2161. +    bool  m_bIsFullscreen;
  2162. +    CEvent m_readyToDraw;
  2163. +    CEvent m_readyToStartBack;
  2164. +  public:
  2165. +    CmadVRAllocatorPresenter(HWND hWnd, HRESULT& hr, CStdString &_Error);
  2166. +    virtual ~CmadVRAllocatorPresenter();
  2167. +
  2168. +    DECLARE_IUNKNOWN
  2169. +    STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
  2170. +
  2171. +    HRESULT SetDevice(IDirect3DDevice9* pD3DDev);
  2172. +    HRESULT Render(
  2173. +      REFERENCE_TIME rtStart, REFERENCE_TIME rtStop, REFERENCE_TIME atpf,
  2174. +      int left, int top, int bottom, int right, int width, int height);
  2175. +
  2176. +    // ISubPicAllocatorPresenter
  2177. +    STDMETHODIMP CreateRenderer(IUnknown** ppRenderer);
  2178. +    STDMETHODIMP_(void) SetPosition(RECT w, RECT v);
  2179. +    STDMETHODIMP_(SIZE) GetVideoSize(bool fCorrectAR);
  2180. +    STDMETHODIMP_(bool) Paint(bool fAll);
  2181. +    STDMETHODIMP GetDIB(BYTE* lpDib, DWORD* size);
  2182. +    STDMETHODIMP SetPixelShader(LPCSTR pSrcData, LPCSTR pTarget);
  2183. +
  2184. +    //IPaintCallbackMadvr
  2185. +    bool IsReady()
  2186. +    {
  2187. +      /*testing wait*/
  2188. +      bool ready = m_readyToDraw.WaitMSec(50);
  2189. +
  2190. +      return ready;
  2191. +    
  2192. +    };
  2193. +    bool StartBack()
  2194. +    {
  2195. +      m_readyToStartBack.Set();
  2196. +      return true;
  2197. +    }
  2198. +  };
  2199. \ No newline at end of file
  2200. diff --git a/xbmc/cores/DSPlayer/Filters/madVRTestPattern.cpp b/xbmc/cores/DSPlayer/Filters/madVRTestPattern.cpp
  2201. new file mode 100644
  2202. index 0000000..3897948
  2203. --- /dev/null
  2204. +++ b/xbmc/cores/DSPlayer/Filters/madVRTestPattern.cpp
  2205. @@ -0,0 +1,214 @@
  2206. +// ***************************************************************
  2207. +//  madVRTestPattern.cpp      version: 1.1.0  ·  date: 2013-11-27
  2208. +//  -------------------------------------------------------------
  2209. +//  madVR test pattern / calibration remote controlling
  2210. +//  -------------------------------------------------------------
  2211. +//  Copyright (C) 2013 - 2013 www.madshi.net, BSD license
  2212. +// ***************************************************************
  2213. +
  2214. +// 2013-11-27 1.1.0 added madVR_GetBlackAndWhiteLevel
  2215. +// 2013-06-15 1.0.0 initial version
  2216. +
  2217. +// ----------------------------------------------------------------------------
  2218. +
  2219. +#include "madVRTestPattern.h"
  2220. +
  2221. +// ----------------------------------------------------------------------------
  2222. +
  2223. +static HMODULE HcNetDll = NULL;
  2224. +static BOOL InitDone = false;
  2225. +static BOOL InitSuccess = false;
  2226. +
  2227. +static BOOL (WINAPI *ConnectDialog)(BOOL searchLan, HWND parentWindow) = NULL;
  2228. +static BOOL (WINAPI *BlindConnect)(BOOL searchLan, DWORD timeOut) = NULL;
  2229. +static BOOL (WINAPI *ConnectToIp)(LPCSTR ipAddress, DWORD timeOut) = NULL;
  2230. +static BOOL (WINAPI *GetBlackAndWhiteLevel)(int *blackLevel, int *whiteLevel) = NULL;
  2231. +static BOOL (WINAPI *Disable3dlut)() = NULL;
  2232. +static BOOL (WINAPI *GetDeviceGammaRamp_)(LPVOID ramp) = NULL;
  2233. +static BOOL (WINAPI *SetDeviceGammaRamp_)(LPVOID ramp) = NULL;
  2234. +static BOOL (WINAPI *SetOsdText)(LPCWSTR text) = NULL;
  2235. +static BOOL (WINAPI *SetBackground)(int patternAreaInPercent, COLORREF backgroundColor) = NULL;
  2236. +static BOOL (WINAPI *ShowProgressBar)(int numberOfRgbMeasurements) = NULL;
  2237. +static BOOL (WINAPI *SetProgressBarPos)(int currentPos, int maxPos) = NULL;
  2238. +static BOOL (WINAPI *ShowRGB)(double r, double g, double b) = NULL;
  2239. +static BOOL (WINAPI *Disconnect)() = NULL;
  2240. +static BOOL (WINAPI *IsAvailable)() = NULL;
  2241. +static BOOL (WINAPI *Find_Async)(HWND window, DWORD msg) = NULL;
  2242. +static BOOL (WINAPI *Connect)(HANDLE handle, ULONGLONG instance) = NULL;
  2243. +static void (WINAPI *LocConnectDialog)(LPCWSTR title, LPCWSTR text, LPCWSTR columns, LPCWSTR notListed, LPCWSTR select, LPCWSTR cancel) = NULL;
  2244. +static void (WINAPI *LocIpAddressDialog)(LPCWSTR title, LPCWSTR text, LPCWSTR connect, LPCWSTR cancel, LPCWSTR warningTitle, LPCWSTR warningText1, LPCWSTR warningText2) = NULL;
  2245. +
  2246. +BOOL Init()
  2247. +{
  2248. +  HKEY hk1;
  2249. +  DWORD size;
  2250. +  LPWSTR us1;
  2251. +  int i1;
  2252. +
  2253. +  if (!InitDone)
  2254. +  {
  2255. +    #ifdef _WIN64
  2256. +      HcNetDll = LoadLibraryW(L"madHcNet64.dll");
  2257. +    #else
  2258. +      HcNetDll = LoadLibraryW(L"madHcNet32.dll");
  2259. +    #endif
  2260. +    if ((!HcNetDll) && (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"CLSID\\{E1A8B82A-32CE-4B0D-BE0D-AA68C772E423}\\InprocServer32", 0, KEY_QUERY_VALUE | KEY_WOW64_32KEY, &hk1) == ERROR_SUCCESS))
  2261. +    {
  2262. +      size = MAX_PATH * 2 + 2;
  2263. +      us1 = (LPWSTR) LocalAlloc(LPTR, size + 20);
  2264. +      i1 = RegQueryValueExW(hk1, NULL, NULL, NULL, (LPBYTE) us1, &size);
  2265. +      if (i1 == ERROR_MORE_DATA)
  2266. +      {
  2267. +        LocalFree(us1);
  2268. +        us1 = (LPWSTR) LocalAlloc(LPTR, size + 20);
  2269. +        i1 = RegQueryValueExW(hk1, NULL, NULL, NULL, (LPBYTE) us1, &size);
  2270. +      }
  2271. +      if (i1 == ERROR_SUCCESS)
  2272. +      {
  2273. +        for (i1 = lstrlenW(us1) - 2; i1 > 0; i1--)
  2274. +          if (us1[i1] == L'\\')
  2275. +          {
  2276. +            us1[i1 + 1] = 0;
  2277. +            break;
  2278. +          }
  2279. +        #ifdef _WIN64
  2280. +          wcscat_s(us1, size + 10, L"madHcNet64.dll");
  2281. +        #else
  2282. +          wcscat_s(us1, size + 10, L"madHcNet32.dll");
  2283. +        #endif
  2284. +        HcNetDll = LoadLibraryW(us1);
  2285. +      }
  2286. +      LocalFree(us1);
  2287. +      RegCloseKey(hk1);
  2288. +    }
  2289. +    *(FARPROC*)&ConnectDialog         = GetProcAddress(HcNetDll, "madVR_ConnectDialog"        );
  2290. +    *(FARPROC*)&BlindConnect          = GetProcAddress(HcNetDll, "madVR_BlindConnect"         );
  2291. +    *(FARPROC*)&ConnectToIp           = GetProcAddress(HcNetDll, "madVR_ConnectToIp"          );
  2292. +    *(FARPROC*)&GetBlackAndWhiteLevel = GetProcAddress(HcNetDll, "madVR_GetBlackAndWhiteLevel");
  2293. +    *(FARPROC*)&Disable3dlut          = GetProcAddress(HcNetDll, "madVR_Disable3dlut"         );
  2294. +    *(FARPROC*)&GetDeviceGammaRamp_   = GetProcAddress(HcNetDll, "madVR_GetDeviceGammaRamp"   );
  2295. +    *(FARPROC*)&SetDeviceGammaRamp_   = GetProcAddress(HcNetDll, "madVR_SetDeviceGammaRamp"   );
  2296. +    *(FARPROC*)&SetOsdText            = GetProcAddress(HcNetDll, "madVR_SetOsdText"           );
  2297. +    *(FARPROC*)&SetBackground         = GetProcAddress(HcNetDll, "madVR_SetBackground"        );
  2298. +    *(FARPROC*)&ShowProgressBar       = GetProcAddress(HcNetDll, "madVR_ShowProgressBar"      );
  2299. +    *(FARPROC*)&SetProgressBarPos     = GetProcAddress(HcNetDll, "madVR_SetProgressBarPos"    );
  2300. +    *(FARPROC*)&ShowRGB               = GetProcAddress(HcNetDll, "madVR_ShowRGB"              );
  2301. +    *(FARPROC*)&Disconnect            = GetProcAddress(HcNetDll, "madVR_Disconnect"           );
  2302. +    *(FARPROC*)&Find_Async            = GetProcAddress(HcNetDll, "madVR_Find_Async"           );
  2303. +    *(FARPROC*)&Connect               = GetProcAddress(HcNetDll, "madVR_Connect"              );
  2304. +    *(FARPROC*)&LocConnectDialog      = GetProcAddress(HcNetDll, "Localize_ConnectDialog"     );
  2305. +    *(FARPROC*)&LocIpAddressDialog    = GetProcAddress(HcNetDll, "Localize_IpAddressDialog"   );
  2306. +    InitSuccess = (ConnectDialog      ) &&
  2307. +                  (BlindConnect       ) &&
  2308. +                  (ConnectToIp        ) &&
  2309. +                  (Disable3dlut       ) &&
  2310. +                  (SetDeviceGammaRamp_) &&
  2311. +                  (SetOsdText         ) &&
  2312. +                  (SetBackground      ) &&
  2313. +                  (ShowProgressBar    ) &&
  2314. +                  (ShowRGB            ) &&
  2315. +                  (Disconnect         ) &&
  2316. +                  (Find_Async         ) &&
  2317. +                  (Connect            ) &&
  2318. +                  (LocConnectDialog   ) &&
  2319. +                  (LocIpAddressDialog );
  2320. +    InitDone = true;
  2321. +  }
  2322. +  return InitSuccess;
  2323. +}
  2324. +
  2325. +// ----------------------------------------------------------------------------
  2326. +
  2327. +BOOL madVR_ConnectDialog(BOOL searchLan, HWND parentWindow)
  2328. +{
  2329. +  return Init() && ConnectDialog(searchLan, parentWindow);
  2330. +}
  2331. +
  2332. +BOOL madVR_BlindConnect(BOOL searchLan, DWORD timeOut)
  2333. +{
  2334. +  return Init() && BlindConnect(searchLan, timeOut);
  2335. +}
  2336. +
  2337. +BOOL madVR_ConnectToIp(LPCSTR ipAddress, DWORD timeOut)
  2338. +{
  2339. +  return Init() && ConnectToIp(ipAddress, timeOut);
  2340. +}
  2341. +
  2342. +BOOL madVR_GetBlackAndWhiteLevel(int* blackLevel, int* whiteLevel)
  2343. +{
  2344. +  return Init() && (GetBlackAndWhiteLevel) && GetBlackAndWhiteLevel(blackLevel, whiteLevel);
  2345. +}
  2346. +
  2347. +BOOL madVR_Disable3dlut()
  2348. +{
  2349. +  return Init() && Disable3dlut();
  2350. +}
  2351. +
  2352. +BOOL madVR_GetDeviceGammaRamp(LPVOID ramp)
  2353. +{
  2354. +  return Init() && (GetDeviceGammaRamp_) && GetDeviceGammaRamp_(ramp);
  2355. +}
  2356. +
  2357. +BOOL madVR_SetDeviceGammaRamp(LPVOID ramp)
  2358. +{
  2359. +  return Init() && SetDeviceGammaRamp_(ramp);
  2360. +}
  2361. +
  2362. +BOOL madVR_SetOsdText(LPCWSTR text)
  2363. +{
  2364. +  return Init() && SetOsdText(text);
  2365. +}
  2366. +
  2367. +BOOL madVR_SetBackground(int patternAreaInPercent, COLORREF backgroundColor)
  2368. +{
  2369. +  return Init() && SetBackground(patternAreaInPercent, backgroundColor);
  2370. +}
  2371. +
  2372. +BOOL madVR_ShowProgressBar(int numberOfRgbMeasurements)
  2373. +{
  2374. +  return Init() && ShowProgressBar(numberOfRgbMeasurements);
  2375. +}
  2376. +
  2377. +BOOL madVR_SetProgressBarPos(int currentPos, int maxPos)
  2378. +{
  2379. +  return Init() && (SetProgressBarPos) && SetProgressBarPos(currentPos, maxPos);
  2380. +}
  2381. +
  2382. +BOOL madVR_ShowRGB(double r, double g, double b)
  2383. +{
  2384. +  return Init() && ShowRGB(r, g, b);
  2385. +}
  2386. +
  2387. +BOOL madVR_Disconnect()
  2388. +{
  2389. +  return Init() && Disconnect();
  2390. +}
  2391. +
  2392. +BOOL madVR_Find_Async(HWND window, DWORD msg)
  2393. +{
  2394. +  return Init() && Find_Async(window, msg);
  2395. +}
  2396. +
  2397. +BOOL madVR_Connect(HANDLE handle, ULONGLONG instance)
  2398. +{
  2399. +  return Init() && Connect(handle, instance);
  2400. +}
  2401. +
  2402. +BOOL madVR_IsAvailable()
  2403. +{
  2404. +  return Init();
  2405. +}
  2406. +
  2407. +void Localize_ConnectDialog(LPCWSTR title, LPCWSTR text, LPCWSTR columns, LPCWSTR notListed, LPCWSTR select, LPCWSTR cancel)
  2408. +{
  2409. +  if (Init())
  2410. +    LocConnectDialog(title, text, columns, notListed, select, cancel);
  2411. +}
  2412. +
  2413. +void Localize_IpAddressDialog(LPCWSTR title, LPCWSTR text, LPCWSTR connect, LPCWSTR cancel, LPCWSTR warningTitle, LPCWSTR warningText1, LPCWSTR warningText2)
  2414. +{
  2415. +  if (Init())
  2416. +    LocIpAddressDialog(title, text, connect, cancel, warningTitle, warningText1, warningText2);
  2417. +}
  2418. +
  2419. +// ----------------------------------------------------------------------------
  2420. diff --git a/xbmc/cores/DSPlayer/Filters/madVRTestPattern.h b/xbmc/cores/DSPlayer/Filters/madVRTestPattern.h
  2421. new file mode 100644
  2422. index 0000000..6a3f7ce
  2423. --- /dev/null
  2424. +++ b/xbmc/cores/DSPlayer/Filters/madVRTestPattern.h
  2425. @@ -0,0 +1,246 @@
  2426. +// ***************************************************************
  2427. +//  madVRTestPattern.h        version: 1.1.0  ·  date: 2013-11-27
  2428. +//  -------------------------------------------------------------
  2429. +//  madVR test pattern / calibration remote controlling
  2430. +//  -------------------------------------------------------------
  2431. +//  Copyright (C) 2013 - 2013 www.madshi.net, BSD license
  2432. +// ***************************************************************
  2433. +
  2434. +// 2013-11-27 1.1.0 added madVR_GetBlackAndWhiteLevel
  2435. +// 2013-06-15 1.0.0 initial version
  2436. +
  2437. +// ----------------------------------------------------------------------------
  2438. +
  2439. +#if !defined(MADVR_H)
  2440. +#define MADVR_H
  2441. +
  2442. +#ifdef __cplusplus
  2443. +  extern "C" {
  2444. +#endif
  2445. +
  2446. +#include <windows.h>
  2447. +
  2448. +#pragma pack(1)
  2449. +
  2450. +// ============================================================================
  2451. +// I. THE EASY WAY
  2452. +// ============================================================================
  2453. +
  2454. +// ----------------------------------------------------------------------------
  2455. +// connecting to madVR - three options
  2456. +
  2457. +// (1) "madVR_ConnectDialog" searches for madVR instances on the local PC and
  2458. +//     optionally also the LAN, then shows all found instances in a dialog and
  2459. +//     lets the user choose which one to connect to.
  2460. +//     Searching the LAN will only work if the user has enabled network access
  2461. +//     in the madVR tray icon configuration. Also, searching the LAN might
  2462. +//     popup a Firewall confirmation window.
  2463. +// "result=true"  means: Connection to the selected madVR instance was opened.
  2464. +// "result=false" means: The user aborted the connection process.
  2465. +#ifdef __cplusplus
  2466. +  BOOL madVR_ConnectDialog(BOOL searchLan = TRUE, HWND parentWindow = NULL);
  2467. +#else
  2468. +  BOOL madVR_ConnectDialog(BOOL searchLan       , HWND parentWindow       );
  2469. +#endif
  2470. +
  2471. +// (2) "madVR_BlindConnect" searches for madVR instances on the local PC and
  2472. +//     optionally also the LAN, then simply connects to the first found
  2473. +//     instance. Local PC instances are preferred over LAN instances.
  2474. +//     Searching the LAN will only work if the user has enabled network access
  2475. +//     in the madVR tray icon configuration. Also, searching the LAN might
  2476. +//     popup a Firewall confirmation window.
  2477. +// "result=true"  means: A madVR instance was found and a connection opened.
  2478. +// "result=false" means: No madVR instance found, or connection failed.
  2479. +#ifdef __cplusplus
  2480. +  BOOL madVR_BlindConnect(BOOL searchLan = TRUE, DWORD timeOut = 3000);
  2481. +#else
  2482. +  BOOL madVR_BlindConnect(BOOL searchLan       , DWORD timeOut       );
  2483. +#endif
  2484. +
  2485. +// (3) If you want to connect to a madVR instance running on a LAN PC with a
  2486. +//     known IP address, "madVR_ConnectToIp" lets you do just that.
  2487. +//     Connecting to a madVR LAN instance will only work if the user has
  2488. +//     enabled network access in the madVR tray icon configuration. Also,
  2489. +//     using "madVR_ConnectToIp" might popup a Firewall confirmation window.
  2490. +// "result=true"  means: A madVR instance was found and a connection opened.
  2491. +// "result=false" means: No madVR instance found, or connection failed.
  2492. +#ifdef __cplusplus
  2493. +  BOOL madVR_ConnectToIp(LPCSTR ipAddress, DWORD timeOut = 1000);
  2494. +#else
  2495. +  BOOL madVR_ConnectToIp(LPCSTR ipAddress, DWORD timeOut       );
  2496. +#endif
  2497. +
  2498. +// ----------------------------------------------------------------------------
  2499. +// remote controlling the connected madVR instance
  2500. +
  2501. +// "madVR_GetBlackAndWhiteLevel" reports the madVR output level setup.
  2502. +// E.g. if madVR is setup to output TV levels, you'll get "blackLevel = 16" and
  2503. +// "whiteLevel = 235" reported.
  2504. +// The purpose of asking this information is that it allows you to avoid
  2505. +// dithering, if you so prefer. Dithering will be automatically disabled by
  2506. +// madVR if the final 8bit output value calculated by madVR ends up being a
  2507. +// simple cardinal without any fractional part.
  2508. +// E.g. if you use "madVR_ShowRGB(0.5, 0.5, 0.5)" with madVR configured to PC
  2509. +// levels, the final 8bit value will be 127.5, which means that madVR has to
  2510. +// use dithering to display the color correctly. If you want to avoid dithering,
  2511. +// use "x / (whiteLevel - blackLevel)" values.
  2512. +// Dithering in itself is not bad. It allows madVR to produce test pattern
  2513. +// colors which would otherwise not be possible to display in 8bit. However,
  2514. +// calibration quality might be ever so slightly improved if you choose
  2515. +// measurement colors which don't need dithering to display correctly. It's
  2516. +// your choice, though. Maybe some part of your calibration might even improve
  2517. +// if you have the chance to measure colors with a bitdepth higher than 8bit.
  2518. +BOOL madVR_GetBlackAndWhiteLevel(int *blackLevel, int *whiteLevel);
  2519. +
  2520. +// "madVR_Disable3dlut" disables 3dlut processing.
  2521. +// The 3dlut stays disabled until the connection is closed.
  2522. +// Disable the 3dlut if you want to calibrate/profile the display, or if you
  2523. +// want to measure the display behaviour prior to calibration.
  2524. +// Don't disable the 3dlut if you want to measure the final display after full
  2525. +// calibration.
  2526. +BOOL madVR_Disable3dlut();
  2527. +
  2528. +// "madVR_Get/SetDeviceGammaRamp" calls the win32 API "Get/SetDeviceGammaRamp"
  2529. +// on the target PC / display. A "NULL" ramp sets a linear ramp.
  2530. +// The original ramp is automatically restored when you close the connection.
  2531. +#ifdef __cplusplus
  2532. +  BOOL madVR_GetDeviceGammaRamp(LPVOID ramp);
  2533. +  BOOL madVR_SetDeviceGammaRamp(LPVOID ramp = NULL);
  2534. +#else
  2535. +  BOOL madVR_GetDeviceGammaRamp(LPVOID ramp);
  2536. +  BOOL madVR_SetDeviceGammaRamp(LPVOID ramp);
  2537. +#endif
  2538. +
  2539. +// "madVR_SetOsdText" shows a "text" on the top left of the video image.
  2540. +BOOL madVR_SetOsdText(LPCWSTR text);
  2541. +
  2542. +// "madVR_SetBackground" lets you define how much percect of the madVR
  2543. +// rendering window is painted in the test pattern color, and how much is
  2544. +// painted with a specific background color.
  2545. +// Using a background color can make sense for plasma measurements.
  2546. +BOOL madVR_SetBackground(int patternAreaInPercent, COLORREF backgroundColor);
  2547. +
  2548. +// "madVR_ShowProgressBar" initializes the madVR progress bar.
  2549. +// It will progress one step with every "madVR_ShowRGB" call (see below).
  2550. +BOOL madVR_ShowProgressBar(int numberOfRgbMeasurements);
  2551. +
  2552. +// "madVR_SetProgressBarPos" sets the madVR progress bar to a specific pos.
  2553. +// After calling this API, the progress bar will not automatically move
  2554. +// forward after calls to "madVR_ShowRGB", anymore. Calling this API means
  2555. +// you have to manually move the progress bar.
  2556. +BOOL madVR_SetProgressBarPos(int currentPos, int maxPos);
  2557. +
  2558. +// "madVR_ShowRGB" shows a specific RGB color test pattern.
  2559. +// Values are gamma corrected with "black = 0.0" and "white = 1.0".
  2560. +// You can go below 0.0 or above 1.0 for BTB/WTW, if you want. Of course a test
  2561. +// pattern with BTB/WTW will only work if the connected madVR instance is
  2562. +// configured to TV level output.
  2563. +// "madVR_ShowRGB" blocks until the GPU has actually output the test pattern to
  2564. +// the display. How fast the display will actually show the test pattern will
  2565. +// depend on the display's input latency, which is outside of madVR's control.
  2566. +BOOL madVR_ShowRGB(double r, double g, double b);
  2567. +
  2568. +// ----------------------------------------------------------------------------
  2569. +// disconnecting from madVR
  2570. +
  2571. +// "madVR_Disconnect" closes the current connection to madVR.
  2572. +BOOL madVR_Disconnect();
  2573. +
  2574. +// ----------------------------------------------------------------------------
  2575. +// checking madVR availability
  2576. +
  2577. +// "madVR_IsAvailable" checks whether the madHcNet32.dll can be found.
  2578. +// It must either be in the current directory, or in the search path.
  2579. +// Or alternatively it will also work if madVR is installed on the current PC.
  2580. +BOOL madVR_IsAvailable();
  2581. +
  2582. +// ----------------------------------------------------------------------------
  2583. +
  2584. +
  2585. +// ============================================================================
  2586. +// II. THE HARD WAY
  2587. +// ============================================================================
  2588. +
  2589. +// ----------------------------------------------------------------------------
  2590. +// finding / enumerating madVR instances on the LAN
  2591. +
  2592. +// The following API lets you automatically locate madVR instances running
  2593. +// anywhere on either the local PC or remote PCs connected via LAN.
  2594. +// For every found madVR instance this full information record is returned:
  2595. +
  2596. +typedef struct _TMadVRInstance
  2597. +{                           // Example 1:       // Example 2:
  2598. +  HANDLE    handle;         // 1                // 2
  2599. +  ULONGLONG instance;       // 0x40001000       // 0x40001000
  2600. +  LPSTR     ipAddress;      // "192.168.1.1"    // "192.168.1.1"
  2601. +  LPWSTR    computerName;   // "HTPC"           // "HTPC"
  2602. +  LPWSTR    userName;       // "Walter"         // "Walter"
  2603. +  LPWSTR    os;             // "Windows XP"     // "Windows 8"
  2604. +  ULONG_PTR processId;      // 220              // 248
  2605. +  LPWSTR    processName;    // "MPC-HC"         // "madVR test pattern generator"
  2606. +  LPWSTR    exeFile;        // "mplayerc.exe"   // "madTPG.exe"
  2607. +  LPWSTR    exeVersion;     // 1.3.2066.0       // 1.0.0.0
  2608. +  LPWSTR    madVRVersion;   // 0.86.4.0         // 0.86.4.0
  2609. +  LPWSTR    gpuName;        // "Radeon 3850"    // "GeForce 650"
  2610. +  LPWSTR    monitorName;    // "JVC HD-350"     // "JVC HD-350"
  2611. +} TMadVRInstance, *PMadVRInstance;
  2612. +
  2613. +// "madVR_Find_Async" also starts a search for madVR instances, but instead of
  2614. +// returning information directly, it will send a message to the specified
  2615. +// "window" for every found madVR instance.
  2616. +// After the search is complete, "madVR_Find_Async" will keep an eye open for
  2617. +// newly started and closed down madVR instances and automatically report them
  2618. +// to your "window", as well.
  2619. +// In order to stop notification, call "madVR_Find_Async" with NULL parameters.
  2620. +// wParam: 0 = a new madVR instance was detected
  2621. +//         1 = a known madVR instance closed down
  2622. +// lParam: "PMadVRInstance" of the new/closed madVR instance
  2623. +//         do not free the PMadVRInstance, the memory is managed by madVR
  2624. +BOOL madVR_Find_Async(HWND window, DWORD msg);
  2625. +
  2626. +// ----------------------------------------------------------------------------
  2627. +// connection to a specific madVR instance
  2628. +
  2629. +// "madVR_Connect" connects you to the specified madVR instance.
  2630. +// If a previous connection exists, it will be closed automatically.
  2631. +// The "handle" and "instance" originate from a "madVR_Find(_Async)" search.
  2632. +BOOL madVR_Connect(HANDLE handle, ULONGLONG instance);
  2633. +
  2634. +// ----------------------------------------------------------------------------
  2635. +
  2636. +
  2637. +// ============================================================================
  2638. +// III. GUI LOCALIZATION
  2639. +// ============================================================================
  2640. +
  2641. +// Localize/customize all texts used by madVR_ConnectDialog.
  2642. +void Localize_ConnectDialog (LPCWSTR title,       // madVR selection...
  2643. +                             LPCWSTR text,        // Please make sure that madVR is running on the target computer and then select it here:
  2644. +                             LPCWSTR columns,     // ip address|computer|pid|process|gpu|monitor|os
  2645. +                             LPCWSTR notListed,   // The madVR instance I'm looking for is not listed
  2646. +                             LPCWSTR select,      // Select
  2647. +                             LPCWSTR cancel       // Cancel
  2648. +                            );
  2649. +
  2650. +// Localize/customize all texts used by madVR_IpAddressDialog.
  2651. +// This is a dialog used internally by madVR_ConnectDialog.
  2652. +void Localize_IpAddressDialog (LPCWSTR title,          // find mad* instance...
  2653. +                               LPCWSTR text,           // Please enter the IP address of the computer on which mad* is running:
  2654. +                               LPCWSTR connect,        // Connect
  2655. +                               LPCWSTR cancel,         // Cancel
  2656. +                               LPCWSTR warningTitle,   // Warning...
  2657. +                               LPCWSTR warningText1,   // There doesn't seem to be any madVR instance running on that computer.
  2658. +                               LPCWSTR warningText2    // The target computer does not react.\n\n
  2659. +                              );                       // Please check if it's turned on and connected to the LAN.\n
  2660. +                                                       // You may also want to double check your firewall settings.
  2661. +
  2662. +// ----------------------------------------------------------------------------
  2663. +
  2664. +
  2665. +// ----------------------------------------------------------------------------
  2666. +
  2667. +#ifdef __cplusplus
  2668. +  }
  2669. +#endif
  2670. +
  2671. +#endif
  2672. diff --git a/xbmc/cores/DSPlayer/Filters/mvrInterfaces.h b/xbmc/cores/DSPlayer/Filters/mvrInterfaces.h
  2673. new file mode 100644
  2674. index 0000000..e5ea660
  2675. --- /dev/null
  2676. +++ b/xbmc/cores/DSPlayer/Filters/mvrInterfaces.h
  2677. @@ -0,0 +1,720 @@
  2678. +// ***************************************************************
  2679. +//  mvrInterfaces.h           version: 1.0.7  ·  date: 2014-01-18
  2680. +//  -------------------------------------------------------------
  2681. +//  various interfaces exported by madVR
  2682. +//  -------------------------------------------------------------
  2683. +//  Copyright (C) 2011 - 2014 www.madshi.net, BSD license
  2684. +// ***************************************************************
  2685. +
  2686. +// 2014-01-18 1.0.7 added IMadVRSettings2
  2687. +// 2013-06-04 1.0.6 added IMadVRInfo
  2688. +// 2013-01-23 1.0.5 added IMadVRSubclassReplacement
  2689. +// 2012-11-18 1.0.4 added IMadVRExternalPixelShaders
  2690. +// 2012-10-07 1.0.3 added IMadVRExclusiveModeCallback
  2691. +// 2011-08-03 1.0.2 added IMadVRExclusiveModeControl
  2692. +// 2011-07-17 1.0.1 added IMadVRRefreshRateInfo
  2693. +// 2011-06-25 1.0.0 initial release
  2694. +
  2695. +#ifndef __mvrInterfaces__
  2696. +#define __mvrInterfaces__
  2697. +
  2698. +// ---------------------------------------------------------------------------
  2699. +// IMadVR
  2700. +// ---------------------------------------------------------------------------
  2701. +
  2702. +// use this CLSID to create a madVR instance
  2703. +
  2704. +DEFINE_GUID(CLSID_madVR, 0xe1a8b82a, 0x32ce, 0x4b0d, 0xbe, 0x0d, 0xaa, 0x68, 0xc7, 0x72, 0xe4, 0x23);
  2705. +
  2706. +// ---------------------------------------------------------------------------
  2707. +// IMadVROsdServices
  2708. +// ---------------------------------------------------------------------------
  2709. +
  2710. +// this interface allows you to draw your own graphical OSD
  2711. +// your OSD will work in both windowed + exclusive mode
  2712. +// there are 2 different ways to draw your OSD:
  2713. +
  2714. +// (1) using bitmaps
  2715. +// you can create multiple OSD elements
  2716. +// each OSD element gets a name, a bitmap and a position
  2717. +// the bitmap must be 24bit or 32bit RGB(A)
  2718. +// for transparency you can use a color key or an 8bit alpha channel
  2719. +
  2720. +// (2) using render callbacks
  2721. +// you can provide madVR with callbacks
  2722. +// these callbacks are then called during rendering
  2723. +// one callback will be called the rendering target was cleared
  2724. +// another callback will be called after rendering was fully completed
  2725. +// in your callbacks you can modify the render target any way you like
  2726. +
  2727. +// ---------------------------------------------------------------------------
  2728. +
  2729. +// when using the (1) bitmaps method, you can register a mouse callback
  2730. +// this callback will be called whenever a mouse event occurs
  2731. +// mouse pos (0, 0) is the left top corner of the OSD bitmap element
  2732. +// return "true" if your callback has handled the mouse message and
  2733. +// if you want the mouse message to be "eaten" (instead of passed on)
  2734. +typedef void (__stdcall *OSDMOUSECALLBACK)(LPCSTR name, LPVOID context, UINT message, WPARAM wParam, int posX, int posY);
  2735. +
  2736. +// when using the (2) render callbacks method, you need to provide
  2737. +// madVR with an instance of the IOsdRenderCallback interface
  2738. +// it contains three callbacks you have to provide
  2739. +[uuid("57FBF6DC-3E5F-4641-935A-CB62F00C9958")]
  2740. +interface IOsdRenderCallback : public IUnknown
  2741. +{
  2742. +  // "SetDevice" is called when you register the callbacks
  2743. +  // it provides you with the D3D device object used by madVR
  2744. +  // when SetDevice is called with a "NULL" D3D device, you
  2745. +  // *must* release all D3D resources you eventually allocated
  2746. +  STDMETHOD(SetDevice)(IDirect3DDevice9 *dev) = 0;
  2747. +
  2748. +  // "ClearBackground" is called after madVR cleared the render target
  2749. +  // "RenderOsd" is called after madVR is fully done with rendering
  2750. +  // fullOutputRect  = (0, 0, outputSurfaceWidth, outputSurfaceHeight)
  2751. +  // activeVideoRect = active video rendering rect inside of fullOutputRect
  2752. +  // background area = the part of fullOutputRect which isn't covered by activeVideoRect
  2753. +  STDMETHOD(ClearBackground)(LPCSTR name, REFERENCE_TIME frameStart, RECT *fullOutputRect, RECT *activeVideoRect) = 0;
  2754. +  STDMETHOD(RenderOsd      )(LPCSTR name, REFERENCE_TIME frameStart, RECT *fullOutputRect, RECT *activeVideoRect) = 0;
  2755. +};
  2756. +
  2757. +// this is the main interface which madVR provides to you
  2758. +[uuid("3AE03A88-F613-4BBA-AD3E-EE236976BF9A")]
  2759. +interface IMadVROsdServices : public IUnknown
  2760. +{
  2761. +  // this API provides the (1) bitmap based method
  2762. +  STDMETHOD(OsdSetBitmap)(
  2763. +    LPCSTR name,                           // name of the OSD element, e.g. "YourMediaPlayer.SeekBar"
  2764. +    HBITMAP leftEye = NULL,                // OSD bitmap, should be 24bit or 32bit, NULL deletes the OSD element
  2765. +    HBITMAP rightEye = NULL,               // specify when your OSD is 3D, otherwise set to NULL
  2766. +    COLORREF colorKey = 0,                 // transparency color key, set to 0 if your bitmap has an 8bit alpha channel
  2767. +    int posX = 0,                          // where to draw the OSD element?
  2768. +    int posY = 0,                          //
  2769. +    bool posRelativeToVideoRect = false,   // draw relative to TRUE: the active video rect; FALSE: the full output rect
  2770. +    int zOrder = 0,                        // high zOrder OSD elements are drawn on top of those with smaller zOrder values
  2771. +    DWORD duration = 0,                    // how many milliseconds shall the OSD element be shown (0 = infinite)?
  2772. +    DWORD flags = 0,                       // undefined - set to 0
  2773. +    OSDMOUSECALLBACK callback = NULL,      // optional callback for mouse events
  2774. +    LPVOID callbackContext = NULL,         // this context is passed to the callback
  2775. +    LPVOID reserved = NULL                 // undefined - set to NULL
  2776. +  ) = 0;
  2777. +
  2778. +  // this API allows you to ask the current video rectangles
  2779. +  STDMETHOD(OsdGetVideoRects)(
  2780. +    RECT *fullOutputRect,                  // (0, 0, outputSurfaceWidth, outputSurfaceHeight)
  2781. +    RECT *activeVideoRect                  // active video rendering rect inside of fullOutputRect
  2782. +  ) = 0;
  2783. +
  2784. +  // this API provides the (2) render callback based method
  2785. +  STDMETHOD(OsdSetRenderCallback)(
  2786. +    LPCSTR name,                           // name of the OSD callback, e.g. "YourMediaPlayer.OsdCallbacks"
  2787. +    IOsdRenderCallback *callback = NULL,   // OSD callback interface, set to NULL to unregister the callback
  2788. +    LPVOID reserved = NULL                 // undefined - set to NULL
  2789. +  ) = 0;
  2790. +
  2791. +  // this API allows you to force madVR to redraw the current video frame
  2792. +  // useful when using the (2) render callback method, when the graph is paused
  2793. +  STDMETHOD(OsdRedrawFrame)(void) = 0;
  2794. +};
  2795. +
  2796. +// ---------------------------------------------------------------------------
  2797. +// IMadVRTextOsd
  2798. +// ---------------------------------------------------------------------------
  2799. +
  2800. +// This interface allows you to draw simple text messages.
  2801. +// madVR uses it internally, too, for showing various messages to the user.
  2802. +// The messages are shown in the top left corner of the video rendering window.
  2803. +// The messages work in both windowed and fullscreen exclusive mode.
  2804. +// There can always be only one message active at the same time, so basically
  2805. +// the messages are overwriting each other.
  2806. +
  2807. +[uuid("ABA34FDA-DD22-4E00-9AB4-4ABF927D0B0C")]
  2808. +interface IMadVRTextOsd : public IUnknown
  2809. +{
  2810. +  STDMETHOD(OsdDisplayMessage)(LPCWSTR text, DWORD milliseconds) = 0;
  2811. +  STDMETHOD(OsdClearMessage)(void) = 0;
  2812. +};
  2813. +
  2814. +// ---------------------------------------------------------------------------
  2815. +// IMadVRSubclassReplacement
  2816. +// ---------------------------------------------------------------------------
  2817. +
  2818. +// Normally madVR subclasses some parent of the madVR rendering window.
  2819. +// If your media player gets into stability issues because of that, you can
  2820. +// disable madVR's subclassing by using this interface. You should then
  2821. +// manually forward the messages from your own WindowProc to madVR by calling
  2822. +// this interface's "ParentWindowProc" method.
  2823. +// If "ParentWindowProc" returns "TRUE", you should consider the message
  2824. +// handled by madVR and *not* pass it on to the original WindowProc. Instead
  2825. +// just return the value madVR wrote to "result". If "ParentWindowProc"
  2826. +// returns "FALSE", process the message as usual.
  2827. +// When using the normal subclassing solution, madVR selects the parent window
  2828. +// to subclass by using the following code:
  2829. +// {
  2830. +//   HWND parentWindow = madVRWindow;
  2831. +//   while ((GetParent(parentWindow)) && (GetParent(parentWindow) == GetAncestor(parentWindow, GA_PARENT)))
  2832. +//     parentWindow = GetParent(parentWindow);
  2833. +// }
  2834. +// If you use this interface, send the messages to madVR from the same window
  2835. +// that madVR would otherwise have subclassed.
  2836. +
  2837. +[uuid("9B517604-2D86-4FA2-A20C-ECF88301B010")]
  2838. +interface IMadVRSubclassReplacement : public IUnknown
  2839. +{
  2840. +  STDMETHOD(DisableSubclassing)(void) = 0;
  2841. +  STDMETHOD_(BOOL, ParentWindowProc)(HWND hwnd, UINT uMsg, WPARAM *wParam, LPARAM *lParam, LRESULT *result) = 0;
  2842. +};
  2843. +
  2844. +// ---------------------------------------------------------------------------
  2845. +// IMadVRSeekbarControl
  2846. +// ---------------------------------------------------------------------------
  2847. +
  2848. +// if you draw your own seekbar and absolutely insist on disliking madVR's
  2849. +// own seekbar, you can forcefully hide it by using this interface
  2850. +// using this interface only affects the current madVR instance
  2851. +
  2852. +[uuid("D2D3A520-7CFA-46EB-BA3B-6194A028781C")]
  2853. +interface IMadVRSeekbarControl : public IUnknown
  2854. +{
  2855. +  STDMETHOD(DisableSeekbar)(BOOL disable) = 0;
  2856. +};
  2857. +
  2858. +// ---------------------------------------------------------------------------
  2859. +// IMadVRExclusiveModeControl
  2860. +// ---------------------------------------------------------------------------
  2861. +
  2862. +// you can use this interface to turn madVR's automatic exclusive mode on/off
  2863. +// using this interface only affects the current madVR instance
  2864. +
  2865. +[uuid("88A69329-3CD3-47D6-ADEF-89FA23AFC7F3")]
  2866. +interface IMadVRExclusiveModeControl : public IUnknown
  2867. +{
  2868. +  STDMETHOD(DisableExclusiveMode)(BOOL disable) = 0;
  2869. +};
  2870. +
  2871. +// ---------------------------------------------------------------------------
  2872. +// IMadVRExclusiveModeCallback
  2873. +// ---------------------------------------------------------------------------
  2874. +
  2875. +// allows you to be notified when exclusive mode is entered/left
  2876. +
  2877. +#define ExclusiveModeIsAboutToBeEntered 1
  2878. +#define ExclusiveModeWasJustEntered     2
  2879. +#define ExclusiveModeIsAboutToBeLeft    3
  2880. +#define ExclusiveModeWasJustLeft        4
  2881. +typedef void (__stdcall *EXCLUSIVEMODECALLBACK)(LPVOID context, int event);
  2882. +
  2883. +[uuid("51CA9252-ACC5-4EC5-A02E-0F9F8C42B536")]
  2884. +interface IMadVRExclusiveModeCallback : public IUnknown
  2885. +{
  2886. +  STDMETHOD(  Register)(EXCLUSIVEMODECALLBACK exclusiveModeCallback, LPVOID context) = 0;
  2887. +  STDMETHOD(Unregister)(EXCLUSIVEMODECALLBACK exclusiveModeCallback, LPVOID context) = 0;
  2888. +};
  2889. +
  2890. +// ---------------------------------------------------------------------------
  2891. +// IMadVRDirect3D9Manager
  2892. +// ---------------------------------------------------------------------------
  2893. +
  2894. +// You can make madVR use your Direct3D9 device(s) instead of creating its
  2895. +// own. If you do that, madVR will not automatically switch between
  2896. +// fullscreen and windowed mode, anymore. It's your duty then to enter
  2897. +// fullscreen exclusive mode, if you want madVR to use it. madVR will still
  2898. +// reset the devices, though, if necessary (lost device etc).
  2899. +
  2900. +[uuid("1CAEE23B-D14B-4DB4-8AEA-F3528CB78922")]
  2901. +interface IMadVRDirect3D9Manager : public IUnknown
  2902. +{
  2903. +  // Creating 3 different devices for scanline reading, rendering and
  2904. +  // presentation can improve overall performance. If you don't like that
  2905. +  // idea, just feed madVR with the same device for all tasks.
  2906. +  // You can't create new devices if one device is already in fullscreen
  2907. +  // exclusive mode. So if you want to provide madVR with 3 different
  2908. +  // devices, while still using exclusive mode, make sure you create the
  2909. +  // scanline reading and rendering devices before setting the presentation
  2910. +  // device to fullscreen exclusive mode.
  2911. +  STDMETHOD(UseTheseDevices)(LPDIRECT3DDEVICE9 scanlineReading, LPDIRECT3DDEVICE9 rendering, LPDIRECT3DDEVICE9 presentation) = 0;
  2912. +
  2913. +  // madVR contains a display mode changer which, depending on the video
  2914. +  // size and frame rate, may decide to switch display modes. If you don't
  2915. +  // want madVR to change either resolution or refresh rates, you can
  2916. +  // disable this functionality partially or completely.
  2917. +  STDMETHOD(ConfigureDisplayModeChanger)(BOOL allowResolutionChanges, BOOL allowRefreshRateChanges) = 0;
  2918. +};
  2919. +
  2920. +// ---------------------------------------------------------------------------
  2921. +// IMadVRExternalPixelShaders
  2922. +// ---------------------------------------------------------------------------
  2923. +
  2924. +// this interface allows you to activate external HLSL D3D9 pixel shaders
  2925. +
  2926. +#define ShaderStage_PreScale 0
  2927. +#define ShaderStage_PostScale 1
  2928. +
  2929. +[uuid("B6A6D5D4-9637-4C7D-AAAE-BC0B36F5E433")]
  2930. +interface IMadVRExternalPixelShaders : public IUnknown
  2931. +{
  2932. +  STDMETHOD(ClearPixelShaders)(int stage) = 0;
  2933. +  STDMETHOD(AddPixelShader)(LPCSTR sourceCode, LPCSTR compileProfile, int stage, LPVOID reserved) = 0;
  2934. +};
  2935. +
  2936. +// ---------------------------------------------------------------------------
  2937. +// IMadVRInfo
  2938. +// ---------------------------------------------------------------------------
  2939. +
  2940. +// this interface allows you to get all kinds of information from madVR
  2941. +
  2942. +[uuid("8FAB7F31-06EF-444C-A798-10314E185532")]
  2943. +interface IMadVRInfo : public IUnknown
  2944. +{
  2945. +  // The memory for strings and binary data is allocated by the callee
  2946. +  // by using LocalAlloc. It is the caller's responsibility to release the
  2947. +  // memory by calling LocalFree.
  2948. +  // Field names and LPWSTR values should be read case insensitive.
  2949. +  STDMETHOD(GetBool     )(LPCSTR field, bool      *value) = 0;
  2950. +  STDMETHOD(GetInt      )(LPCSTR field, int       *value) = 0;
  2951. +  STDMETHOD(GetSize     )(LPCSTR field, SIZE      *value) = 0;
  2952. +  STDMETHOD(GetRect     )(LPCSTR field, RECT      *value) = 0;
  2953. +  STDMETHOD(GetUlonglong)(LPCSTR field, ULONGLONG *value) = 0;
  2954. +  STDMETHOD(GetDouble   )(LPCSTR field, double    *value) = 0;
  2955. +  STDMETHOD(GetString   )(LPCSTR field, LPWSTR    *value, int *chars) = 0;
  2956. +  STDMETHOD(GetBin      )(LPCSTR field, LPVOID    *value, int *size ) = 0;
  2957. +};
  2958. +
  2959. +// available info fields:
  2960. +// ----------------------
  2961. +// version,                 string,    madVR version number
  2962. +// originalVideoSize,       size,      size of the video before scaling and AR adjustments
  2963. +// arAdjustedVideoSize,     size,      size of the video after AR adjustments
  2964. +// videoOutputRect,         rect,      final pos/size of the video after all scaling operations
  2965. +// subtitleTargetRect,      rect,      consumer wish for where to place the subtitles
  2966. +// frameRate,               ulonglong, frame rate of the video after deinterlacing (REFERENCE_TIME)
  2967. +// refreshRate,             double,    display refresh rate (0, if unknown)
  2968. +// displayModeSize,         size,      display mode width/height
  2969. +// yuvMatrix,               string,    RGB Video: "None" (fullrange); YCbCr Video: "Levels.Matrix", Levels: TV|PC, Matrix: 601|709|240M|FCC|2020
  2970. +// exclusiveModeActive,     bool,      is madVR currently in exclusive mode?
  2971. +// madVRSeekbarEnabled,     bool,      is the madVR exclusive mode seek bar currently enabled?
  2972. +// dxvaDecodingActive,      bool,      is DXVA2 decoding      being used at the moment?
  2973. +// dxvaDeinterlacingActive, bool,      is DXVA2 deinterlacing being used at the moment?
  2974. +// dxvaScalingActive,       bool,      is DXVA2 scaling       being used at the moment?
  2975. +// ivtcActive,              bool,      is madVR's IVTC algorithm active at the moment?
  2976. +// osdLatency,              int,       how much milliseconds will pass for an OSD change to become visible?
  2977. +
  2978. +// ---------------------------------------------------------------------------
  2979. +// IMadVRSettings
  2980. +// ---------------------------------------------------------------------------
  2981. +
  2982. +// this interface allows you to read and write madVR settings
  2983. +
  2984. +// For each folder and value there exists both a short ID and a long
  2985. +// description. The short ID will never change. The long description may be
  2986. +// modified in a future version. So it's preferable to use the ID, but you can
  2987. +// also address settings by using the clear text description.
  2988. +
  2989. +// The "path" parameter can simply be set to the ID or to the description of
  2990. +// the setting value. Alternatively you can use a partial or full path to the
  2991. +// setting value. E.g. the following calls will all return the same value:
  2992. +// (1) GetBoolean(L"dontDither", &boolVal);
  2993. +// (2) GetBoolean(L"don't use dithering", &boolVal);
  2994. +// (3) GetBoolean(L"tradeQuality\dontDither", &boolVal);
  2995. +// (4) GetBoolean(L"rendering\trade quality for performance\dontDither", &boolVal);
  2996. +
  2997. +// Using the full path can make sense if you want to access a specific profile.
  2998. +// If you don't specify a path, you automatically access the currently active
  2999. +// profile.
  3000. +
  3001. +[uuid("6F8A566C-4E19-439E-8F07-20E46ED06DEE")]
  3002. +interface IMadVRSettings : public IUnknown
  3003. +{
  3004. +  // returns the revision number of the settings record
  3005. +  // the revision number is increased by 1 every time a setting changes
  3006. +  STDMETHOD_(BOOL, SettingsGetRevision)(LONGLONG* revision) = 0;
  3007. +
  3008. +  // export the whole settings record to a binary data buffer
  3009. +  // the buffer is allocated by SettingsExport by using LocalAlloc
  3010. +  // it's the caller's responsibility to free the buffer again by using LocalFree
  3011. +  STDMETHOD_(BOOL, SettingsExport)(LPVOID* buf, int* size) = 0;
  3012. +  // import the settings from a binary data buffer
  3013. +  STDMETHOD_(BOOL, SettingsImport)(LPVOID buf, int size) = 0;
  3014. +
  3015. +  // modify a specific value
  3016. +  STDMETHOD_(BOOL, SettingsSetString )(LPCWSTR path, LPCWSTR value) = 0;
  3017. +  STDMETHOD_(BOOL, SettingsSetInteger)(LPCWSTR path, int     value) = 0;
  3018. +  STDMETHOD_(BOOL, SettingsSetBoolean)(LPCWSTR path, BOOL    value) = 0;
  3019. +
  3020. +  // The buffer for SettingsGetString must be provided by the caller and
  3021. +  // bufLenInChars set to the buffer's length (please note: 1 char -> 2 bytes).
  3022. +  // If the buffer is too small, the API fails and GetLastError returns
  3023. +  // ERROR_MORE_DATA. On return, bufLenInChars is set to the required buffer size.
  3024. +  // The buffer for SettingsGetBinary is allocated by SettingsGetBinary.
  3025. +  // The caller is responsible for freeing it by using LocalAlloc().
  3026. +  STDMETHOD_(BOOL, SettingsGetString )(LPCWSTR path, LPCWSTR value, int* bufLenInChars) = 0;
  3027. +  STDMETHOD_(BOOL, SettingsGetInteger)(LPCWSTR path, int*    value) = 0;
  3028. +  STDMETHOD_(BOOL, SettingsGetBoolean)(LPCWSTR path, BOOL*   value) = 0;
  3029. +  STDMETHOD_(BOOL, SettingsGetBinary )(LPCWSTR path, LPVOID* value, int* bufLenInBytes) = 0;
  3030. +};
  3031. +
  3032. +[uuid("1C3E03D6-F422-4D31-9424-75936F663BF7")]
  3033. +interface IMadVRSettings2 : public IMadVRSettings
  3034. +{
  3035. +  // Enumerate the available settings stuff in the specified path.
  3036. +  // Simply loop from enumIndex 0 to infinite, until the enumeration returns FALSE.
  3037. +  // When enumeration is completed GetLastError returns ERROR_NO_MORE_ITEMS.
  3038. +  // The buffers must be provided by the caller and ...LenInChars set to the
  3039. +  // buffer's length (please note: 1 char -> 2 bytes). If the buffer is too small,
  3040. +  // the API fails and GetLastError returns ERROR_MORE_DATA. On return,
  3041. +  // ...LenInChars is set to the required buffer size.
  3042. +  STDMETHOD_(BOOL, SettingsEnumFolders      )(LPCWSTR path, int enumIndex, LPCWSTR id, LPCWSTR name, LPCWSTR type, int* idLenInChars, int* nameLenInChars, int* typeLenInChars) = 0;
  3043. +  STDMETHOD_(BOOL, SettingsEnumValues       )(LPCWSTR path, int enumIndex, LPCWSTR id, LPCWSTR name, LPCWSTR type, int* idLenInChars, int* nameLenInChars, int* typeLenInChars) = 0;
  3044. +  STDMETHOD_(BOOL, SettingsEnumProfileGroups)(LPCWSTR path, int enumIndex,             LPCWSTR name,                                  int* nameLenInChars                     ) = 0;
  3045. +  STDMETHOD_(BOOL, SettingsEnumProfiles     )(LPCWSTR path, int enumIndex,             LPCWSTR name,                                  int* nameLenInChars                     ) = 0;
  3046. +
  3047. +  // Creates/deletes a profile group in the specified path.
  3048. +  // Deleting a profile group works only if there's only one profile left in the group.
  3049. +  // Example:
  3050. +  // SettingsCreateProfileGroup('scalingParent', 'imageDoubling|lumaUp', 'upscaling profiles', 'SD 24fps');
  3051. +  // SettingsDeleteProfileGroup('scalingParent\upscaling profiles');
  3052. +  STDMETHOD_(BOOL, SettingsCreateProfileGroup)(LPCWSTR path, LPCWSTR settingsPageList, LPCWSTR profileGroupName, LPCWSTR firstProfileName) = 0;
  3053. +  STDMETHOD_(BOOL, SettingsDeleteProfileGroup)(LPCWSTR path) = 0;
  3054. +
  3055. +  // SettingsAddProfile adds a new profile, using default parameters for all values.
  3056. +  // SettingsDuplicateProfile duplicates/copies a profile with all parameters.
  3057. +  // Deleting a profile works only if it isn't the only profile left in the group.
  3058. +  // Example:
  3059. +  // SettingsAddProfile('scalingParent\upscaling profiles', 'SD 60fps');
  3060. +  // SettingsDuplicateProfile('scalingParent\upscaling profiles', 'SD 60fps', 'HD 24fps');
  3061. +  // SettingsDeleteProfile('scalingParent\upscaling profiles', 'SD 60fps');
  3062. +  STDMETHOD_(BOOL, SettingsAddProfile      )(LPCWSTR path,                              LPCWSTR newProfileName) = 0;
  3063. +  STDMETHOD_(BOOL, SettingsDuplicateProfile)(LPCWSTR path, LPCWSTR originalProfileName, LPCWSTR newProfileName) = 0;
  3064. +  STDMETHOD_(BOOL, SettingsDeleteProfile   )(LPCWSTR path, LPCWSTR         profileName                        ) = 0;
  3065. +
  3066. +  // SettingsActivateProfile activates the specified profile.
  3067. +  // It also disables automatic (rule based) profile selection.
  3068. +  // SettingsAutoselectProfile allows you to reactivate it.
  3069. +  // Example:
  3070. +  // if SettingsIsProfileActive('scalingParent\upscaling profiles', 'SD 24fps') then
  3071. +  // begin
  3072. +  //   SettingsActivateProfile('scalingParent\upscaling profiles', 'SD 60fps');
  3073. +  //   [...]
  3074. +  //   SettingsAutoselectProfile('scalingParent\upscaling profiles');
  3075. +  STDMETHOD_(BOOL, SettingsIsProfileActive)(LPCWSTR path, LPCWSTR profileName) = 0;
  3076. +  STDMETHOD_(BOOL, SettingsActivateProfile)(LPCWSTR path, LPCWSTR profileName) = 0;
  3077. +  STDMETHOD_(BOOL, SettingsIsProfileAutoselected)(LPCWSTR path) = 0;
  3078. +  STDMETHOD_(BOOL, SettingsAutoselectProfile)(LPCWSTR path) = 0;
  3079. +};
  3080. +
  3081. +// available settings: id, name, type, valid values
  3082. +// ------------------------------------------------
  3083. +// devices, devices
  3084. +//   %monitorId%, %monitorName%
  3085. +//     %id%, identification
  3086. +//       edid,                      edid,                                                               binary
  3087. +//       monitorName,               monitor name,                                                       string
  3088. +//       deviceId,                  device id,                                                          string
  3089. +//       outputDevice,              output device,                                                      string
  3090. +//     properties, properties
  3091. +//       levels,                    levels,                                                             string,  TV Levels|PC Levels|Custom
  3092. +//       black,                     black,                                                              integer, 0..48
  3093. +//       white,                     white,                                                              integer, 200..255
  3094. +//       displayBitdepth,           native display bitdepth,                                            integer, 6..10
  3095. +//     calibration, calibration
  3096. +//       calibrate,                 calibrate display,                                                  string,  disable calibration controls for this display|this display is already calibrated|calibrate this display by using yCMS|calibrate this display by using an external 3dlut file
  3097. +//       disableGpuGammaRamps,      disable GPU gamma ramps,                                            boolean
  3098. +//       external3dlutFile,         external 3dlut file,                                                string
  3099. +//       gamutMeasurements,         gamut measurements,                                                 string
  3100. +//       gammaMeasurements,         gamma measurements,                                                 string
  3101. +//       displayPrimaries,          display primaries,                                                  string,  BT.709 (HD)|BT.601 (SD)|PAL|something else
  3102. +//       displayGammaCurve,         display gamma curve,                                                string,  pure power curve|BT.709/601 curve|something else
  3103. +//       displayGammaValue,         display gamma value,                                                string,  1.80|1.85|1.90|1.95|2.00|2.05|2.10|2.15|2.20|2.25|2.30|2.35|2.40|2.45|2.50|2.55|2.60|2.65|2.70|2.75|2.80
  3104. +//     displayModes, display modes
  3105. +//       enableDisplayModeChanger,  switch to matching display mode...,                                 boolean
  3106. +//       changeDisplayModeOnPlay,   ... when playback starts,                                           boolean
  3107. +//       restoreDisplayMode,        restore original display mode...,                                   boolean
  3108. +//       restoreDisplayModeOnClose, ... when media player is closed,                                    boolean
  3109. +//       slowdown,                  treat 25p movies as 24p  (requires Reclock),                        boolean
  3110. +//       displayModesData,          display modes data,                                                 binary
  3111. +//     colorGamma, color & gamma
  3112. +//       brightness,                brightness,                                                         integer, -100..+100
  3113. +//       contrast,                  contrast,                                                           integer, -100..+100
  3114. +//       saturation,                saturation,                                                         integer, -100..+100
  3115. +//       hue,                       hue,                                                                integer, -180..+180
  3116. +//       enableGammaProcessing,     enable gamma processing,                                            boolean
  3117. +//       currentGammaCurve,         current gamma curve,                                                string,  pure power curve|BT.709/601 curve
  3118. +//       currentGammaValue,         current gamma value,                                                string,  1.80|1.85|1.90|1.95|2.00|2.05|2.10|2.15|2.20|2.25|2.30|2.35|2.40|2.45|2.50|2.55|2.60|2.65|2.70|2.75|2.80
  3119. +// processing, processing
  3120. +//   decoding, processing
  3121. +//     decodeH264,                  decode h264,                                                        string,  disable|libav|intel|hardware
  3122. +//     decodeVc1,                   decode VC-1,                                                        string,  disable|libav|intel|hardware
  3123. +//     decodeMpeg2,                 decode MPEG2,                                                       string,  disable|libav|intel|hardware
  3124. +//   deinterlacing, deinterlacing
  3125. +//     autoActivateDeinterlacing,   automatically activate deinterlacing when needed,                   boolean
  3126. +//     ifInDoubtDeinterlace,        if in doubt, activate deinterlacing,                                boolean
  3127. +//     contentType,                 source type,                                                        string,  auto|film|video
  3128. +//     scanPartialFrame,            only look at pixels in the frame center,                            boolean
  3129. +//     deinterlaceThread,           perform deinterlacing in separate thread,                           boolean
  3130. +//   artifactRemoval, artifact removal
  3131. +//     debandActive,                reduce banding artifacts,                                           boolean
  3132. +//     debandLevel,                 default debanding strength,                                         integer, 0..2
  3133. +//     debandFadeLevel,             strength during fade in/out,                                        integer, 0..2
  3134. +// scalingParent, scaling algorithms
  3135. +//   chromaUp, chroma upscaling
  3136. +//     chromaUp,                    chroma upsampling,                                                  string,  Nearest Neighbor|Bilinear|Mitchell-Netravali|Catmull-Rom|Bicubic50|Bicubic60|Bicubic75|Bicubic100|SoftCubic50|SoftCubic60|SoftCubic70|SoftCubic80|SoftCubic100|Lanczos3|Lanczos4|Lanczos8|Spline36|Spline64|Jinc3|Jinc4|Jinc8|Nnedi16|Nnedi32|Nnedi64|Nnedi128|Nnedi256
  3137. +//     chromaAntiRinging,           activate anti-ringing filter for chroma upsampling,                 boolean
  3138. +//   imageDoubling, image doubling
  3139. +//     nnediDLEnable,               use NNEDI3 to double Luma resolution,                               boolean
  3140. +//     nnediDCEnable,               use NNEDI3 to double Chroma resolution,                             boolean
  3141. +//     nnediQLEnable,               use NNEDI3 to quadruple Luma resolution,                            boolean
  3142. +//     nnediQCEnable,               use NNEDI3 to quadruple Chroma resolution,                          boolean
  3143. +//     nnediDLScalingFactor,        when to use NNEDI3 to double Luma resolution,                       string,  1.2x|1.5x|2.0x|always
  3144. +//     nnediDCScalingFactor,        when to use NNEDI3 to double Chroma resolution,                     string,  1.2x|1.5x|2.0x|always
  3145. +//     nnediQLScalingFactor,        when to use NNEDI3 to quadruple Luma resolution,                    string,  1.2x|1.5x|2.0x|always
  3146. +//     nnediQCScalingFactor,        when to use NNEDI3 to quadruple Chroma resolution,                  string,  1.2x|1.5x|2.0x|always
  3147. +//     nnediDLQuality,              NNEDI3 double Luma quality,                                         integer, 0..4
  3148. +//     nnediDLQuality,              NNEDI3 double Chroma quality,                                       integer, 0..4
  3149. +//     nnediDLQuality,              NNEDI3 quadruple Luma quality,                                      integer, 0..4
  3150. +//     nnediDLQuality,              NNEDI3 quadruple Chroma quality,                                    integer, 0..4
  3151. +//   lumaUp, image upscaling
  3152. +//     lumaUp,                      image upscaling,                                                    string,  Nearest Neighbor|Bilinear|Dxva|Mitchell-Netravali|Catmull-Rom|Bicubic50|Bicubic60|Bicubic75|Bicubic100|SoftCubic50|SoftCubic60|SoftCubic70|SoftCubic80|SoftCubic100|Lanczos3|Lanczos4|Lanczos8|Spline36|Spline64|Jinc3|Jinc4|Jinc8
  3153. +//     lumaUpAntiRinging,           activate anti-ringing filter for luma upsampling,                   boolean
  3154. +//     lumaUpLinear,                upscale luma in linear light,                                       boolean
  3155. +//   lumaDown, image downscaling
  3156. +//     lumaDown,                    image downscaling,                                                  string,  Nearest Neighbor|Bilinear|Dxva|Mitchell-Netravali|Catmull-Rom|Bicubic50|Bicubic60|Bicubic75|Bicubic100|SoftCubic50|SoftCubic60|SoftCubic70|SoftCubic80|SoftCubic100|Lanczos3|Lanczos4|Lanczos8|Spline36|Spline64
  3157. +//     lumaDownAntiRinging,         activate anti-ringing filter for luma downsampling,                 boolean
  3158. +//     lumaDownLinear,              downscale luma in linear light,                                     boolean
  3159. +// rendering, rendering
  3160. +//   basicRendering, general settings
  3161. +//     managedUpload,               use managed upload textures (XP only),                              boolean
  3162. +//     uploadInRenderThread,        upload frames in render thread,                                     boolean
  3163. +//     delayPlaybackStart2,         delay playback start until render queue is full,                    boolean
  3164. +//     delaySeek,                   delay playback start after seeking, too,                            boolean
  3165. +//     enableOverlay,               enable windowed overlay (Windows 7 and newer),                      boolean
  3166. +//     enableExclusive,             enable automatic fullscreen exclusive mode,                         boolean
  3167. +//     disableAero,                 disable desktop composition (Vista and newer),                      boolean
  3168. +//     disableAeroCfg,              disable desktop composition configuration,                          string,  during exclusive - windowed mode switch|while madVR is in exclusive mode|while media player is in fullscreen mode|always
  3169. +//     splitNv12ViaOpenCL,          use OpenCL to process DXVA NV12 surfaces (Intel, AMD),              boolean
  3170. +//     separateDevice,              use a separate device for presentation (Vista and newer),           boolean
  3171. +//     useD3d11,                    use D3D11 for presentation,                                         boolean
  3172. +//     dxvaDevice,                  use separate device for DXVA processing (Vista and newer),          boolean
  3173. +//     cpuQueueSize,                CPU queue size,                                                     integer, 4..32
  3174. +//     gpuQueueSize,                GPU queue size,                                                     integer, 4..24
  3175. +//   windowedTweaks, windowed mode settings
  3176. +//     backbufferCount,             no of backbuffers,                                                  integer, 1..8
  3177. +//     flushAfterRenderSteps,       after render steps,                                                 string,  don''t flush|flush|flush & wait (sleep)|flush & wait (loop)
  3178. +//     flushAfterLastStep,          after last step,                                                    string,  don''t flush|flush|flush & wait (sleep)|flush & wait (loop)
  3179. +//     flushAfterBackbuffer,        after backbuffer,                                                   string,  don''t flush|flush|flush & wait (sleep)|flush & wait (loop)
  3180. +//     flushAfterPresent,           after present,                                                      string,  don''t flush|flush|flush & wait (sleep)|flush & wait (loop)
  3181. +//   exclusiveSettings, exclusive mode settings
  3182. +//     enableSeekbar,               show seek bar,                                                      boolean
  3183. +//     exclusiveDelay,              delay switch to exclusive mode by 3 seconds,                        boolean
  3184. +//     oldExclusivePath,            use old rendering path,                                             boolean
  3185. +//     presentThread,               run presentation in a separate thread,                              boolean
  3186. +//     avoidGlitches,               limit rendering times to avoid glitches,                            boolean
  3187. +//     overshootMaxLatency,         overshoot max frame latency (Vista and newer),                      boolean
  3188. +//     preRenderFrames,             no of pre-presented frames,                                         integer, 1..16
  3189. +//     backbufferCountExcl,         no of backbuffers,                                                  integer, 1..8
  3190. +//     flushAfterRenderStepsExcl,   after render steps,                                                 string,  don''t flush|flush|flush & wait (sleep)|flush & wait (loop)
  3191. +//     flushAfterLastStepExcl,      after last step,                                                    string,  don''t flush|flush|flush & wait (sleep)|flush & wait (loop)
  3192. +//     flushAfterBackbufferExcl,    after backbuffer,                                                   string,  don''t flush|flush|flush & wait (sleep)|flush & wait (loop)
  3193. +//     flushAfterPresentExcl,       after present,                                                      string,  don''t flush|flush|flush & wait (sleep)|flush & wait (loop)
  3194. +//   smoothMotion, smooth motion
  3195. +//     smoothMotionEnabled,         enable smooth motion frame rate conversion,                         boolean
  3196. +//     smoothMotionMode,            smooth motion mode,                                                 string,  avoidJudder|almostAlways|always
  3197. +//   tradeQuality, trade quality for performance
  3198. +//     fastSubtitles,               optimize subtitles for performance instead of quality,              boolean
  3199. +//     customShaders16f,            store custom pixel shader results in 16bit buffer instead of 32bit, boolean
  3200. +//     noErrorDif,                  use random dithering instead of OpenCL error diffusion,             boolean
  3201. +//     noGradientAngles,            don't analyze gradient angles for debanding,                        boolean
  3202. +//     dontRerenderFades,           don't rerender frames when fade in/out is detected,                 boolean
  3203. +//     noDeintCopyback,             don't use "copyback" for DXVA deinterlacing,                        boolean
  3204. +//     noDecodeCopyback,            don't use "copyback" for DXVA decoding,                             boolean
  3205. +//     gammaBlending,               don't use linear light for smooth motion frame blending,            boolean
  3206. +//     10bitChroma,                 use 10bit chroma buffer instead of 16bit,                           boolean
  3207. +//     10bitLuma,                   use 10bit image buffer instead of 16bit,                            boolean
  3208. +//     customShadersTv,             run custom pixel shaders in video levels instead of PC levels,      boolean
  3209. +//     3dlutLowerBitdepth,          use lower bitdepth for yCMS 3dlut calibration,                      boolean
  3210. +//     3dlutBitdepth,               3dlut bitdepth,                                                     integer, 6..7
  3211. +//     halfDxvaDeintFramerate,      use half frame rate for DXVA deinterlacing,                         boolean
  3212. +//     dontDither,                  don't use dithering,                                                boolean
  3213. +// ui, user interface
  3214. +//   keys, keyboard shortcuts
  3215. +//     keysOnlyIfFocused,           use only if media player has keyboard focus,                        boolean
  3216. +//     keyDebugOsd,                 debug OSD - toggle on/off,                                          string
  3217. +//     keyResetStats,               debug OSD - reset statistics,                                       string
  3218. +//     keyFreezeReport,             create freeze report,                                               string
  3219. +//     keyOutputLevels,             output levels - toggle,                                             string
  3220. +//     keySourceLevels,             source levels - toggle,                                             string
  3221. +//     keySourceBlackInc,           source black level - increase,                                      string
  3222. +//     keySourceBlackDec,           source black level - decrease,                                      string
  3223. +//     keySourceWhiteInc,           source white level - increase,                                      string
  3224. +//     keySourceWhiteDec,           source white level - decrease,                                      string
  3225. +//     keySourceBrightnessInc,      source brightness - increase,                                       string
  3226. +//     keySourceBrightnessDec,      source brightness - decrease,                                       string
  3227. +//     keySourceContrastInc,        source contrast - increase,                                         string
  3228. +//     keySourceContrastDec,        source contrast - decrease,                                         string
  3229. +//     keySourceSaturationInc,      source saturation - increase,                                       string
  3230. +//     keySourceSaturationDec,      source saturation - decrease,                                       string
  3231. +//     keySourceHueInc,             source hue - increase,                                              string
  3232. +//     keySourceHueDec,             source hue - decrease,                                              string
  3233. +//     keySourceColorControlReset,  source color control - reset,                                       string
  3234. +//     keyMatrix,                   source decoding matrix - toggle,                                    string
  3235. +//     keyPrimaries,                source primaries - toggle,                                          string
  3236. +//     keyPrimariesEbu,             source primaries - set to "EBU/PAL",                                string
  3237. +//     keyPrimaries709,             source primaries - set to "BT.709",                                 string
  3238. +//     keyPrimariesSmpteC,          source primaries - set to "SMPTE C",                                string
  3239. +//     keyPrimaries2020,            source primaries - set to "BT.2020",                                string
  3240. +//     keyPrimariesDci,             source primaries - set to "DCI-P3",                                 string
  3241. +//     keyDeint,                    deinterlacing - toggle,                                             string
  3242. +//     keyDeintFieldOrder,          deinterlacing field order - toggle,                                 string
  3243. +//     keyDeintContentType,         deinterlacing content type - toggle,                                string
  3244. +//     keyDeintContentTypeFilm,     deinterlacing content type - set to "film",                         string
  3245. +//     keyDeintContentTypeVideo,    deinterlacing content type - set to "video",                        string
  3246. +//     keyDeintContentTypeAuto,     deinterlacing content type - set to "auto detect",                  string
  3247. +//     keyDeband,                   debanding - toggle,                                                 string
  3248. +//     keyDebandCustom,             debanding custom settings - toggle,                                 string
  3249. +//     keyDesiredGammaCurve,        desired display gamma curve - toggle,                               string
  3250. +//     keyDesiredGammaValueInc,     desired display gamma value - increase,                             string
  3251. +//     keyDesiredGammaValueDec,     desired display gamma value - decrease,                             string
  3252. +//     keyFseEnable,                automatic fullscreen exclusive mode - enable,                       string
  3253. +//     keyFseDisable,               automatic fullscreen exclusive mode - disable,                      string
  3254. +//     keyFseDisable10,             automatic fullscreen exclusive mode - disable for 10 seconds,       string
  3255. +//     keyEnableSmoothMotion,       enable smooth motion frame rate conversion,                         string
  3256. +//     keyDisableSmoothMotion,      disable smooth motion frame rate conversion,                        string
  3257. +//     keyChromaAlgo,               chroma upscaling algorithm - toggle,                                string
  3258. +//     keyChromaAlgoNearest,        chroma upscaling algorithm - set to "Nearest Neighbor",             string
  3259. +//     keyChromaAlgoBilinear,       chroma upscaling algorithm - set to "Bilinear",                     string
  3260. +//     keyChromaAlgoMitchell,       chroma upscaling algorithm - set to "Mitchell-Netravali",           string
  3261. +//     keyChromaAlgoCatmull,        chroma upscaling algorithm - set to "Catmull-Rom",                  string
  3262. +//     keyChromaAlgoBicubic,        chroma upscaling algorithm - set to "Bicubic",                      string
  3263. +//     keyChromaAlgoSoftCubic,      chroma upscaling algorithm - set to "SoftCubic",                    string
  3264. +//     keyChromaAlgoLanczos,        chroma upscaling algorithm - set to "Lanczos",                      string
  3265. +//     keyChromaAlgoSpline,         chroma upscaling algorithm - set to "Spline",                       string
  3266. +//     keyChromaAlgoJinc,           chroma upscaling algorithm - set to "Jinc",                         string
  3267. +//     keyChromaAlgoParamInc,       chroma upscaling algorithm parameter - increase,                    string
  3268. +//     keyChromaAlgoParamDec,       chroma upscaling algorithm parameter - decrease,                    string
  3269. +//     keyChromaAntiRing,           chroma upscaling anti-ringing filter - toggle on/off,               string
  3270. +//     keyImageUpAlgo,              image upscaling algorithm - toggle,                                 string
  3271. +//     keyImageUpAlgoNearest,       image upscaling algorithm - set to "Nearest Neighbor",              string
  3272. +//     keyImageUpAlgoBilinear,      image upscaling algorithm - set to "Bilinear",                      string
  3273. +//     keyImageUpAlgoDxva,          image upscaling algorithm - set to "DXVA2",                         string
  3274. +//     keyImageUpAlgoMitchell,      image upscaling algorithm - set to "Mitchell-Netravali",            string
  3275. +//     keyImageUpAlgoCatmull,       image upscaling algorithm - set to "Catmull-Rom",                   string
  3276. +//     keyImageUpAlgoBicubic,       image upscaling algorithm - set to "Bicubic",                       string
  3277. +//     keyImageUpAlgoSoftCubic,     image upscaling algorithm - set to "SoftCubic",                     string
  3278. +//     keyImageUpAlgoLanczos,       image upscaling algorithm - set to "Lanczos",                       string
  3279. +//     keyImageUpAlgoSpline,        image upscaling algorithm - set to "Spline",                        string
  3280. +//     keyImageUpAlgoJinc,          image upscaling algorithm - set to "Jinc",                          string
  3281. +//     keyImageUpAlgoParamInc,      image upscaling algorithm parameter - increase,                     string
  3282. +//     keyImageUpAlgoParamDec,      image upscaling algorithm parameter - decrease,                     string
  3283. +//     keyImageUpAntiRing,          image upscaling anti-ringing filter - toggle on/off,                string
  3284. +//     keyImageUpLinear,            image upscaling in linear light - toggle on/off,                    string
  3285. +//     keyImageDownAlgo,            image downscaling algorithm - toggle,                               string
  3286. +//     keyImageDownAlgoNearest,     image downscaling algorithm - set to "Nearest Neighbor",            string
  3287. +//     keyImageDownAlgoBilinear,    image downscaling algorithm - set to "Bilinear",                    string
  3288. +//     keyImageDownAlgoDxva,        image downscaling algorithm - set to "DXVA2",                       string
  3289. +//     keyImageDownAlgoMitchell,    image downscaling algorithm - set to "Mitchell-Netravali",          string
  3290. +//     keyImageDownAlgoCatmull,     image downscaling algorithm - set to "Catmull-Rom",                 string
  3291. +//     keyImageDownAlgoBicubic,     image downscaling algorithm - set to "Bicubic",                     string
  3292. +//     keyImageDownAlgoSoftCubic,   image downscaling algorithm - set to "SoftCubic",                   string
  3293. +//     keyImageDownAlgoLanczos,     image downscaling algorithm - set to "Lanczos",                     string
  3294. +//     keyImageDownAlgoSpline,      image downscaling algorithm - set to "Spline",                      string
  3295. +//     keyImageDownAlgoParamInc,    image downscaling algorithm parameter - increase,                   string
  3296. +//     keyImageDownAlgoParamDec,    image downscaling algorithm parameter - decrease,                   string
  3297. +//     keyImageDownAntiRing,        image downscaling anti-ringing filter - toggle on/off,              string
  3298. +//     keyImageDownLinear,          image downscaling in linear light - toggle on/off,                  string
  3299. +//     keyDisplayModeChanger,       display mode switcher - toggle on/off,                              string
  3300. +//     keyDisplayBitdepth,          display bitdepth - toggle,                                          string
  3301. +//     keyDithering,                dithering - toggle on/off,                                          string
  3302. +//     keyErrorDif,                 error diffusion - toggle on/off,                                    string
  3303. +
  3304. +// profile settings: id, name, type, valid values
  3305. +// ----------------------------------------------
  3306. +// Profile Group 1
  3307. +//   keyToggleProfiles,             keyboard shortcut to toggle profiles,                               string
  3308. +//   autoselectRules,               profile auto select rules,                                          string
  3309. +//   Profile 1
  3310. +//     keyActivateProfile,          keyboard shortcut to activate this profile,                         string
  3311. +//     activateCmdline,             command line to execute when this profile is activated,             string
  3312. +//     deactivateCmdline,           command line to execute when this profile is deactivated,           string
  3313. +
  3314. +// ---------------------------------------------------------------------------
  3315. +// ISubRender
  3316. +// ---------------------------------------------------------------------------
  3317. +
  3318. +// the "ISubRender" interface is used by the internal subtitle rendering
  3319. +// engine in MPC-HC and PotPlayer for communication with madVR and with the
  3320. +// Haali Video Renderer
  3321. +
  3322. +interface ISubRenderCallback; // forward
  3323. +#if defined(HAS_DS_PLAYER)
  3324. +#else
  3325. +// interface exported by madVR
  3326. +[uuid("9CC7F9F7-3ED1-493c-AF65-527EA1D9947F")]
  3327. +interface ISubRender : public IUnknown
  3328. +{
  3329. +  STDMETHOD(SetCallback)(ISubRenderCallback *callback) = 0;
  3330. +};
  3331. +
  3332. +// callback interfaces can provide madVR with
  3333. +[uuid("CD6D2AA5-20D3-4ebe-A8A9-34D3B00CC253")]
  3334. +interface ISubRenderCallback : public IUnknown
  3335. +{
  3336. +  STDMETHOD(SetDevice)(IDirect3DDevice9 *device) = 0;
  3337. +  STDMETHOD(Render)(REFERENCE_TIME frameStart, int left, int top, int right, int bottom, int width, int height) = 0;
  3338. +};
  3339. +[uuid("E602585E-C05A-4828-AC69-AF92997F2E0C")]
  3340. +interface ISubRenderCallback2 : public ISubRenderCallback
  3341. +{
  3342. +  STDMETHOD(RenderEx)(REFERENCE_TIME frameStart, REFERENCE_TIME frameStop, REFERENCE_TIME avgTimePerFrame, int left, int top, int right, int bottom, int width, int height) = 0;
  3343. +};
  3344. +#endif
  3345. +// ---------------------------------------------------------------------------
  3346. +// IMadVRExclusiveModeInfo (obsolete)
  3347. +// ---------------------------------------------------------------------------
  3348. +
  3349. +// CAUTION: This interface is obsolete. Use IMadVRInfo instead:
  3350. +// IMadVRInfo::InfoGetBoolean("ExclusiveModeActive")
  3351. +// IMadVRInfo::InfoGetBoolean("MadVRSeekbarEnabled")
  3352. +
  3353. +// this interface allows you to ask...
  3354. +// ... whether madVR is currently in exclusive mode
  3355. +// ... whether the madVR exclusive mode seek bar is currently enabled
  3356. +
  3357. +// If madVR is in fullscreen exclusive mode, you should be careful with
  3358. +// which GUI you show, because showing any window based GUI will make madVR
  3359. +// automatically switch back to windowed mode. That's ok if that's what you
  3360. +// really want, just be aware of that. A good alternative is to use the
  3361. +// graphical or text base OSD interfaces (see above). Using them instead of
  3362. +// a window based GUI means that madVR can stay in exclusive mode all the
  3363. +// time.
  3364. +
  3365. +// Since madVR has its own seek bar (which is only shown in fullscreen
  3366. +// exclusive mode, though), before showing your own seek bar you should
  3367. +// check whether madVR is in fullscreen exclusive mode and whether the
  3368. +// user has enabled madVR's own seek bar. If so, you should probably not
  3369. +// show your own seek bar. If the user, however, has the madVR seek bar
  3370. +// disabled, you should still show your own seek bar, because otherwise
  3371. +// the user will have no way to seek at all.
  3372. +
  3373. +[uuid("D6EE8031-214E-4E9E-A3A7-458925F933AB")]
  3374. +interface IMadVRExclusiveModeInfo : public IUnknown
  3375. +{
  3376. +  STDMETHOD_(BOOL, IsExclusiveModeActive)(void) = 0;
  3377. +  STDMETHOD_(BOOL, IsMadVRSeekbarEnabled)(void) = 0;
  3378. +};
  3379. +
  3380. +// ---------------------------------------------------------------------------
  3381. +// IMadVRRefreshRateInfo (obsolete)
  3382. +// ---------------------------------------------------------------------------
  3383. +
  3384. +// CAUTION: This interface is obsolete. Use IMadVRInfo instead:
  3385. +// IMadVRInfo::InfoGetDouble("RefreshRate")
  3386. +
  3387. +// this interface allows you to ask madVR about the detected refresh rate
  3388. +
  3389. +[uuid("3F6580E8-8DE9-48D0-8E4E-1F26FE02413E")]
  3390. +interface IMadVRRefreshRateInfo : public IUnknown
  3391. +{
  3392. +  STDMETHOD(GetRefreshRate)(double *refreshRate) = 0;
  3393. +};
  3394. +
  3395. +// ---------------------------------------------------------------------------
  3396. +
  3397. +#endif // __mvrInterfaces__
  3398. diff --git a/xbmc/cores/DSPlayer/GraphFilters.cpp b/xbmc/cores/DSPlayer/GraphFilters.cpp
  3399. index e3079d1..5ddf216 100644
  3400. --- a/xbmc/cores/DSPlayer/GraphFilters.cpp
  3401. +++ b/xbmc/cores/DSPlayer/GraphFilters.cpp
  3402. @@ -31,6 +31,7 @@ CGraphFilters *CGraphFilters::m_pSingleton = NULL;
  3403.  CGraphFilters::CGraphFilters():
  3404.    m_isDVD(false), m_UsingDXVADecoder(false), m_CurrentRenderer(DIRECTSHOW_RENDERER_UNDEF)
  3405.  {
  3406. +  m_pMadvr = NULL;
  3407.  }
  3408.  
  3409.  CGraphFilters::~CGraphFilters()
  3410. @@ -42,4 +43,11 @@ CGraphFilters* CGraphFilters::Get()
  3411.    return (m_pSingleton) ? m_pSingleton : (m_pSingleton = new CGraphFilters());
  3412.  }
  3413.  
  3414. +bool CGraphFilters::UsingMadVr()
  3415. +{
  3416. +  if (m_pMadvr == NULL)
  3417. +    return false;
  3418. +  return true;
  3419. +
  3420. +}
  3421.  #endif
  3422. \ No newline at end of file
  3423. diff --git a/xbmc/cores/DSPlayer/GraphFilters.h b/xbmc/cores/DSPlayer/GraphFilters.h
  3424. index 7f6c17d..d7b19b6 100644
  3425. --- a/xbmc/cores/DSPlayer/GraphFilters.h
  3426. +++ b/xbmc/cores/DSPlayer/GraphFilters.h
  3427. @@ -29,6 +29,7 @@
  3428.  
  3429.  #include "DSUtil/DSUtil.h"
  3430.  #include "DSUtil/SmartPtr.h"
  3431. +#include "IPaintCallback.h"
  3432.  #include "streams.h"
  3433.  #include "utils/CharsetConverter.h"
  3434.  #include "system.h"
  3435. @@ -109,7 +110,8 @@ enum DIRECTSHOW_RENDERER
  3436.  {
  3437.      DIRECTSHOW_RENDERER_VMR9 = 1,
  3438.      DIRECTSHOW_RENDERER_EVR = 2,
  3439. -    DIRECTSHOW_RENDERER_UNDEF = 3
  3440. +    DIRECTSHOW_RENDERER_MADVR = 3,
  3441. +    DIRECTSHOW_RENDERER_UNDEF = 4
  3442.  };
  3443.  
  3444.  /** @brief Centralize graph filters management
  3445. @@ -154,6 +156,9 @@ public:
  3446.    /// @return The current renderer type (EVR or VMR9)
  3447.    DIRECTSHOW_RENDERER GetCurrentRenderer() { return m_CurrentRenderer; }  
  3448.  
  3449. +  IPaintCallbackMadvr* GetMadvrCallback() { return m_pMadvr;}
  3450. +
  3451. +
  3452.    /// @return True if using DXVA, false otherwise
  3453.    bool IsUsingDXVADecoder() { return m_UsingDXVADecoder; }
  3454.  
  3455. @@ -163,13 +168,15 @@ public:
  3456.    void SetIsUsingDXVADecoder(bool val) { m_UsingDXVADecoder = val; }
  3457.    void SetIsDVD(bool val) {  m_isDVD = val; }
  3458.    void SetCurrentRenderer(DIRECTSHOW_RENDERER renderer) { m_CurrentRenderer = renderer; }
  3459. -
  3460. +  void SetMadVrCallback(IPaintCallbackMadvr* pMadvr) { m_pMadvr = pMadvr;}
  3461. +  bool UsingMadVr();
  3462. +  
  3463.  private:
  3464.    CGraphFilters();
  3465.    ~CGraphFilters();
  3466.  
  3467.    static CGraphFilters* m_pSingleton;
  3468. -
  3469. +  IPaintCallbackMadvr* m_pMadvr;
  3470.    bool m_isDVD;
  3471.    bool m_UsingDXVADecoder;
  3472.    DIRECTSHOW_RENDERER m_CurrentRenderer;
  3473. diff --git a/xbmc/cores/DSPlayer/IPaintCallback.h b/xbmc/cores/DSPlayer/IPaintCallback.h
  3474. index 3dcf651..dfad11d 100644
  3475. --- a/xbmc/cores/DSPlayer/IPaintCallback.h
  3476. +++ b/xbmc/cores/DSPlayer/IPaintCallback.h
  3477. @@ -24,7 +24,7 @@
  3478.  #ifndef HAS_DS_PLAYER
  3479.  #error DSPlayer's header file included without HAS_DS_PLAYER defined
  3480.  #endif
  3481. -
  3482. +#include "guilib/Geometry.h"
  3483.  class IPaintCallback
  3484.  {
  3485.  public:
  3486. @@ -34,3 +34,11 @@ public:
  3487.    virtual void OnAfterPresent() = 0;
  3488.  };
  3489.  
  3490. +class IPaintCallbackMadvr
  3491. +{
  3492. +public:
  3493. +  virtual ~IPaintCallbackMadvr() {};
  3494. +
  3495. +  virtual bool IsReady() = 0;
  3496. +  virtual bool StartBack() = 0;
  3497. +};
  3498. \ No newline at end of file
  3499. diff --git a/xbmc/cores/DSPlayer/moreuuids.h b/xbmc/cores/DSPlayer/moreuuids.h
  3500. index 3bcf640..5092d61 100644
  3501. --- a/xbmc/cores/DSPlayer/moreuuids.h
  3502. +++ b/xbmc/cores/DSPlayer/moreuuids.h
  3503. @@ -395,8 +395,9 @@ DEFINE_GUID(MEDIASUBTYPE_PS2_SUB,
  3504.  DEFINE_GUID(CLSID_DXR,
  3505.                         0x760a8f35, 0x97e7, 0x479d, 0xaa, 0xf5, 0xda, 0x9e, 0xff, 0x95, 0xd7, 0x51);
  3506.  
  3507. -DEFINE_GUID(CLSID_madVR,
  3508. -                       0xe1a8b82a, 0x32ce, 0x4b0d, 0xbe, 0x0d, 0xaa, 0x68, 0xc7, 0x72, 0xe4, 0x23);
  3509. +/* already defined in mvrinterfaces.h
  3510. +DEFINE_GUID(CLSID_madVR, 0xe1a8b82a, 0x32ce, 0x4b0d, 0xbe, 0x0d, 0xaa, 0x68, 0xc7, 0x72, 0xe4, 0x23);
  3511. +*/
  3512.  
  3513.  //
  3514.  // Ogg
  3515. diff --git a/xbmc/cores/playercorefactory/PlayerCoreFactory.cpp b/xbmc/cores/playercorefactory/PlayerCoreFactory.cpp
  3516. index fcc779d..6dc8c65 100644
  3517. --- a/xbmc/cores/playercorefactory/PlayerCoreFactory.cpp
  3518. +++ b/xbmc/cores/playercorefactory/PlayerCoreFactory.cpp
  3519. @@ -89,10 +89,19 @@ IPlayer* CPlayerCoreFactory::CreatePlayer(const CStdString& strCore, IPlayerCall
  3520.  IPlayer* CPlayerCoreFactory::CreatePlayer(const PLAYERCOREID eCore, IPlayerCallback& callback) const
  3521.  {
  3522.    CSingleLock lock(m_section);
  3523. +  
  3524. +  for (int i = 0 ; i < m_vecCoreConfigs.size();i++)
  3525. +  {
  3526. +    if (m_vecCoreConfigs[i]->GetType() == eCore)
  3527. +      return m_vecCoreConfigs[i]->CreatePlayer(callback);
  3528. +  }
  3529. +  return NULL;
  3530. +  /*dont know why this crap dont work for me
  3531.    if (m_vecCoreConfigs.empty() || eCore-1 > m_vecCoreConfigs.size()-1)
  3532.      return NULL;
  3533. -
  3534. +    
  3535.    return m_vecCoreConfigs[eCore-1]->CreatePlayer(callback);
  3536. +  */
  3537.  }
  3538.  
  3539.  PLAYERCOREID CPlayerCoreFactory::GetPlayerCore(const CStdString& strCoreName) const
  3540. @@ -362,6 +371,9 @@ bool CPlayerCoreFactory::LoadConfiguration(const std::string &file, bool clear)
  3541.         CPlayerCoreConfig* dsplayer = new CPlayerCoreConfig("DSPlayer", EPC_DSPLAYER, NULL);
  3542.         dsplayer->m_bPlaysAudio = dsplayer->m_bPlaysVideo = true;
  3543.         m_vecCoreConfigs.push_back(dsplayer);
  3544. +  /*added those to fix the problem with the id of the player*/
  3545. +  m_vecCoreConfigs.push_back(dsplayer);
  3546. +  m_vecCoreConfigs.push_back(dsplayer);
  3547.  #endif
  3548.      for(std::vector<CPlayerSelectionRule *>::iterator it = m_vecCoreSelectionRules.begin(); it != m_vecCoreSelectionRules.end(); ++it)
  3549.        delete *it;
  3550. diff --git a/xbmc/rendering/dx/RenderSystemDX.cpp b/xbmc/rendering/dx/RenderSystemDX.cpp
  3551. index 83097d9..e6b301a 100644
  3552. --- a/xbmc/rendering/dx/RenderSystemDX.cpp
  3553. +++ b/xbmc/rendering/dx/RenderSystemDX.cpp
  3554. @@ -41,6 +41,7 @@
  3555.  #include "Util.h"
  3556.  #include "win32/WIN32Util.h"
  3557.  #include "video/VideoReferenceClock.h"
  3558. +#include "cores/DSPlayer/GraphFilters.h"
  3559.  #if (D3DX_SDK_VERSION >= 42) //aug 2009 sdk and up use dxerr
  3560.    #include <Dxerr.h>
  3561.  #else
  3562. @@ -777,7 +778,13 @@ bool CRenderSystemDX::ClearBuffers(color_t color)
  3563.    if (!m_bRenderCreated)
  3564.      return false;
  3565.  
  3566. -  if( FAILED( hr = m_pD3DDevice->Clear(
  3567. +  /*MADVR*/
  3568. +  if ((CGraphFilters::Get()->GetCurrentRenderer() == DIRECTSHOW_RENDERER_MADVR)&&(CGraphFilters::Get()->GetMadvrCallback() != NULL))
  3569. +  {
  3570. +  }
  3571. +  else
  3572. +  {
  3573. +    if( FAILED( hr = m_pD3DDevice->Clear(
  3574.      0,
  3575.      NULL,
  3576.      D3DCLEAR_TARGET,
  3577. @@ -785,6 +792,9 @@ bool CRenderSystemDX::ClearBuffers(color_t color)
  3578.      1.0,
  3579.      0 ) ) )
  3580.      return false;
  3581. +  }
  3582. +
  3583. +  
  3584.  
  3585.    return true;
  3586.  }
  3587. diff --git a/xbmc/settings/GUISettings.cpp b/xbmc/settings/GUISettings.cpp
  3588. index 5ec0d1c..611d459 100644
  3589. --- a/xbmc/settings/GUISettings.cpp
  3590. +++ b/xbmc/settings/GUISettings.cpp
  3591. @@ -875,8 +875,8 @@ void CGUISettings::Initialize()
  3592.    AddBool(dsp, "dsplayer.forcenondefaultrenderer", g_sysinfo.IsVistaOrHigher() ? 55001 : 55002 , false);
  3593.    AddString(dsp, "dsplayer.audiorenderer", 55003, "Default", SPIN_CONTROL_TEXT);
  3594.    AddSeparator(dsp, "dsplayer.sep1");
  3595. -
  3596. -  AddBool(dsp, "dsplayer.autofiltersettings", 55021, true);
  3597. +  /*i prefer windows merit to default off*/
  3598. +  AddBool(dsp, "dsplayer.autofiltersettings", 55021, false);
  3599.    AddBool(dsp, "dsplayer.bdautoloadindex", 55030, true);
  3600.    AddBool(dsp, "dsplayer.showbdtitlechoice", 55032, true);
  3601.    AddInt(dsp, "dsplayer.mintitlelength", 55022, 30, 0, 1, 300, SPIN_CONTROL_INT);
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top