Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b70c1db7 authored by Nipun Kwatra's avatar Nipun Kwatra
Browse files

Adding parseSizesList, getSupportedPreviewSizes to CameraParameters.

Moved functionality to parse string of sizes from getSupportedPictureSizes
to parseSizesList.
Added getSupportedPreviewSizes which returns a list of supported preview sizes.

Change-Id: I435317427c1ee9623caef435f93e95d4476b7285
parent bf3699a5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ public:

    void setPreviewSize(int width, int height);
    void getPreviewSize(int *width, int *height) const;
    void getSupportedPreviewSizes(Vector<Size> &sizes) const;
    void setPreviewFrameRate(int fps);
    int getPreviewFrameRate() const;
    void setPreviewFormat(const char *format);
+36 −25
Original line number Diff line number Diff line
@@ -291,6 +291,30 @@ static int parse_size(const char *str, int &width, int &height, char **endptr =
    return 0;
}

static void parseSizesList(const char *sizesStr, Vector<Size> &sizes)
{
    if (sizesStr == 0) {
        return;
    }

    char *sizeStartPtr = (char *)sizesStr;

    while (true) {
        int width, height;
        int success = parse_size(sizeStartPtr, width, height, &sizeStartPtr);
        if (success == -1 || (*sizeStartPtr != ',' && *sizeStartPtr != '\0')) {
            LOGE("Picture sizes string \"%s\" contains invalid character.", sizesStr);
            return;
        }
        sizes.push(Size(width, height));

        if (*sizeStartPtr == '\0') {
            return;
        }
        sizeStartPtr++;
    }
}

void CameraParameters::setPreviewSize(int width, int height)
{
    char str[32];
@@ -315,6 +339,12 @@ void CameraParameters::getPreviewSize(int *width, int *height) const
    }
}

void CameraParameters::getSupportedPreviewSizes(Vector<Size> &sizes) const
{
    const char *previewSizesStr = get(KEY_SUPPORTED_PREVIEW_SIZES);
    parseSizesList(previewSizesStr, sizes);
}

void CameraParameters::setPreviewFrameRate(int fps)
{
    set(KEY_PREVIEW_FRAME_RATE, fps);
@@ -342,31 +372,6 @@ void CameraParameters::setPictureSize(int width, int height)
    set(KEY_PICTURE_SIZE, str);
}

void CameraParameters::getSupportedPictureSizes(Vector<Size> &sizes) const
{
    const char *pictureSizesStr = get(KEY_SUPPORTED_PICTURE_SIZES);
    if (pictureSizesStr == 0) {
        return;
    }

    char *sizeStartPtr = (char *)pictureSizesStr;

    while (true) {
        int width, height;
        int success = parse_size(sizeStartPtr, width, height, &sizeStartPtr);
        if (success == -1 || (*sizeStartPtr != ',' && *sizeStartPtr != '\0')) {
            LOGE("Picture sizes string \"%s\" contains invalid character.", pictureSizesStr);
            return;
        }
        sizes.push(Size(width, height));

        if (*sizeStartPtr == '\0') {
            return;
        }
        sizeStartPtr++;
    }
}

void CameraParameters::getPictureSize(int *width, int *height) const
{
    *width = -1;
@@ -384,6 +389,12 @@ void CameraParameters::getPictureSize(int *width, int *height) const
    }
}

void CameraParameters::getSupportedPictureSizes(Vector<Size> &sizes) const
{
    const char *pictureSizesStr = get(KEY_SUPPORTED_PICTURE_SIZES);
    parseSizesList(pictureSizesStr, sizes);
}

void CameraParameters::setPictureFormat(const char *format)
{
    set(KEY_PICTURE_FORMAT, format);