osd resolution: Add 'mode' to osd_resolution_struct_t

- Use COsdSetup::OSDMODE_XXX enums to identify various resolutions
This commit is contained in:
M. Liebmann
2017-02-28 15:02:09 +01:00
parent 84b2af00fb
commit 653e574937
5 changed files with 20 additions and 0 deletions

View File

@@ -344,6 +344,7 @@ void CFbAccelCSHD1::setOsdResolutions()
res.xRes = 1280;
res.yRes = 720;
res.bpp = 32;
res.mode = OSDMODE_720;
osd_resolutions.push_back(res);
}

View File

@@ -215,11 +215,13 @@ void CFbAccelCSHD2::setOsdResolutions()
res.xRes = 1280;
res.yRes = 720;
res.bpp = 32;
res.mode = OSDMODE_720;
osd_resolutions.push_back(res);
if (fullHdAvailable()) {
res.xRes = 1920;
res.yRes = 1080;
res.bpp = 32;
res.mode = OSDMODE_1080;
osd_resolutions.push_back(res);
}
}

View File

@@ -32,6 +32,7 @@
#include <unistd.h>
#include <sys/mman.h>
#include <gui/color.h>
#include <gui/osd_helpers.h>
#include <system/debug.h>
#include <cs_api.h>

View File

@@ -46,6 +46,7 @@
#include <gui/audiomute.h>
#include <gui/color.h>
#include <gui/osd_helpers.h>
#include <gui/pictureviewer.h>
#include <system/debug.h>
#include <global.h>
@@ -362,9 +363,22 @@ void CFrameBuffer::setOsdResolutions()
res.xRes = 1280;
res.yRes = 720;
res.bpp = 32;
res.mode = OSDMODE_720;
osd_resolutions.push_back(res);
}
size_t CFrameBuffer::getIndexOsdResolution(uint32_t mode)
{
if (osd_resolutions.size() == 1)
return 0;
for (size_t i = 0; i < osd_resolutions.size(); i++) {
if (osd_resolutions[i].mode == mode)
return i;
}
return 0;
}
#if 0
//never used
void CFrameBuffer::setTransparency( int /*tr*/ )

View File

@@ -44,6 +44,7 @@ typedef struct osd_resolution_t
uint32_t yRes;
uint32_t xRes;
uint32_t bpp;
uint32_t mode;
} osd_resolution_struct_t;
typedef struct gradientData_t
@@ -284,6 +285,7 @@ class CFrameBuffer : public sigc::trackable
virtual bool fullHdAvailable() { return false; };
virtual void setOsdResolutions();
std::vector<osd_resolution_t> osd_resolutions;
size_t getIndexOsdResolution(uint32_t mode);
enum
{