diff --git a/src/mpc-hc/PPageOutput.cpp b/src/mpc-hc/PPageOutput.cpp index 5ca77908907..317755436e4 100644 --- a/src/mpc-hc/PPageOutput.cpp +++ b/src/mpc-hc/PPageOutput.cpp @@ -35,11 +35,51 @@ // CPPageOutput dialog +const std::set allVideoFeatures = { + VIDRND_DXVA_SUPPORT, + VIDRND_SAVEIMAGE_SUPPORT, + VIDRND_SHADER_SUPPORT, + VIDRND_ROTATION_SUPPORT, + VIDRND_HDR_SUPPORT, +}; + +const std::set allVideoFeaturesMinusHDR = { + VIDRND_DXVA_SUPPORT, + VIDRND_SAVEIMAGE_SUPPORT, + VIDRND_SHADER_SUPPORT, + VIDRND_ROTATION_SUPPORT, +}; + +const std::set onlySaveImage = { + VIDRND_SAVEIMAGE_SUPPORT, +}; + +featureSupportMap CPPageOutput::videoFeaturesSupported = { + {VIDRNDT_DS_EVR_CUSTOM, allVideoFeaturesMinusHDR}, + {VIDRNDT_DS_MPCVR, allVideoFeatures}, + {VIDRNDT_DS_SYNC, allVideoFeaturesMinusHDR}, + {VIDRNDT_DS_MADVR, allVideoFeatures}, + {VIDRNDT_DS_VMR9RENDERLESS, {VIDRND_SAVEIMAGE_SUPPORT}}, //plus others depending + {VIDRNDT_DS_DEFAULT, onlySaveImage}, + {VIDRNDT_DS_DXR, onlySaveImage}, + {VIDRNDT_DS_EVR, {VIDRND_DXVA_SUPPORT, VIDRND_SAVEIMAGE_SUPPORT}}, + {VIDRNDT_DS_NULL_COMP, {}}, + {VIDRNDT_DS_NULL_UNCOMP, {}}, + {VIDRNDT_DS_OVERLAYMIXER, {}}, + {VIDRNDT_DS_VMR9WINDOWED, onlySaveImage}, +}; + +const std::vector videoFeatureStrings = { + IDS_VIDEOFEATURES_DXVA, + IDS_VIDEOFEATURES_SCREENSHOT, + IDS_VIDEOFEATURES_SHADERS, + IDS_VIDEOFEATURES_ROTATION, + IDS_VIDEOFEATURES_HDR, +}; + IMPLEMENT_DYNAMIC(CPPageOutput, CMPCThemePPageBase) CPPageOutput::CPPageOutput() : CMPCThemePPageBase(CPPageOutput::IDD, CPPageOutput::IDD) - , m_tick(nullptr) - , m_cross(nullptr) , m_iDSVideoRendererType(VIDRNDT_DS_DEFAULT) , m_iAPSurfaceUsage(0) , m_iAudioRendererType(0) @@ -53,13 +93,14 @@ CPPageOutput::CPPageOutput() , m_iEvrBuffers(_T("5")) , m_fD3D9RenderDevice(FALSE) , m_iD3D9RenderDevice(-1) + , m_vidUnsupportedStr(L"") + , m_audioUnsupportedStr(L"") + , subtitlesSupported(false) { } CPPageOutput::~CPPageOutput() { - DestroyIcon(m_tick); - DestroyIcon(m_cross); } void CPPageOutput::UpdateAudioRenderer(CString audioRendererStr) @@ -84,11 +125,6 @@ void CPPageOutput::DoDataExchange(CDataExchange* pDX) DDX_Control(pDX, IDC_DX_SURFACE, m_APSurfaceUsageCtrl); DDX_Control(pDX, IDC_DX9RESIZER_COMBO, m_DX9ResizerCtrl); DDX_Control(pDX, IDC_EVR_BUFFERS, m_EVRBuffersCtrl); - DDX_Control(pDX, IDC_VIDRND_DXVA_SUPPORT, m_iDSDXVASupport); - DDX_Control(pDX, IDC_VIDRND_SUBTITLE_SUPPORT, m_iDSSubtitleSupport); - DDX_Control(pDX, IDC_VIDRND_SAVEIMAGE_SUPPORT, m_iDSSaveImageSupport); - DDX_Control(pDX, IDC_VIDRND_SHADER_SUPPORT, m_iDSShaderSupport); - DDX_Control(pDX, IDC_VIDRND_ROTATION_SUPPORT, m_iDSRotationSupport); DDX_CBIndex(pDX, IDC_AUDRND_COMBO, m_iAudioRendererType); DDX_CBIndex(pDX, IDC_DX_SURFACE, m_iAPSurfaceUsage); DDX_CBIndex(pDX, IDC_DX9RESIZER_COMBO, m_iDX9Resizer); @@ -166,8 +202,9 @@ BOOL CPPageOutput::OnInitDialog() // SaneAR m_AudioRendererDisplayNames.Add(AUDRNDT_INTERNAL); m_iAudioRendererTypeCtrl.AddString(ResStr(IDS_PPAGE_OUTPUT_AUD_INTERNAL_REND).GetString()); + m_iSaneAudioRendererType = m_iAudioRendererTypeCtrl.GetCount() - 1; if (s.strAudioRendererDisplayName == AUDRNDT_INTERNAL && m_iAudioRendererType == 0) { - m_iAudioRendererType = m_iAudioRendererTypeCtrl.GetCount() - 1; + m_iAudioRendererType = m_iSaneAudioRendererType; } // MPC AR m_AudioRendererDisplayNames.Add(AUDRNDT_MPC); @@ -334,13 +371,6 @@ BOOL CPPageOutput::OnInitDialog() UpdateData(FALSE); - m_tickcross.Create(16, 16, ILC_COLOR32, 2, 0); - CMPCPngImage tickcross; - tickcross.Load(IDF_TICKCROSS); - m_tickcross.Add(&tickcross, (CBitmap*)nullptr); - m_tick = m_tickcross.ExtractIcon(0); - m_cross = m_tickcross.ExtractIcon(1); - CreateToolTip(); m_wndToolTip.AddTool(GetDlgItem(IDC_VIDRND_COMBO), ResStr(IDC_DSSYSDEF)); @@ -469,27 +499,27 @@ void CPPageOutput::OnSurfaceChange() switch (m_iAPSurfaceUsage) { case VIDRNDT_AP_SURFACE: if (m_iDSVideoRendererType == VIDRNDT_DS_VMR9RENDERLESS) { - m_iDSShaderSupport.SetIcon(m_cross); - m_iDSRotationSupport.SetIcon(m_cross); + supportedVideoFeatures.erase(VIDRND_SHADER_SUPPORT); + supportedVideoFeatures.erase(VIDRND_ROTATION_SUPPORT); } m_wndToolTip.UpdateTipText(ResStr(IDC_REGULARSURF), GetDlgItem(IDC_DX_SURFACE)); break; case VIDRNDT_AP_TEXTURE2D: if (m_iDSVideoRendererType == VIDRNDT_DS_VMR9RENDERLESS) { - m_iDSShaderSupport.SetIcon(m_cross); - m_iDSRotationSupport.SetIcon(m_cross); + supportedVideoFeatures.erase(VIDRND_SHADER_SUPPORT); + supportedVideoFeatures.erase(VIDRND_ROTATION_SUPPORT); } m_wndToolTip.UpdateTipText(ResStr(IDC_TEXTURESURF2D), GetDlgItem(IDC_DX_SURFACE)); break; case VIDRNDT_AP_TEXTURE3D: if (m_iDSVideoRendererType == VIDRNDT_DS_VMR9RENDERLESS) { - m_iDSShaderSupport.SetIcon(m_tick); - m_iDSRotationSupport.SetIcon(m_tick); + supportedVideoFeatures.insert(VIDRND_SHADER_SUPPORT); + supportedVideoFeatures.insert(VIDRND_ROTATION_SUPPORT); } m_wndToolTip.UpdateTipText(ResStr(IDC_TEXTURESURF3D), GetDlgItem(IDC_DX_SURFACE)); break; } - + SetFeatureTooltips(); SetModified(); } @@ -519,31 +549,19 @@ void CPPageOutput::OnDSRendererChange() GetDlgItem(IDC_D3D9DEVICE)->EnableWindow(FALSE); GetDlgItem(IDC_D3D9DEVICE_COMBO)->EnableWindow(FALSE); - m_iDSDXVASupport.SetRedraw(FALSE); - m_iDSSaveImageSupport.SetRedraw(FALSE); - m_iDSShaderSupport.SetRedraw(FALSE); - m_iDSRotationSupport.SetRedraw(FALSE); - - m_iDSDXVASupport.SetIcon(m_cross); - m_iDSSaveImageSupport.SetIcon(m_cross); - m_iDSShaderSupport.SetIcon(m_cross); - m_iDSRotationSupport.SetIcon(m_cross); + supportedVideoFeatures.clear(); switch (m_iDSVideoRendererType) { case VIDRNDT_DS_DEFAULT: - m_iDSSaveImageSupport.SetIcon(m_tick); m_wndToolTip.UpdateTipText(ResStr(IDC_DSSYSDEF), GetDlgItem(IDC_VIDRND_COMBO)); break; case VIDRNDT_DS_OVERLAYMIXER: m_wndToolTip.UpdateTipText(ResStr(IDC_DSOVERLAYMIXER), GetDlgItem(IDC_VIDRND_COMBO)); break; case VIDRNDT_DS_VMR9WINDOWED: - m_iDSSaveImageSupport.SetIcon(m_tick); m_wndToolTip.UpdateTipText(ResStr(IDC_DSVMR9WIN), GetDlgItem(IDC_VIDRND_COMBO)); break; case VIDRNDT_DS_EVR: - m_iDSDXVASupport.SetIcon(m_tick); - m_iDSSaveImageSupport.SetIcon(m_tick); m_wndToolTip.UpdateTipText(_T(""), GetDlgItem(IDC_VIDRND_COMBO)); break; case VIDRNDT_DS_NULL_COMP: @@ -562,10 +580,9 @@ void CPPageOutput::OnDSRendererChange() GetDlgItem(IDC_FULLSCREEN_MONITOR_CHECK)->EnableWindow(TRUE); if (m_iAPSurfaceUsage == VIDRNDT_AP_TEXTURE3D) { - m_iDSShaderSupport.SetIcon(m_tick); - m_iDSRotationSupport.SetIcon(m_tick); + supportedVideoFeatures.insert(VIDRND_SHADER_SUPPORT); + supportedVideoFeatures.insert(VIDRND_ROTATION_SUPPORT); } - m_iDSSaveImageSupport.SetIcon(m_tick); m_wndToolTip.UpdateTipText(ResStr(IDC_DSVMR9REN), GetDlgItem(IDC_VIDRND_COMBO)); break; @@ -585,10 +602,6 @@ void CPPageOutput::OnDSRendererChange() GetDlgItem(IDC_DX_SURFACE)->EnableWindow(FALSE); ((CComboBox*)GetDlgItem(IDC_DX_SURFACE))->SetCurSel(2); - m_iDSDXVASupport.SetIcon(m_tick); - m_iDSSaveImageSupport.SetIcon(m_tick); - m_iDSShaderSupport.SetIcon(m_tick); - m_iDSRotationSupport.SetIcon(m_tick); m_wndToolTip.UpdateTipText(ResStr(IDC_DSEVR_CUSTOM), GetDlgItem(IDC_VIDRND_COMBO)); break; case VIDRNDT_DS_SYNC: @@ -603,56 +616,74 @@ void CPPageOutput::OnDSRendererChange() GetDlgItem(IDC_DX_SURFACE)->EnableWindow(FALSE); ((CComboBox*)GetDlgItem(IDC_DX_SURFACE))->SetCurSel(2); - m_iDSDXVASupport.SetIcon(m_tick); - m_iDSSaveImageSupport.SetIcon(m_tick); - m_iDSShaderSupport.SetIcon(m_tick); - m_iDSRotationSupport.SetIcon(m_tick); m_wndToolTip.UpdateTipText(ResStr(IDC_DSSYNC), GetDlgItem(IDC_VIDRND_COMBO)); break; case VIDRNDT_DS_MADVR: - m_iDSDXVASupport.SetIcon(m_tick); - m_iDSSaveImageSupport.SetIcon(m_tick); - m_iDSShaderSupport.SetIcon(m_tick); - m_iDSRotationSupport.SetIcon(m_tick); m_wndToolTip.UpdateTipText(ResStr(IDC_DSMADVR), GetDlgItem(IDC_VIDRND_COMBO)); break; case VIDRNDT_DS_DXR: - m_iDSSaveImageSupport.SetIcon(m_tick); m_wndToolTip.UpdateTipText(ResStr(IDC_DSDXR), GetDlgItem(IDC_VIDRND_COMBO)); break; case VIDRNDT_DS_MPCVR: - m_iDSDXVASupport.SetIcon(m_tick); - m_iDSSaveImageSupport.SetIcon(m_tick); - m_iDSShaderSupport.SetIcon(m_tick); - m_iDSRotationSupport.SetIcon(m_tick); m_wndToolTip.UpdateTipText(ResStr(IDC_DSMPCVR), GetDlgItem(IDC_VIDRND_COMBO)); break; } - m_iDSDXVASupport.SetRedraw(TRUE); - m_iDSDXVASupport.Invalidate(); - m_iDSDXVASupport.UpdateWindow(); - m_iDSSaveImageSupport.SetRedraw(TRUE); - m_iDSSaveImageSupport.Invalidate(); - m_iDSSaveImageSupport.UpdateWindow(); - m_iDSShaderSupport.SetRedraw(TRUE); - m_iDSShaderSupport.Invalidate(); - m_iDSShaderSupport.UpdateWindow(); - m_iDSRotationSupport.SetRedraw(TRUE); - m_iDSRotationSupport.Invalidate(); - m_iDSRotationSupport.UpdateWindow(); + std::set& features = videoFeaturesSupported[m_iDSVideoRendererType]; + for (int i = 0; i < VideoFeatureSupport::VIDRND_COUNT; i++) { + if (features.count(i)) { + supportedVideoFeatures.insert(i); + } + } + + SetFeatureTooltips(); UpdateSubtitleRendererList(); UpdateSubtitleSupport(); SetModified(); } +void CPPageOutput::SetFeatureTooltips() { + bool hasUnsupportedVideoFeatures = false; + + m_vidUnsupportedStr = ResStr(IDS_VIDEOFEATURES_UNSUPPORTED)+"\n"; + std::set& features = videoFeaturesSupported[m_iDSVideoRendererType]; + for (int i = 0; i < VideoFeatureSupport::VIDRND_COUNT; i++) { + if (!supportedVideoFeatures.count(i) && videoFeatureStrings.size() > i) { + m_vidUnsupportedStr += L"\n"; + m_vidUnsupportedStr += ResStr(videoFeatureStrings[i]); + hasUnsupportedVideoFeatures = true; + } + } + + GetDlgItem(IDC_STATIC1)->ShowWindow(hasUnsupportedVideoFeatures); + if (hasUnsupportedVideoFeatures) { + m_wndToolTip.AddTool(GetDlgItem(IDC_STATIC1), m_vidUnsupportedStr); + } else { + m_wndToolTip.DelTool(GetDlgItem(IDC_STATIC1)); + } + + if (m_iAudioRendererType == m_iSaneAudioRendererType || m_iAudioRendererType == m_iMPCAudioRendererType) { + GetDlgItem(IDC_STATIC2)->ShowWindow(FALSE); + } else { + GetDlgItem(IDC_STATIC2)->ShowWindow(TRUE); + m_audioUnsupportedStr = ResStr(IDS_AUDIOFEATURES_UNSUPPORTED) + "\n"; + m_audioUnsupportedStr += L"\n"; + m_audioUnsupportedStr += ResStr(IDS_AUDIOFEATURES_PITCH_CORRECTION); + + m_wndToolTip.AddTool(GetDlgItem(IDC_STATIC2), m_audioUnsupportedStr); + } + + GetDlgItem(IDC_STATIC3)->ShowWindow(!subtitlesSupported); +} + void CPPageOutput::OnAudioRendererChange() { UpdateData(); CPPageAudioRenderer* pAR = static_cast(FindSiblingPage(RUNTIME_CLASS(CPPageAudioRenderer))); if (pAR) { //audio renderer page visible, so we have to update it, too pAR->SetCurAudioRenderer(GetAudioRendererDisplayName()); } + SetFeatureTooltips(); SetModified(); } @@ -684,13 +715,13 @@ void CPPageOutput::UpdateSubtitleSupport() { auto subrenderer = static_cast(m_SubtitleRendererCtrl.GetItemData(m_SubtitleRendererCtrl.GetCurSel())); - bool supported = (m_iDSVideoRendererType != VIDRNDT_DS_NULL_COMP && + subtitlesSupported = (m_iDSVideoRendererType != VIDRNDT_DS_NULL_COMP && m_iDSVideoRendererType != VIDRNDT_DS_NULL_UNCOMP && subrenderer != CAppSettings::SubtitleRenderer::NONE && CAppSettings::IsSubtitleRendererRegistered(subrenderer) && CAppSettings::IsSubtitleRendererSupported(subrenderer, m_iDSVideoRendererType)); - m_iDSSubtitleSupport.SetIcon(supported ? m_tick : m_cross); + SetFeatureTooltips(); } void CPPageOutput::UpdateSubtitleRendererList() @@ -754,3 +785,4 @@ void CPPageOutput::OnD3D9DeviceCheck() GetDlgItem(IDC_D3D9DEVICE_COMBO)->EnableWindow(m_fD3D9RenderDevice); SetModified(); } + diff --git a/src/mpc-hc/PPageOutput.h b/src/mpc-hc/PPageOutput.h index 779cf20eb51..0c17af9a92d 100644 --- a/src/mpc-hc/PPageOutput.h +++ b/src/mpc-hc/PPageOutput.h @@ -29,6 +29,17 @@ // CPPageOutput dialog +enum VideoFeatureSupport { + VIDRND_DXVA_SUPPORT = 0, + VIDRND_SAVEIMAGE_SUPPORT, + VIDRND_SHADER_SUPPORT, + VIDRND_ROTATION_SUPPORT, + VIDRND_HDR_SUPPORT, + VIDRND_COUNT +}; + +typedef std::unordered_map> featureSupportMap; + class CPPageOutput : public CMPCThemePPageBase { DECLARE_DYNAMIC(CPPageOutput) @@ -36,8 +47,6 @@ class CPPageOutput : public CMPCThemePPageBase private: CStringArray m_AudioRendererDisplayNames; CStringArray m_D3D9GUIDNames; - CImageList m_tickcross; - HICON m_tick, m_cross; CMPCThemeComboBox m_iDSVideoRendererTypeCtrl; CMPCThemeComboBox m_iAudioRendererTypeCtrl; @@ -47,12 +56,6 @@ class CPPageOutput : public CMPCThemePPageBase CMPCThemeComboBox m_DX9ResizerCtrl; CMPCThemeComboBox m_EVRBuffersCtrl; - CStatic m_iDSDXVASupport; - CStatic m_iDSSubtitleSupport; - CStatic m_iDSSaveImageSupport; - CStatic m_iDSShaderSupport; - CStatic m_iDSRotationSupport; - void UpdateSubtitleSupport(); void UpdateSubtitleRendererList(); @@ -69,6 +72,7 @@ class CPPageOutput : public CMPCThemePPageBase int m_iAPSurfaceUsage; int m_iAudioRendererType; int m_iMPCAudioRendererType; + int m_iSaneAudioRendererType; CAppSettings::SubtitleRenderer m_lastSubrenderer; int m_iDX9Resizer; BOOL m_fVMR9MixerMode; @@ -77,10 +81,15 @@ class CPPageOutput : public CMPCThemePPageBase BOOL m_fResetDevice; BOOL m_fCacheShaders; CString m_iEvrBuffers; + static featureSupportMap videoFeaturesSupported; + std::set supportedVideoFeatures; + bool subtitlesSupported; + void SetFeatureTooltips(); BOOL m_fD3D9RenderDevice; int m_iD3D9RenderDevice; const CString& GetAudioRendererDisplayName(); + CStringW m_vidUnsupportedStr, m_audioUnsupportedStr; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support diff --git a/src/mpc-hc/mpc-hc.rc b/src/mpc-hc/mpc-hc.rc index c22f8faf062..7760232bbd1 100644 --- a/src/mpc-hc/mpc-hc.rc +++ b/src/mpc-hc/mpc-hc.rc @@ -746,27 +746,17 @@ BEGIN END IDD_PPAGEOUTPUT DIALOGEX 0, 0, 355, 289 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD +STYLE DS_SETFONT | WS_CHILD FONT 9, "Segoe UI", 400, 0, 0x1 BEGIN - GROUPBOX "DirectShow Video",IDC_STATIC,6,6,343,52 - COMBOBOX IDC_VIDRND_COMBO,13,19,260,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Settings",IDC_BUTTON1,282,19,61,13 - LTEXT "DXVA",IDC_STATIC,29,41,36,8 - ICON "",IDC_VIDRND_DXVA_SUPPORT,12,40,24,20 - LTEXT "Subtitles",IDC_STATIC,83,41,54,8 - ICON "",IDC_VIDRND_SUBTITLE_SUPPORT,65,40,24,20 - LTEXT "Screenshot",IDC_STATIC,155,41,54,8 - ICON "",IDC_VIDRND_SAVEIMAGE_SUPPORT,137,40,24,20 - LTEXT "Shaders",IDC_STATIC,227,41,42,8 - ICON "",IDC_VIDRND_SHADER_SUPPORT,209,40,24,20 - LTEXT "Rotation",IDC_STATIC,288,41,54,8 - ICON "",IDC_VIDRND_ROTATION_SUPPORT,270,40,24,20 - GROUPBOX "Audio Renderer",IDC_STATIC,6,60,343,36 - COMBOBOX IDC_AUDRND_COMBO,13,74,260,46,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Settings",IDC_BUTTON2,282,74,61,13 - GROUPBOX "Subtitle Renderer",IDC_STATIC,6,98,343,36 - COMBOBOX IDC_COMBO1,13,113,331,46,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "DirectShow Video",IDC_STATIC,6,6,343,36 + COMBOBOX IDC_VIDRND_COMBO,13,19,168,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "⛭",IDC_BUTTON1,189,19,20,13 + GROUPBOX "Audio Renderer",IDC_STATIC,6,44,343,36 + COMBOBOX IDC_AUDRND_COMBO,13,58,168,46,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "⛭",IDC_BUTTON2,189,58,20,13 + GROUPBOX "Subtitle Renderer",IDC_STATIC,6,82,343,36 + COMBOBOX IDC_COMBO1,13,97,168,46,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP GROUPBOX "VMR-9 (renderless) and EVR (CP) settings",IDC_STATIC,6,184,343,100 RTEXT "Surface:",IDC_STATIC,143,220,70,8 COMBOBOX IDC_DX_SURFACE,217,217,126,49,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP @@ -782,6 +772,9 @@ BEGIN RTEXT "EVR Buffers:",IDC_EVR_BUFFERS_TXT,218,259,81,8 COMBOBOX IDC_EVR_BUFFERS,302,256,41,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP CONTROL "Cache compiled Shaders",IDC_CACHESHADERS,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,12,265,202,8 + LTEXT "Limited Features",IDC_STATIC1,217,19,126,10,SS_NOTIFY | SS_CENTERIMAGE + LTEXT "Limited Features",IDC_STATIC2,217,58,126,10,SS_NOTIFY | SS_CENTERIMAGE + LTEXT "No Subtitle Support",IDC_STATIC3,217,97,126,10,SS_NOTIFY | SS_CENTERIMAGE END IDD_PPAGEWEBSERVER DIALOGEX 0, 0, 355, 289 @@ -1370,7 +1363,14 @@ BEGIN VERTGUIDE, 10 VERTGUIDE, 128 VERTGUIDE, 181 - VERTGUIDE, 286 + VERTGUIDE, 189 + VERTGUIDE, 209 + VERTGUIDE, 217 + VERTGUIDE, 343 + VERTGUIDE, 349 + HORZGUIDE, 19 + HORZGUIDE, 58 + HORZGUIDE, 97 END IDD_PPAGEWEBSERVER, DIALOG @@ -1496,6 +1496,10 @@ BEGIN VERTGUIDE, 8 VERTGUIDE, 78 END + + IDD_RAR_ENTRY_SELECTOR, DIALOG + BEGIN + END END #endif // APSTUDIO_INVOKED @@ -2532,6 +2536,11 @@ BEGIN 0 END +IDD_PPAGEOUTPUT AFX_DIALOG_LAYOUT +BEGIN + 0 +END + ///////////////////////////////////////////////////////////////////////////// // @@ -4153,6 +4162,18 @@ BEGIN "The renderer will try to initialize the device skipping some checks." IDS_FILTER_RESET_SETTINGS "Reset" IDS_AG_DEFAULT "Default" + IDS_VIDEOFEATURES_DXVA "DXVA" + IDS_VIDEOFEATURES_SCREENSHOT "Screenshot" + IDS_VIDEOFEATURES_SHADERS "Shaders" + IDS_VIDEOFEATURES_ROTATION "Rotation" + IDS_AUDIOFEATURES_PITCH_CORRECTION "Pitch Correction" + IDS_VIDEOFEATURES_UNSUPPORTED "Unsupported Video Features:" + IDS_AUDIOFEATURES_UNSUPPORTED "Unsupported Audio Features:" +END + +STRINGTABLE +BEGIN + IDS_VIDEOFEATURES_HDR "HDR" END #endif // English (United States) resources diff --git a/src/mpc-hc/mpc-hc.vcxproj.filters b/src/mpc-hc/mpc-hc.vcxproj.filters index ac72cf2e821..0e8db8b06bd 100644 --- a/src/mpc-hc/mpc-hc.vcxproj.filters +++ b/src/mpc-hc/mpc-hc.vcxproj.filters @@ -614,7 +614,7 @@ MPCTheme - + @@ -1166,7 +1166,7 @@ MPCTheme - + @@ -1450,4 +1450,4 @@ Resource Files - + \ No newline at end of file diff --git a/src/mpc-hc/resource.h b/src/mpc-hc/resource.h index eab7695c05a..3f99f28eb5a 100644 --- a/src/mpc-hc/resource.h +++ b/src/mpc-hc/resource.h @@ -1698,7 +1698,7 @@ #define IDS_SUBTITLE_RENDERER_NONE 57632 #define IDS_PPAGEADVANCED_MOUSE_LEFTUP_DELAY 57633 #define IDS_PPAGEADVANCED_USE_FREETYPE 57634 -#define IDS_PPAGEADVANCED_USE_MEDIAINFO_LOAD_FILE_DURATION 57635 +#define IDS_PPAGEADVANCED_USE_MEDIAINFO_LOAD_FILE_DURATION 57635 #define IDS_TIMER_SHOW_PERCENTAGE 57636 #define IDS_SUBDL_DLG_FAILED_DL 57637 #define IDS_PPAGEADVANCED_FILEPOS_PLAYLIST 57638 @@ -1707,9 +1707,7 @@ #define IDS_PPAGEADVANCED_PREVENT_DISPLAY_SLEEP 57641 #define IDS_PPAGEADVANCED_STILL_VIDEO_DURATION 57642 #define IDS_PPAGEADVANCED_CAPTURE_DEINTERLACE 57643 -#define IDS_PLAYLIST_TOGGLE_SHUFFLE 57644 - - +#define IDS_PLAYLIST_TOGGLE_SHUFFLE 57644 #define IDS_ARS_WASAPI_MODE 57700 #define IDS_ARS_EXCLUSIVE 57701 #define IDS_ARS_SHARED 57702 @@ -1734,6 +1732,15 @@ #define IDS_ARS_TIP_ALT_CHECK_FORMAT 57721 #define IDS_FILTER_RESET_SETTINGS 57722 #define IDS_AG_DEFAULT 57723 +#define IDS_VIDEOFEATURES_DXVA 57724 +#define IDS_VIDEOFEATURES_SCREENSHOT 57725 +#define IDS_VIDEOFEATURES_SHADERS 57726 +#define IDS_VIDEOFEATURES_ROTATION 57727 +#define IDS_VIDEOFEATURES_HDR 57728 +#define IDS_VIDEOFEATURES_UNSUPPORTED 57729 +#define IDS_AUDIOFEATURES_PITCH_CORRECTION 57730 +#define IDS_AUDIOFEATURES_UNSUPPORTED 57731 + // Next default values for new objects //