Skip to content

Commit

Permalink
FIX: [amlegl] additional display modes
Browse files Browse the repository at this point in the history
  • Loading branch information
koying committed Aug 26, 2015
1 parent 3764856 commit 26db5af
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 0 deletions.
45 changes: 45 additions & 0 deletions xbmc/utils/AMLUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -356,6 +356,15 @@ bool aml_mode_to_resolution(const char *mode, RESOLUTION_INFO *res)
res->fRefreshRate = 60;
res->dwFlags = D3DPRESENTFLAG_PROGRESSIVE;
}
else if (StringUtils::EqualsNoCase(fromMode, "1080p23hz"))
{
res->iWidth = 1920;
res->iHeight= 1080;
res->iScreenWidth = 1920;
res->iScreenHeight= 1080;
res->fRefreshRate = 23.976;
res->dwFlags = D3DPRESENTFLAG_PROGRESSIVE;
}
else if (StringUtils::EqualsNoCase(fromMode, "1080p24hz"))
{
res->iWidth = 1920;
Expand Down Expand Up @@ -383,6 +392,15 @@ bool aml_mode_to_resolution(const char *mode, RESOLUTION_INFO *res)
res->fRefreshRate = 50;
res->dwFlags = D3DPRESENTFLAG_PROGRESSIVE;
}
else if (StringUtils::EqualsNoCase(fromMode, "1080p59hz"))
{
res->iWidth = 1920;
res->iHeight= 1080;
res->iScreenWidth = 1920;
res->iScreenHeight= 1080;
res->fRefreshRate = 59.940;
res->dwFlags = D3DPRESENTFLAG_PROGRESSIVE;
}
else if (StringUtils::EqualsNoCase(fromMode, "1080i"))
{
res->iWidth = 1920;
Expand All @@ -401,6 +419,15 @@ bool aml_mode_to_resolution(const char *mode, RESOLUTION_INFO *res)
res->fRefreshRate = 50;
res->dwFlags = D3DPRESENTFLAG_INTERLACED;
}
else if (StringUtils::EqualsNoCase(fromMode, "1080i59hz"))
{
res->iWidth = 1920;
res->iHeight= 1080;
res->iScreenWidth = 1920;
res->iScreenHeight= 1080;
res->fRefreshRate = 59.940;
res->dwFlags = D3DPRESENTFLAG_INTERLACED;
}
else if (StringUtils::EqualsNoCase(fromMode, "4k2ksmpte"))
{
res->iWidth = 1920;
Expand All @@ -410,6 +437,15 @@ bool aml_mode_to_resolution(const char *mode, RESOLUTION_INFO *res)
res->fRefreshRate = 24;
res->dwFlags = D3DPRESENTFLAG_PROGRESSIVE;
}
else if (StringUtils::EqualsNoCase(fromMode, "4k2k23hz"))
{
res->iWidth = 1920;
res->iHeight= 1080;
res->iScreenWidth = 3840;
res->iScreenHeight= 2160;
res->fRefreshRate = 23.976;
res->dwFlags = D3DPRESENTFLAG_PROGRESSIVE;
}
else if (StringUtils::EqualsNoCase(fromMode, "4k2k24hz"))
{
res->iWidth = 1920;
Expand All @@ -428,6 +464,15 @@ bool aml_mode_to_resolution(const char *mode, RESOLUTION_INFO *res)
res->fRefreshRate = 25;
res->dwFlags = D3DPRESENTFLAG_PROGRESSIVE;
}
else if (StringUtils::EqualsNoCase(fromMode, "4k2k29hz"))
{
res->iWidth = 1920;
res->iHeight= 1080;
res->iScreenWidth = 3840;
res->iScreenHeight= 2160;
res->fRefreshRate = 29.970;
res->dwFlags = D3DPRESENTFLAG_PROGRESSIVE;
}
else if (StringUtils::EqualsNoCase(fromMode, "4k2k30hz"))
{
res->iWidth = 1920;
Expand Down
32 changes: 32 additions & 0 deletions xbmc/windowing/egl/EGLNativeTypeAmlAndroid.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,16 @@ bool CEGLNativeTypeAmlAndroid::SetNativeResolution(const RESOLUTION_INFO &res)
break;
}
break;
case 599:
switch(res.iScreenWidth)
{
default:
if (res.dwFlags & D3DPRESENTFLAG_INTERLACED)
return SetDisplayResolution("1080i59hz");
else
return SetDisplayResolution("1080p59hz");
break;
}
case 500:
switch(res.iScreenWidth)
{
Expand All @@ -113,6 +123,17 @@ bool CEGLNativeTypeAmlAndroid::SetNativeResolution(const RESOLUTION_INFO &res)
break;
}
break;
case 299:
switch(res.iScreenWidth)
{
case 3840:
return SetDisplayResolution("4k2k29hz");
break;
default:
return SetDisplayResolution("1080p29hz");
break;
}
break;
case 250:
switch(res.iScreenWidth)
{
Expand All @@ -138,6 +159,17 @@ bool CEGLNativeTypeAmlAndroid::SetNativeResolution(const RESOLUTION_INFO &res)
break;
}
break;
case 239:
switch(res.iScreenWidth)
{
case 3840:
return SetDisplayResolution("4k2k23hz");
break;
default:
return SetDisplayResolution("1080p23hz");
break;
}
break;
}

return false;
Expand Down

0 comments on commit 26db5af

Please sign in to comment.