Show a cover letter.

GET /api/1.1/covers/16753/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 16753,
    "url": "https://patchwork.libcamera.org/api/1.1/covers/16753/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/16753/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20220725134639.4572-1-naush@raspberrypi.com>",
    "date": "2022-07-25T13:46:24",
    "name": "[libcamera-devel,00/15] Raspberry Pi IPA code refactor",
    "submitter": {
        "id": 34,
        "url": "https://patchwork.libcamera.org/api/1.1/people/34/?format=api",
        "name": "Naushir Patuck",
        "email": "naush@raspberrypi.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/16753/mbox/",
    "series": [
        {
            "id": 3323,
            "url": "https://patchwork.libcamera.org/api/1.1/series/3323/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=3323",
            "date": "2022-07-25T13:46:24",
            "name": "Raspberry Pi IPA code refactor",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/3323/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/16753/comments/",
    "headers": {
        "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>",
        "X-Original-To": "parsemail@patchwork.libcamera.org",
        "Delivered-To": "parsemail@patchwork.libcamera.org",
        "Received": [
            "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 9742BC3275\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 25 Jul 2022 13:46:46 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E219763315;\n\tMon, 25 Jul 2022 15:46:45 +0200 (CEST)",
            "from mail-wm1-x330.google.com (mail-wm1-x330.google.com\n\t[IPv6:2a00:1450:4864:20::330])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 44B7C6330A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Jul 2022 15:46:44 +0200 (CEST)",
            "by mail-wm1-x330.google.com with SMTP id\n\tj29-20020a05600c1c1d00b003a2fdafdefbso6395742wms.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Jul 2022 06:46:44 -0700 (PDT)",
            "from naush-laptop.localdomain ([93.93.133.154])\n\tby smtp.gmail.com with ESMTPSA id\n\ta20-20020a05600c225400b003a32167b8d4sm18054320wmm.13.2022.07.25.06.46.42\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 25 Jul 2022 06:46:42 -0700 (PDT)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658756805;\n\tbh=gExu/fIzvjfgTEq20muoUU833n2SLz3S5mZVA/0n82c=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:From;\n\tb=XICMjP7lPyULn59wEdVdQUHO1U9AMvXA20nmY2vE75D6WSpiBXzzRAo++kWg3siOm\n\tbHWQEh0+HRvI+4R5kLFBjh9/V/Y9fO7RLtkS2bJ1NdChR2n5DOHutVS1yomuS0wMZ8\n\tMl5xiaroTzS2XBVGcFcWzs1Mc6OouzX69+UiqWaBhPLKNBQFh2lO6LFr1BcwWU8dVU\n\tGAxvyohSoR5QF2nWtOWigg2uH9MWMHZ5FKNkqESYwyIgfN502QTTi0VVt8tNNwUVX/\n\t7/W9A0WFHAURPA2UUC/kt7uSnwKRzdk+pQB1r4dJH24JAsQfKA8lva/49Jpgno6fqa\n\thj+eZ1I/bFnuA==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=x5W2n2jCWr9g18TFotFnyKMoPisVn0r6K4rcpyft02s=;\n\tb=PTrqBORxKSsat8Q5UT7kRm0x6qWyPuMQPo8MhnyLoo9flgDe+DQXT2rYMcJmEex7xr\n\tOQeDCGEOxjM3rWiDCBL5zOblkhlqEnpVV3sjS7kC6PRDKIuec/qqm5WlYNuuoxb1vT3y\n\tg4ia/iNyzW7UKZ+heM24uIV9OUxb/CjS0SnrZ0iXhu1T5c7lcRE0hIGzVsGANBc9Jbdh\n\tqYJziBD7lq5Rw3sE5/qoJBMbMWmNsb+iesYm7Smrv+SsidtpZ5jwhlxCfKgtcBQUQEVy\n\tgavvYZjnPaEcPH878AkP17BE47FCqt5PFDsdgvIHL4PxBmk+rbNjOmhn3Nh9m3sNlydI\n\tK8+Q=="
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"PTrqBORx\"; dkim-atps=neutral",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=x5W2n2jCWr9g18TFotFnyKMoPisVn0r6K4rcpyft02s=;\n\tb=uO5PNcLG5LJIehTdQmYjjvW2WhpDOJTk6eXhCE7pYICqhfYqTUftH6Prp0Jy4UPfm4\n\tYZwytAbFADYHx1/9j8iU0wVwsupCTmNqPj/12006y9yG3dlaqGj0Wh+tXtiCibnQeUz+\n\toplCWJmWkwB7wasUa5ELHfIQqjd7oK456VhNKONnMGcmKit3JKhwCDPASwLBIgZROVjA\n\ttWmrVbldyZKj7UfI3a1TcQIDK9hXlwlO9l2/WWTcaZNPsLw53UFSlK/7SHgQQyrqSprG\n\t6Cu2Dpxg/2g9rvvmGLM/uC8wVO1sZgZh5WFNFhV+0qWVdwUwxTDSCp4WbzoEKuctGJHB\n\tUMIQ==",
        "X-Gm-Message-State": "AJIora8d/WBtYUr31DD/6M5d4BIlkMwB/UbBGLyVR6tfeuupc2X0MTq7\n\tSmX0VCCgLYXClb8LpxyvI3LDiuALNq1gHA==",
        "X-Google-Smtp-Source": "AGRyM1umxYcEgmcDrNUc8AGVNHEggn98d26pF5N6/SfFOJ8eQ0u2/3SLkGlXPWvE/EWYP8Ko3TRGQA==",
        "X-Received": "by 2002:a05:600c:3847:b0:3a3:5333:8bcd with SMTP id\n\ts7-20020a05600c384700b003a353338bcdmr5044715wmr.36.1658756803312; \n\tMon, 25 Jul 2022 06:46:43 -0700 (PDT)",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Mon, 25 Jul 2022 14:46:24 +0100",
        "Message-Id": "<20220725134639.4572-1-naush@raspberrypi.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH 00/15] Raspberry Pi IPA code refactor",
        "X-BeenThere": "libcamera-devel@lists.libcamera.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "<libcamera-devel.lists.libcamera.org>",
        "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>",
        "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>",
        "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>",
        "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>",
        "From": "Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>",
        "Reply-To": "Naushir Patuck <naush@raspberrypi.com>",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "Hi,\n\nThis rather large patch series performs a (largely overdue) code refactoring on\nall our IPA source files to match the libcamera coding style guidelines.\n\nGiven the size of the first round of changes (switching to CamelCase), I've split\na single large patch into multiple smaller patches (1/15 - 10/15).  Please note,\nTHESE CANNOT BE MERGED AS-IS (hence the DNI tag) as they will cause intermediate\ncompile breakages.  Once ready for merging, these must be squashed into a single\nlarge patch. It also means that the entire context of the change will not fully\nbe available in patches 1/15 - 10/15.  Apologies for that, but this seems the\nmost sensible way to help with the review.\n\nRegards,\nNaush\n\nNaushir Patuck (15):\n  DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n  DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n  DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n  DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n  DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n  DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n  DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n  DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n  DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n  DNI: ipa: raspberrypi: Code refactoring to match style guidelines\n  ipa: raspberrypi: Change to C style code comments\n  ipa: raspberrypi: Remove extern \"C\" declarations\n  ipa: raspberrypi: Rename header files from *.hpp to *.h\n  raspberrypi: Update Copyright statement in all Raspberry Pi source\n    files\n  ipa: raspberryip: Remove all exception throw statements\n\n .reuse/dep5                                   |    2 +-\n include/libcamera/color_space.h               |    2 +-\n include/libcamera/internal/bayer_format.h     |    2 +-\n include/libcamera/internal/delayed_controls.h |    2 +-\n include/libcamera/internal/v4l2_pixelformat.h |    2 +-\n include/libcamera/transform.h                 |    2 +-\n include/linux/bcm2835-isp.h                   |    2 +-\n src/cam/stream_options.cpp                    |    2 +-\n src/cam/stream_options.h                      |    2 +-\n src/ipa/libipa/histogram.cpp                  |    2 +-\n src/ipa/libipa/histogram.h                    |    2 +-\n src/ipa/raspberrypi/cam_helper.cpp            |   94 +-\n src/ipa/raspberrypi/cam_helper.h              |  127 ++\n src/ipa/raspberrypi/cam_helper.hpp            |  123 --\n src/ipa/raspberrypi/cam_helper_imx219.cpp     |   40 +-\n src/ipa/raspberrypi/cam_helper_imx290.cpp     |   36 +-\n src/ipa/raspberrypi/cam_helper_imx296.cpp     |   28 +-\n src/ipa/raspberrypi/cam_helper_imx477.cpp     |   78 +-\n src/ipa/raspberrypi/cam_helper_imx519.cpp     |   76 +-\n src/ipa/raspberrypi/cam_helper_ov5647.cpp     |   48 +-\n src/ipa/raspberrypi/cam_helper_ov9281.cpp     |   32 +-\n .../raspberrypi/controller/agc_algorithm.h    |   31 +\n .../raspberrypi/controller/agc_algorithm.hpp  |   32 -\n src/ipa/raspberrypi/controller/agc_status.h   |   46 +-\n src/ipa/raspberrypi/controller/algorithm.cpp  |   26 +-\n src/ipa/raspberrypi/controller/algorithm.h    |   64 +\n src/ipa/raspberrypi/controller/algorithm.hpp  |   60 -\n src/ipa/raspberrypi/controller/alsc_status.h  |   16 +-\n .../raspberrypi/controller/awb_algorithm.h    |   23 +\n .../raspberrypi/controller/awb_algorithm.hpp  |   23 -\n src/ipa/raspberrypi/controller/awb_status.h   |   24 +-\n .../controller/black_level_status.h           |   14 +-\n src/ipa/raspberrypi/controller/camera_mode.h  |   54 +-\n .../raspberrypi/controller/ccm_algorithm.h    |   21 +\n .../raspberrypi/controller/ccm_algorithm.hpp  |   21 -\n src/ipa/raspberrypi/controller/ccm_status.h   |   12 +-\n .../controller/contrast_algorithm.h           |   22 +\n .../controller/contrast_algorithm.hpp         |   22 -\n .../raspberrypi/controller/contrast_status.h  |   16 +-\n src/ipa/raspberrypi/controller/controller.cpp |   86 +-\n src/ipa/raspberrypi/controller/controller.h   |   58 +\n src/ipa/raspberrypi/controller/controller.hpp |   54 -\n ...oise_algorithm.hpp => denoise_algorithm.h} |   12 +-\n .../raspberrypi/controller/denoise_status.h   |   12 +-\n .../raspberrypi/controller/device_status.cpp  |   20 +-\n .../raspberrypi/controller/device_status.h    |   18 +-\n src/ipa/raspberrypi/controller/dpc_status.h   |   14 +-\n src/ipa/raspberrypi/controller/focus_status.h |   20 +-\n src/ipa/raspberrypi/controller/geq_status.h   |   12 +-\n src/ipa/raspberrypi/controller/histogram.cpp  |   46 +-\n src/ipa/raspberrypi/controller/histogram.h    |   48 +\n src/ipa/raspberrypi/controller/histogram.hpp  |   44 -\n src/ipa/raspberrypi/controller/lux_status.h   |   28 +-\n .../controller/{metadata.hpp => metadata.h}   |   40 +-\n src/ipa/raspberrypi/controller/noise_status.h |   12 +-\n src/ipa/raspberrypi/controller/pwl.cpp        |  174 +--\n src/ipa/raspberrypi/controller/pwl.h          |  126 ++\n src/ipa/raspberrypi/controller/pwl.hpp        |  112 --\n src/ipa/raspberrypi/controller/rpi/agc.cpp    | 1031 +++++++++--------\n src/ipa/raspberrypi/controller/rpi/agc.h      |  141 +++\n src/ipa/raspberrypi/controller/rpi/agc.hpp    |  139 ---\n src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  854 +++++++-------\n src/ipa/raspberrypi/controller/rpi/alsc.h     |  110 ++\n src/ipa/raspberrypi/controller/rpi/alsc.hpp   |  106 --\n src/ipa/raspberrypi/controller/rpi/awb.cpp    |  762 ++++++------\n src/ipa/raspberrypi/controller/rpi/awb.h      |  193 +++\n src/ipa/raspberrypi/controller/rpi/awb.hpp    |  179 ---\n .../controller/rpi/black_level.cpp            |   46 +-\n .../raspberrypi/controller/rpi/black_level.h  |   30 +\n .../controller/rpi/black_level.hpp            |   30 -\n src/ipa/raspberrypi/controller/rpi/ccm.cpp    |  117 +-\n .../controller/rpi/{ccm.hpp => ccm.h}         |   24 +-\n .../raspberrypi/controller/rpi/contrast.cpp   |  200 ++--\n src/ipa/raspberrypi/controller/rpi/contrast.h |   52 +\n .../raspberrypi/controller/rpi/contrast.hpp   |   50 -\n src/ipa/raspberrypi/controller/rpi/dpc.cpp    |   34 +-\n src/ipa/raspberrypi/controller/rpi/dpc.h      |   32 +\n src/ipa/raspberrypi/controller/rpi/dpc.hpp    |   32 -\n src/ipa/raspberrypi/controller/rpi/focus.cpp  |   18 +-\n .../controller/rpi/{focus.hpp => focus.h}     |   12 +-\n src/ipa/raspberrypi/controller/rpi/geq.cpp    |   64 +-\n src/ipa/raspberrypi/controller/rpi/geq.h      |   34 +\n src/ipa/raspberrypi/controller/rpi/geq.hpp    |   34 -\n src/ipa/raspberrypi/controller/rpi/lux.cpp    |   90 +-\n src/ipa/raspberrypi/controller/rpi/lux.h      |   45 +\n src/ipa/raspberrypi/controller/rpi/lux.hpp    |   43 -\n src/ipa/raspberrypi/controller/rpi/noise.cpp  |   60 +-\n src/ipa/raspberrypi/controller/rpi/noise.h    |   32 +\n src/ipa/raspberrypi/controller/rpi/noise.hpp  |   32 -\n src/ipa/raspberrypi/controller/rpi/sdn.cpp    |   46 +-\n src/ipa/raspberrypi/controller/rpi/sdn.h      |   32 +\n src/ipa/raspberrypi/controller/rpi/sdn.hpp    |   32 -\n .../raspberrypi/controller/rpi/sharpen.cpp    |   72 +-\n src/ipa/raspberrypi/controller/rpi/sharpen.h  |   34 +\n .../raspberrypi/controller/rpi/sharpen.hpp    |   34 -\n .../controller/sharpen_algorithm.h            |   21 +\n .../controller/sharpen_algorithm.hpp          |   21 -\n .../raspberrypi/controller/sharpen_status.h   |   22 +-\n .../{md_parser.hpp => md_parser.h}            |   40 +-\n src/ipa/raspberrypi/md_parser_smia.cpp        |  100 +-\n src/ipa/raspberrypi/raspberrypi.cpp           |  274 ++---\n src/libcamera/bayer_format.cpp                |    2 +-\n src/libcamera/color_space.cpp                 |    2 +-\n src/libcamera/delayed_controls.cpp            |    2 +-\n .../pipeline/raspberrypi/dma_heaps.cpp        |    2 +-\n .../pipeline/raspberrypi/dma_heaps.h          |    2 +-\n .../pipeline/raspberrypi/raspberrypi.cpp      |    2 +-\n .../pipeline/raspberrypi/rpi_stream.cpp       |    2 +-\n .../pipeline/raspberrypi/rpi_stream.h         |    2 +-\n src/libcamera/transform.cpp                   |    2 +-\n src/libcamera/v4l2_pixelformat.cpp            |    2 +-\n src/qcam/dng_writer.cpp                       |    2 +-\n src/qcam/dng_writer.h                         |    2 +-\n utils/raspberrypi/ctt/ctt.py                  |    2 +-\n utils/raspberrypi/ctt/ctt_alsc.py             |    2 +-\n utils/raspberrypi/ctt/ctt_awb.py              |    2 +-\n utils/raspberrypi/ctt/ctt_ccm.py              |    2 +-\n utils/raspberrypi/ctt/ctt_geq.py              |    2 +-\n utils/raspberrypi/ctt/ctt_image_load.py       |    2 +-\n utils/raspberrypi/ctt/ctt_lux.py              |    2 +-\n utils/raspberrypi/ctt/ctt_macbeth_locator.py  |    2 +-\n utils/raspberrypi/ctt/ctt_noise.py            |    2 +-\n .../raspberrypi/ctt/ctt_pretty_print_json.py  |    2 +-\n utils/raspberrypi/ctt/ctt_ransac.py           |    2 +-\n utils/raspberrypi/ctt/ctt_tools.py            |    2 +-\n 125 files changed, 3817 insertions(+), 3752 deletions(-)\n create mode 100644 src/ipa/raspberrypi/cam_helper.h\n delete mode 100644 src/ipa/raspberrypi/cam_helper.hpp\n create mode 100644 src/ipa/raspberrypi/controller/agc_algorithm.h\n delete mode 100644 src/ipa/raspberrypi/controller/agc_algorithm.hpp\n create mode 100644 src/ipa/raspberrypi/controller/algorithm.h\n delete mode 100644 src/ipa/raspberrypi/controller/algorithm.hpp\n create mode 100644 src/ipa/raspberrypi/controller/awb_algorithm.h\n delete mode 100644 src/ipa/raspberrypi/controller/awb_algorithm.hpp\n create mode 100644 src/ipa/raspberrypi/controller/ccm_algorithm.h\n delete mode 100644 src/ipa/raspberrypi/controller/ccm_algorithm.hpp\n create mode 100644 src/ipa/raspberrypi/controller/contrast_algorithm.h\n delete mode 100644 src/ipa/raspberrypi/controller/contrast_algorithm.hpp\n create mode 100644 src/ipa/raspberrypi/controller/controller.h\n delete mode 100644 src/ipa/raspberrypi/controller/controller.hpp\n rename src/ipa/raspberrypi/controller/{denoise_algorithm.hpp => denoise_algorithm.h} (53%)\n create mode 100644 src/ipa/raspberrypi/controller/histogram.h\n delete mode 100644 src/ipa/raspberrypi/controller/histogram.hpp\n rename src/ipa/raspberrypi/controller/{metadata.hpp => metadata.h} (61%)\n create mode 100644 src/ipa/raspberrypi/controller/pwl.h\n delete mode 100644 src/ipa/raspberrypi/controller/pwl.hpp\n create mode 100644 src/ipa/raspberrypi/controller/rpi/agc.h\n delete mode 100644 src/ipa/raspberrypi/controller/rpi/agc.hpp\n create mode 100644 src/ipa/raspberrypi/controller/rpi/alsc.h\n delete mode 100644 src/ipa/raspberrypi/controller/rpi/alsc.hpp\n create mode 100644 src/ipa/raspberrypi/controller/rpi/awb.h\n delete mode 100644 src/ipa/raspberrypi/controller/rpi/awb.hpp\n create mode 100644 src/ipa/raspberrypi/controller/rpi/black_level.h\n delete mode 100644 src/ipa/raspberrypi/controller/rpi/black_level.hpp\n rename src/ipa/raspberrypi/controller/rpi/{ccm.hpp => ccm.h} (68%)\n create mode 100644 src/ipa/raspberrypi/controller/rpi/contrast.h\n delete mode 100644 src/ipa/raspberrypi/controller/rpi/contrast.hpp\n create mode 100644 src/ipa/raspberrypi/controller/rpi/dpc.h\n delete mode 100644 src/ipa/raspberrypi/controller/rpi/dpc.hpp\n rename src/ipa/raspberrypi/controller/rpi/{focus.hpp => focus.h} (59%)\n create mode 100644 src/ipa/raspberrypi/controller/rpi/geq.h\n delete mode 100644 src/ipa/raspberrypi/controller/rpi/geq.hpp\n create mode 100644 src/ipa/raspberrypi/controller/rpi/lux.h\n delete mode 100644 src/ipa/raspberrypi/controller/rpi/lux.hpp\n create mode 100644 src/ipa/raspberrypi/controller/rpi/noise.h\n delete mode 100644 src/ipa/raspberrypi/controller/rpi/noise.hpp\n create mode 100644 src/ipa/raspberrypi/controller/rpi/sdn.h\n delete mode 100644 src/ipa/raspberrypi/controller/rpi/sdn.hpp\n create mode 100644 src/ipa/raspberrypi/controller/rpi/sharpen.h\n delete mode 100644 src/ipa/raspberrypi/controller/rpi/sharpen.hpp\n create mode 100644 src/ipa/raspberrypi/controller/sharpen_algorithm.h\n delete mode 100644 src/ipa/raspberrypi/controller/sharpen_algorithm.hpp\n rename src/ipa/raspberrypi/{md_parser.hpp => md_parser.h} (80%)"
}