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

Commit 6c008b86 authored by Nipun Kwatra's avatar Nipun Kwatra Committed by Wu-cheng Li
Browse files

Adding getSupportedPreviewSizes to CameraParameters.DO NOT MERGE

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

Change-Id: I41d4f62f9f1641e9e9258aa2ebaeda13ba846c02
parent 0de0c496
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);