Advertisement
Guest User

Untitled

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