From patchwork Wed Oct 19 23:15:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 17645 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 9C875C0DA4 for ; Wed, 19 Oct 2022 23:16:07 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 27A9962E7B; Thu, 20 Oct 2022 01:16:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1666221367; bh=oDSDIvv3/JdgM/4wy4c7pNgN9fWMIpipiabTOydjRZM=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=qRvq/U0RsJQGvc/WcurgkUwac8CbbQmcA9P0rf6CrORi9bHTPdOjZ48GUtK4W3vcX LC0Yih4O89lZpfmlNX//rnN3y4HV2mmcKavj8W0QRbFQsJDr/BiLV0YZ4FrRTiso18 52BopYNflSGr2bPZjPkEesZup9GHCjM6IAZcK5AMtsMX/eTIWycHe0xm7ROizlhv+7 ITLCWNX4JQ8S1urc97y3LPFyOudLJ1KYrOhvUbxcoP3mQ7Z8DpTr3UEporhr6aqgc0 n7NCBt0vSQQwKYFe/PWGVXys5YmZDQIpq+o/l4xCfX7H5AzuKiCC4ZZrhS637NHpLb wy1Y7r5s9aEJg== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id A52B662E6E for ; Thu, 20 Oct 2022 01:16:04 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="putWmlPh"; dkim-atps=neutral Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 31C8F570 for ; Thu, 20 Oct 2022 01:16:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1666221364; bh=oDSDIvv3/JdgM/4wy4c7pNgN9fWMIpipiabTOydjRZM=; h=From:To:Subject:Date:In-Reply-To:References:From; b=putWmlPhDg0ir4EVj7arN+3ZinsChZBE94j3vjQo4s9A3zCvfowVCDy+F0yi8af5k YLdmB7F4JIf9B26Jc3LmniES+V72Lor+OYVa5kjKb8m7hX+efm4gj/RK8lKVVsshYX GolAwuVJa7J0PCipEaqPVLD8u+PAXSI5Gc844yh4= To: libcamera-devel@lists.libcamera.org Date: Thu, 20 Oct 2022 02:15:32 +0300 Message-Id: <20221019231537.26880-2-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221019231537.26880-1-laurent.pinchart@ideasonboard.com> References: <20221019231537.26880-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v1 1/6] cam: Don't print DNG option text if libtiff isn't found X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Laurent Pinchart via libcamera-devel From: Laurent Pinchart Reply-To: Laurent Pinchart Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" If libtiff isn't found, DNG capture support is disabled. Don't print the part of the --file help text that mentions DNG in that case. Signed-off-by: Laurent Pinchart Reviewed-by: Paul Elder Reviewed-by: Kieran Bingham --- src/cam/main.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/cam/main.cpp b/src/cam/main.cpp index c4e18a130c02..d70130e2ab81 100644 --- a/src/cam/main.cpp +++ b/src/cam/main.cpp @@ -144,8 +144,10 @@ int CamApp::parseOptions(int argc, char *argv[]) "to write files, using the default file name. Otherwise it sets the\n" "full file path and name. The first '#' character in the file name\n" "is expanded to the camera index, stream name and frame sequence number.\n" +#ifdef HAVE_TIFF "If the file name ends with '.dng', then the frame will be written to\n" "the output file(s) in DNG format.\n" +#endif "The default file name is 'frame-#.bin'.", "file", ArgumentOptional, "filename", false, OptCamera); From patchwork Wed Oct 19 23:15:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 17646 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 12F9DC0DA4 for ; Wed, 19 Oct 2022 23:16:10 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id B9D6062E71; Thu, 20 Oct 2022 01:16:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1666221369; bh=lE+WqI5w4josPytAHH2TvdMCzvVO/4yTMximU3OglRE=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=QYDDOLa/oQNeqyB3iibY8ZxVMDLDDVxTLd6eazVuJY6mYoo3G+Pd2UPd/9yOZ5gwb OG3D0TTdOFDc7Lzda5ePS3CgeCDtFYFMokXxOJrq+8zPD/J07I9EvY+YrUUF5XFZAE TyH8puGC3HqHaoHRY80Lx+QxvpPKgfeWqGCdLcZgObLH7/xTPUyWUJAjy8QPjmGMID T7KsygG5t3LC8VhYufnb4/Dr25vdBgAidIYmvMqFxIfQio1e1UDMPsfAJjIukk4FSv dqKFyp49txW9nNenCd4SmaQ/89CCx3S7aFcCSDK8cAyow/AolLUTj7H9oi9X0Df4f1 rTS6im1im/kaw== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 7D4B962E6E for ; Thu, 20 Oct 2022 01:16:06 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="MGO39oFN"; dkim-atps=neutral Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 0B4BF570 for ; Thu, 20 Oct 2022 01:16:05 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1666221366; bh=lE+WqI5w4josPytAHH2TvdMCzvVO/4yTMximU3OglRE=; h=From:To:Subject:Date:In-Reply-To:References:From; b=MGO39oFNDg//0uqayUCT/W51C6Ejtsw0SLfgkMjONr3sB0sHNvtEEFOShaF3ZrirK 1hBDBZu9uw7cIuShS3XOkj1F42HRxj3Zf1jY4kPH1JotqeSn8UcvdwmsiWmSTteG4e TbAAUtYTMjPJbNMVaDX849binglB6TAYMeNz7qEs= To: libcamera-devel@lists.libcamera.org Date: Thu, 20 Oct 2022 02:15:33 +0300 Message-Id: <20221019231537.26880-3-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221019231537.26880-1-laurent.pinchart@ideasonboard.com> References: <20221019231537.26880-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v1 2/6] qcam: Simplify dependency handling for libtiff X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Laurent Pinchart via libcamera-devel From: Laurent Pinchart Reply-To: Laurent Pinchart Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" There's no need to conditionally add tiff_dep to the list of qcam dependency, as a not found dependency() is ignored when listed in the executable dependencies argument. Signed-off-by: Laurent Pinchart Reviewed-by: Paul Elder Reviewed-by: Kieran Bingham --- src/qcam/meson.build | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/qcam/meson.build b/src/qcam/meson.build index 9f5759ff0786..d5916d0df532 100644 --- a/src/qcam/meson.build +++ b/src/qcam/meson.build @@ -36,18 +36,11 @@ qcam_resources = files([ 'assets/feathericons/feathericons.qrc', ]) -qcam_deps = [ - libatomic, - libcamera_public, - qt5_dep, -] - qt5_cpp_args = ['-DQT_NO_KEYWORDS'] tiff_dep = dependency('libtiff-4', required : false) if tiff_dep.found() qt5_cpp_args += ['-DHAVE_TIFF'] - qcam_deps += [tiff_dep] qcam_sources += files([ '../cam/dng_writer.cpp', ]) @@ -81,5 +74,10 @@ resources = qt5.preprocess(moc_headers: qcam_moc_headers, qcam = executable('qcam', qcam_sources, resources, install : true, - dependencies : qcam_deps, + dependencies : [ + libatomic, + libcamera_public, + qt5_dep, + tiff_dep, + ], cpp_args : qt5_cpp_args) From patchwork Wed Oct 19 23:15:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 17647 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id DE2BBC327C for ; Wed, 19 Oct 2022 23:16:10 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 5E7BD62E82; Thu, 20 Oct 2022 01:16:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1666221370; bh=fpS7nkOeBIuHmfZgXisXhcsQ4DqOKQcuNGU7vclOxFg=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=jvZGtyXVPZUbim+/HmvvlnZprjDpRXrzxNL9mxfOldV5owUpHWSs+14nOmWwEkkpH cHg294DzTB0NqeFIiqQLGwdm0P+1GLuOscbmnBE2V4sgVZ8qRocvzi/rbxaTFB+ExC 0TwOfcsG64bzFyl4JlOR12B9r++3FoQ8bXynvspYica26oIkvxy+F30CbWcSA+BbJR FCP66JPPKC5c7khS2AeXT0RfpJPv2sdkhYK+ZPGxoTTRraPTHoAyFS+KHgsdp434sL T+Gux6p/ZcXDwjva3qANEqj+vasH9jFsgYJK6OqidnUMZ49vAJdD5RhE1AGv+1jvuq L9Hrx8cFcCMZA== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id AE96462E6E for ; Thu, 20 Oct 2022 01:16:08 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="dayNsdli"; dkim-atps=neutral Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id E880F570 for ; Thu, 20 Oct 2022 01:16:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1666221368; bh=fpS7nkOeBIuHmfZgXisXhcsQ4DqOKQcuNGU7vclOxFg=; h=From:To:Subject:Date:In-Reply-To:References:From; b=dayNsdli8SZSo4YMG3FAhNVSGboE2IgO6eevsXzq7YTl3s3/SWR6+bTGTNX2bf3Tq fqvL4E2rlr257MzW3DWpESvgylUk14iQTYQ2K+uSoIrTK5lBWHZ8FUODaibKghhol+ B4MsUTcsJ0VS7L3RWjVfdrHhFB+E0rbjQHTT8wPg= To: libcamera-devel@lists.libcamera.org Date: Thu, 20 Oct 2022 02:15:34 +0300 Message-Id: <20221019231537.26880-4-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221019231537.26880-1-laurent.pinchart@ideasonboard.com> References: <20221019231537.26880-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v1 3/6] Move test applications to src/apps/ X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Laurent Pinchart via libcamera-devel From: Laurent Pinchart Reply-To: Laurent Pinchart Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The cam and qcam test application share code, currently through a crude hack that references the cam source files directly from the qcam meson.build file. To prepare for the introduction of hosting that code in a static library, move all applications to src/apps/. Signed-off-by: Laurent Pinchart Reviewed-by: Paul Elder Reviewed-by: Kieran Bingham --- src/{ => apps}/cam/camera_session.cpp | 0 src/{ => apps}/cam/camera_session.h | 0 src/{ => apps}/cam/capture-script.yaml | 0 src/{ => apps}/cam/capture_script.cpp | 0 src/{ => apps}/cam/capture_script.h | 0 src/{ => apps}/cam/dng_writer.cpp | 0 src/{ => apps}/cam/dng_writer.h | 0 src/{ => apps}/cam/drm.cpp | 0 src/{ => apps}/cam/drm.h | 0 src/{ => apps}/cam/event_loop.cpp | 0 src/{ => apps}/cam/event_loop.h | 0 src/{ => apps}/cam/file_sink.cpp | 0 src/{ => apps}/cam/file_sink.h | 0 src/{ => apps}/cam/frame_sink.cpp | 0 src/{ => apps}/cam/frame_sink.h | 0 src/{ => apps}/cam/image.cpp | 0 src/{ => apps}/cam/image.h | 0 src/{ => apps}/cam/kms_sink.cpp | 0 src/{ => apps}/cam/kms_sink.h | 0 src/{ => apps}/cam/main.cpp | 0 src/{ => apps}/cam/main.h | 0 src/{ => apps}/cam/meson.build | 0 src/{ => apps}/cam/options.cpp | 0 src/{ => apps}/cam/options.h | 0 src/{ => apps}/cam/sdl_sink.cpp | 0 src/{ => apps}/cam/sdl_sink.h | 0 src/{ => apps}/cam/sdl_texture.cpp | 0 src/{ => apps}/cam/sdl_texture.h | 0 src/{ => apps}/cam/sdl_texture_mjpg.cpp | 0 src/{ => apps}/cam/sdl_texture_mjpg.h | 0 src/{ => apps}/cam/sdl_texture_yuv.cpp | 0 src/{ => apps}/cam/sdl_texture_yuv.h | 0 src/{ => apps}/cam/stream_options.cpp | 0 src/{ => apps}/cam/stream_options.h | 0 src/{ => apps}/lc-compliance/capture_test.cpp | 0 src/{ => apps}/lc-compliance/environment.cpp | 0 src/{ => apps}/lc-compliance/environment.h | 0 src/{ => apps}/lc-compliance/main.cpp | 0 src/{ => apps}/lc-compliance/meson.build | 0 src/{ => apps}/lc-compliance/simple_capture.cpp | 0 src/{ => apps}/lc-compliance/simple_capture.h | 0 src/apps/meson.build | 6 ++++++ src/{ => apps}/qcam/assets/feathericons/activity.svg | 0 src/{ => apps}/qcam/assets/feathericons/airplay.svg | 0 src/{ => apps}/qcam/assets/feathericons/alert-circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/alert-octagon.svg | 0 src/{ => apps}/qcam/assets/feathericons/alert-triangle.svg | 0 src/{ => apps}/qcam/assets/feathericons/align-center.svg | 0 src/{ => apps}/qcam/assets/feathericons/align-justify.svg | 0 src/{ => apps}/qcam/assets/feathericons/align-left.svg | 0 src/{ => apps}/qcam/assets/feathericons/align-right.svg | 0 src/{ => apps}/qcam/assets/feathericons/anchor.svg | 0 src/{ => apps}/qcam/assets/feathericons/aperture.svg | 0 src/{ => apps}/qcam/assets/feathericons/archive.svg | 0 .../qcam/assets/feathericons/arrow-down-circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/arrow-down-left.svg | 0 .../qcam/assets/feathericons/arrow-down-right.svg | 0 src/{ => apps}/qcam/assets/feathericons/arrow-down.svg | 0 .../qcam/assets/feathericons/arrow-left-circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/arrow-left.svg | 0 .../qcam/assets/feathericons/arrow-right-circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/arrow-right.svg | 0 src/{ => apps}/qcam/assets/feathericons/arrow-up-circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/arrow-up-left.svg | 0 src/{ => apps}/qcam/assets/feathericons/arrow-up-right.svg | 0 src/{ => apps}/qcam/assets/feathericons/arrow-up.svg | 0 src/{ => apps}/qcam/assets/feathericons/at-sign.svg | 0 src/{ => apps}/qcam/assets/feathericons/award.svg | 0 src/{ => apps}/qcam/assets/feathericons/bar-chart-2.svg | 0 src/{ => apps}/qcam/assets/feathericons/bar-chart.svg | 0 .../qcam/assets/feathericons/battery-charging.svg | 0 src/{ => apps}/qcam/assets/feathericons/battery.svg | 0 src/{ => apps}/qcam/assets/feathericons/bell-off.svg | 0 src/{ => apps}/qcam/assets/feathericons/bell.svg | 0 src/{ => apps}/qcam/assets/feathericons/bluetooth.svg | 0 src/{ => apps}/qcam/assets/feathericons/bold.svg | 0 src/{ => apps}/qcam/assets/feathericons/book-open.svg | 0 src/{ => apps}/qcam/assets/feathericons/book.svg | 0 src/{ => apps}/qcam/assets/feathericons/bookmark.svg | 0 src/{ => apps}/qcam/assets/feathericons/box.svg | 0 src/{ => apps}/qcam/assets/feathericons/briefcase.svg | 0 src/{ => apps}/qcam/assets/feathericons/calendar.svg | 0 src/{ => apps}/qcam/assets/feathericons/camera-off.svg | 0 src/{ => apps}/qcam/assets/feathericons/camera.svg | 0 src/{ => apps}/qcam/assets/feathericons/cast.svg | 0 src/{ => apps}/qcam/assets/feathericons/check-circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/check-square.svg | 0 src/{ => apps}/qcam/assets/feathericons/check.svg | 0 src/{ => apps}/qcam/assets/feathericons/chevron-down.svg | 0 src/{ => apps}/qcam/assets/feathericons/chevron-left.svg | 0 src/{ => apps}/qcam/assets/feathericons/chevron-right.svg | 0 src/{ => apps}/qcam/assets/feathericons/chevron-up.svg | 0 src/{ => apps}/qcam/assets/feathericons/chevrons-down.svg | 0 src/{ => apps}/qcam/assets/feathericons/chevrons-left.svg | 0 src/{ => apps}/qcam/assets/feathericons/chevrons-right.svg | 0 src/{ => apps}/qcam/assets/feathericons/chevrons-up.svg | 0 src/{ => apps}/qcam/assets/feathericons/chrome.svg | 0 src/{ => apps}/qcam/assets/feathericons/circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/clipboard.svg | 0 src/{ => apps}/qcam/assets/feathericons/clock.svg | 0 src/{ => apps}/qcam/assets/feathericons/cloud-drizzle.svg | 0 src/{ => apps}/qcam/assets/feathericons/cloud-lightning.svg | 0 src/{ => apps}/qcam/assets/feathericons/cloud-off.svg | 0 src/{ => apps}/qcam/assets/feathericons/cloud-rain.svg | 0 src/{ => apps}/qcam/assets/feathericons/cloud-snow.svg | 0 src/{ => apps}/qcam/assets/feathericons/cloud.svg | 0 src/{ => apps}/qcam/assets/feathericons/code.svg | 0 src/{ => apps}/qcam/assets/feathericons/codepen.svg | 0 src/{ => apps}/qcam/assets/feathericons/codesandbox.svg | 0 src/{ => apps}/qcam/assets/feathericons/coffee.svg | 0 src/{ => apps}/qcam/assets/feathericons/columns.svg | 0 src/{ => apps}/qcam/assets/feathericons/command.svg | 0 src/{ => apps}/qcam/assets/feathericons/compass.svg | 0 src/{ => apps}/qcam/assets/feathericons/copy.svg | 0 .../qcam/assets/feathericons/corner-down-left.svg | 0 .../qcam/assets/feathericons/corner-down-right.svg | 0 .../qcam/assets/feathericons/corner-left-down.svg | 0 src/{ => apps}/qcam/assets/feathericons/corner-left-up.svg | 0 .../qcam/assets/feathericons/corner-right-down.svg | 0 src/{ => apps}/qcam/assets/feathericons/corner-right-up.svg | 0 src/{ => apps}/qcam/assets/feathericons/corner-up-left.svg | 0 src/{ => apps}/qcam/assets/feathericons/corner-up-right.svg | 0 src/{ => apps}/qcam/assets/feathericons/cpu.svg | 0 src/{ => apps}/qcam/assets/feathericons/credit-card.svg | 0 src/{ => apps}/qcam/assets/feathericons/crop.svg | 0 src/{ => apps}/qcam/assets/feathericons/crosshair.svg | 0 src/{ => apps}/qcam/assets/feathericons/database.svg | 0 src/{ => apps}/qcam/assets/feathericons/delete.svg | 0 src/{ => apps}/qcam/assets/feathericons/disc.svg | 0 src/{ => apps}/qcam/assets/feathericons/dollar-sign.svg | 0 src/{ => apps}/qcam/assets/feathericons/download-cloud.svg | 0 src/{ => apps}/qcam/assets/feathericons/download.svg | 0 src/{ => apps}/qcam/assets/feathericons/droplet.svg | 0 src/{ => apps}/qcam/assets/feathericons/edit-2.svg | 0 src/{ => apps}/qcam/assets/feathericons/edit-3.svg | 0 src/{ => apps}/qcam/assets/feathericons/edit.svg | 0 src/{ => apps}/qcam/assets/feathericons/external-link.svg | 0 src/{ => apps}/qcam/assets/feathericons/eye-off.svg | 0 src/{ => apps}/qcam/assets/feathericons/eye.svg | 0 src/{ => apps}/qcam/assets/feathericons/facebook.svg | 0 src/{ => apps}/qcam/assets/feathericons/fast-forward.svg | 0 src/{ => apps}/qcam/assets/feathericons/feather.svg | 0 src/{ => apps}/qcam/assets/feathericons/feathericons.qrc | 0 src/{ => apps}/qcam/assets/feathericons/figma.svg | 0 src/{ => apps}/qcam/assets/feathericons/file-minus.svg | 0 src/{ => apps}/qcam/assets/feathericons/file-plus.svg | 0 src/{ => apps}/qcam/assets/feathericons/file-text.svg | 0 src/{ => apps}/qcam/assets/feathericons/file.svg | 0 src/{ => apps}/qcam/assets/feathericons/film.svg | 0 src/{ => apps}/qcam/assets/feathericons/filter.svg | 0 src/{ => apps}/qcam/assets/feathericons/flag.svg | 0 src/{ => apps}/qcam/assets/feathericons/folder-minus.svg | 0 src/{ => apps}/qcam/assets/feathericons/folder-plus.svg | 0 src/{ => apps}/qcam/assets/feathericons/folder.svg | 0 src/{ => apps}/qcam/assets/feathericons/framer.svg | 0 src/{ => apps}/qcam/assets/feathericons/frown.svg | 0 src/{ => apps}/qcam/assets/feathericons/gift.svg | 0 src/{ => apps}/qcam/assets/feathericons/git-branch.svg | 0 src/{ => apps}/qcam/assets/feathericons/git-commit.svg | 0 src/{ => apps}/qcam/assets/feathericons/git-merge.svg | 0 .../qcam/assets/feathericons/git-pull-request.svg | 0 src/{ => apps}/qcam/assets/feathericons/github.svg | 0 src/{ => apps}/qcam/assets/feathericons/gitlab.svg | 0 src/{ => apps}/qcam/assets/feathericons/globe.svg | 0 src/{ => apps}/qcam/assets/feathericons/grid.svg | 0 src/{ => apps}/qcam/assets/feathericons/hard-drive.svg | 0 src/{ => apps}/qcam/assets/feathericons/hash.svg | 0 src/{ => apps}/qcam/assets/feathericons/headphones.svg | 0 src/{ => apps}/qcam/assets/feathericons/heart.svg | 0 src/{ => apps}/qcam/assets/feathericons/help-circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/hexagon.svg | 0 src/{ => apps}/qcam/assets/feathericons/home.svg | 0 src/{ => apps}/qcam/assets/feathericons/image.svg | 0 src/{ => apps}/qcam/assets/feathericons/inbox.svg | 0 src/{ => apps}/qcam/assets/feathericons/info.svg | 0 src/{ => apps}/qcam/assets/feathericons/instagram.svg | 0 src/{ => apps}/qcam/assets/feathericons/italic.svg | 0 src/{ => apps}/qcam/assets/feathericons/key.svg | 0 src/{ => apps}/qcam/assets/feathericons/layers.svg | 0 src/{ => apps}/qcam/assets/feathericons/layout.svg | 0 src/{ => apps}/qcam/assets/feathericons/life-buoy.svg | 0 src/{ => apps}/qcam/assets/feathericons/link-2.svg | 0 src/{ => apps}/qcam/assets/feathericons/link.svg | 0 src/{ => apps}/qcam/assets/feathericons/linkedin.svg | 0 src/{ => apps}/qcam/assets/feathericons/list.svg | 0 src/{ => apps}/qcam/assets/feathericons/loader.svg | 0 src/{ => apps}/qcam/assets/feathericons/lock.svg | 0 src/{ => apps}/qcam/assets/feathericons/log-in.svg | 0 src/{ => apps}/qcam/assets/feathericons/log-out.svg | 0 src/{ => apps}/qcam/assets/feathericons/mail.svg | 0 src/{ => apps}/qcam/assets/feathericons/map-pin.svg | 0 src/{ => apps}/qcam/assets/feathericons/map.svg | 0 src/{ => apps}/qcam/assets/feathericons/maximize-2.svg | 0 src/{ => apps}/qcam/assets/feathericons/maximize.svg | 0 src/{ => apps}/qcam/assets/feathericons/meh.svg | 0 src/{ => apps}/qcam/assets/feathericons/menu.svg | 0 src/{ => apps}/qcam/assets/feathericons/message-circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/message-square.svg | 0 src/{ => apps}/qcam/assets/feathericons/mic-off.svg | 0 src/{ => apps}/qcam/assets/feathericons/mic.svg | 0 src/{ => apps}/qcam/assets/feathericons/minimize-2.svg | 0 src/{ => apps}/qcam/assets/feathericons/minimize.svg | 0 src/{ => apps}/qcam/assets/feathericons/minus-circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/minus-square.svg | 0 src/{ => apps}/qcam/assets/feathericons/minus.svg | 0 src/{ => apps}/qcam/assets/feathericons/monitor.svg | 0 src/{ => apps}/qcam/assets/feathericons/moon.svg | 0 src/{ => apps}/qcam/assets/feathericons/more-horizontal.svg | 0 src/{ => apps}/qcam/assets/feathericons/more-vertical.svg | 0 src/{ => apps}/qcam/assets/feathericons/mouse-pointer.svg | 0 src/{ => apps}/qcam/assets/feathericons/move.svg | 0 src/{ => apps}/qcam/assets/feathericons/music.svg | 0 src/{ => apps}/qcam/assets/feathericons/navigation-2.svg | 0 src/{ => apps}/qcam/assets/feathericons/navigation.svg | 0 src/{ => apps}/qcam/assets/feathericons/octagon.svg | 0 src/{ => apps}/qcam/assets/feathericons/package.svg | 0 src/{ => apps}/qcam/assets/feathericons/paperclip.svg | 0 src/{ => apps}/qcam/assets/feathericons/pause-circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/pause.svg | 0 src/{ => apps}/qcam/assets/feathericons/pen-tool.svg | 0 src/{ => apps}/qcam/assets/feathericons/percent.svg | 0 src/{ => apps}/qcam/assets/feathericons/phone-call.svg | 0 src/{ => apps}/qcam/assets/feathericons/phone-forwarded.svg | 0 src/{ => apps}/qcam/assets/feathericons/phone-incoming.svg | 0 src/{ => apps}/qcam/assets/feathericons/phone-missed.svg | 0 src/{ => apps}/qcam/assets/feathericons/phone-off.svg | 0 src/{ => apps}/qcam/assets/feathericons/phone-outgoing.svg | 0 src/{ => apps}/qcam/assets/feathericons/phone.svg | 0 src/{ => apps}/qcam/assets/feathericons/pie-chart.svg | 0 src/{ => apps}/qcam/assets/feathericons/play-circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/play.svg | 0 src/{ => apps}/qcam/assets/feathericons/plus-circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/plus-square.svg | 0 src/{ => apps}/qcam/assets/feathericons/plus.svg | 0 src/{ => apps}/qcam/assets/feathericons/pocket.svg | 0 src/{ => apps}/qcam/assets/feathericons/power.svg | 0 src/{ => apps}/qcam/assets/feathericons/printer.svg | 0 src/{ => apps}/qcam/assets/feathericons/radio.svg | 0 src/{ => apps}/qcam/assets/feathericons/refresh-ccw.svg | 0 src/{ => apps}/qcam/assets/feathericons/refresh-cw.svg | 0 src/{ => apps}/qcam/assets/feathericons/repeat.svg | 0 src/{ => apps}/qcam/assets/feathericons/rewind.svg | 0 src/{ => apps}/qcam/assets/feathericons/rotate-ccw.svg | 0 src/{ => apps}/qcam/assets/feathericons/rotate-cw.svg | 0 src/{ => apps}/qcam/assets/feathericons/rss.svg | 0 src/{ => apps}/qcam/assets/feathericons/save.svg | 0 src/{ => apps}/qcam/assets/feathericons/scissors.svg | 0 src/{ => apps}/qcam/assets/feathericons/search.svg | 0 src/{ => apps}/qcam/assets/feathericons/send.svg | 0 src/{ => apps}/qcam/assets/feathericons/server.svg | 0 src/{ => apps}/qcam/assets/feathericons/settings.svg | 0 src/{ => apps}/qcam/assets/feathericons/share-2.svg | 0 src/{ => apps}/qcam/assets/feathericons/share.svg | 0 src/{ => apps}/qcam/assets/feathericons/shield-off.svg | 0 src/{ => apps}/qcam/assets/feathericons/shield.svg | 0 src/{ => apps}/qcam/assets/feathericons/shopping-bag.svg | 0 src/{ => apps}/qcam/assets/feathericons/shopping-cart.svg | 0 src/{ => apps}/qcam/assets/feathericons/shuffle.svg | 0 src/{ => apps}/qcam/assets/feathericons/sidebar.svg | 0 src/{ => apps}/qcam/assets/feathericons/skip-back.svg | 0 src/{ => apps}/qcam/assets/feathericons/skip-forward.svg | 0 src/{ => apps}/qcam/assets/feathericons/slack.svg | 0 src/{ => apps}/qcam/assets/feathericons/slash.svg | 0 src/{ => apps}/qcam/assets/feathericons/sliders.svg | 0 src/{ => apps}/qcam/assets/feathericons/smartphone.svg | 0 src/{ => apps}/qcam/assets/feathericons/smile.svg | 0 src/{ => apps}/qcam/assets/feathericons/speaker.svg | 0 src/{ => apps}/qcam/assets/feathericons/square.svg | 0 src/{ => apps}/qcam/assets/feathericons/star.svg | 0 src/{ => apps}/qcam/assets/feathericons/stop-circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/sun.svg | 0 src/{ => apps}/qcam/assets/feathericons/sunrise.svg | 0 src/{ => apps}/qcam/assets/feathericons/sunset.svg | 0 src/{ => apps}/qcam/assets/feathericons/tablet.svg | 0 src/{ => apps}/qcam/assets/feathericons/tag.svg | 0 src/{ => apps}/qcam/assets/feathericons/target.svg | 0 src/{ => apps}/qcam/assets/feathericons/terminal.svg | 0 src/{ => apps}/qcam/assets/feathericons/thermometer.svg | 0 src/{ => apps}/qcam/assets/feathericons/thumbs-down.svg | 0 src/{ => apps}/qcam/assets/feathericons/thumbs-up.svg | 0 src/{ => apps}/qcam/assets/feathericons/toggle-left.svg | 0 src/{ => apps}/qcam/assets/feathericons/toggle-right.svg | 0 src/{ => apps}/qcam/assets/feathericons/tool.svg | 0 src/{ => apps}/qcam/assets/feathericons/trash-2.svg | 0 src/{ => apps}/qcam/assets/feathericons/trash.svg | 0 src/{ => apps}/qcam/assets/feathericons/trello.svg | 0 src/{ => apps}/qcam/assets/feathericons/trending-down.svg | 0 src/{ => apps}/qcam/assets/feathericons/trending-up.svg | 0 src/{ => apps}/qcam/assets/feathericons/triangle.svg | 0 src/{ => apps}/qcam/assets/feathericons/truck.svg | 0 src/{ => apps}/qcam/assets/feathericons/tv.svg | 0 src/{ => apps}/qcam/assets/feathericons/twitch.svg | 0 src/{ => apps}/qcam/assets/feathericons/twitter.svg | 0 src/{ => apps}/qcam/assets/feathericons/type.svg | 0 src/{ => apps}/qcam/assets/feathericons/umbrella.svg | 0 src/{ => apps}/qcam/assets/feathericons/underline.svg | 0 src/{ => apps}/qcam/assets/feathericons/unlock.svg | 0 src/{ => apps}/qcam/assets/feathericons/upload-cloud.svg | 0 src/{ => apps}/qcam/assets/feathericons/upload.svg | 0 src/{ => apps}/qcam/assets/feathericons/user-check.svg | 0 src/{ => apps}/qcam/assets/feathericons/user-minus.svg | 0 src/{ => apps}/qcam/assets/feathericons/user-plus.svg | 0 src/{ => apps}/qcam/assets/feathericons/user-x.svg | 0 src/{ => apps}/qcam/assets/feathericons/user.svg | 0 src/{ => apps}/qcam/assets/feathericons/users.svg | 0 src/{ => apps}/qcam/assets/feathericons/video-off.svg | 0 src/{ => apps}/qcam/assets/feathericons/video.svg | 0 src/{ => apps}/qcam/assets/feathericons/voicemail.svg | 0 src/{ => apps}/qcam/assets/feathericons/volume-1.svg | 0 src/{ => apps}/qcam/assets/feathericons/volume-2.svg | 0 src/{ => apps}/qcam/assets/feathericons/volume-x.svg | 0 src/{ => apps}/qcam/assets/feathericons/volume.svg | 0 src/{ => apps}/qcam/assets/feathericons/watch.svg | 0 src/{ => apps}/qcam/assets/feathericons/wifi-off.svg | 0 src/{ => apps}/qcam/assets/feathericons/wifi.svg | 0 src/{ => apps}/qcam/assets/feathericons/wind.svg | 0 src/{ => apps}/qcam/assets/feathericons/x-circle.svg | 0 src/{ => apps}/qcam/assets/feathericons/x-octagon.svg | 0 src/{ => apps}/qcam/assets/feathericons/x-square.svg | 0 src/{ => apps}/qcam/assets/feathericons/x.svg | 0 src/{ => apps}/qcam/assets/feathericons/youtube.svg | 0 src/{ => apps}/qcam/assets/feathericons/zap-off.svg | 0 src/{ => apps}/qcam/assets/feathericons/zap.svg | 0 src/{ => apps}/qcam/assets/feathericons/zoom-in.svg | 0 src/{ => apps}/qcam/assets/feathericons/zoom-out.svg | 0 src/{ => apps}/qcam/assets/shader/RGB.frag | 0 src/{ => apps}/qcam/assets/shader/YUV_2_planes.frag | 0 src/{ => apps}/qcam/assets/shader/YUV_3_planes.frag | 0 src/{ => apps}/qcam/assets/shader/YUV_packed.frag | 0 src/{ => apps}/qcam/assets/shader/bayer_1x_packed.frag | 0 src/{ => apps}/qcam/assets/shader/bayer_8.frag | 0 src/{ => apps}/qcam/assets/shader/bayer_8.vert | 0 src/{ => apps}/qcam/assets/shader/identity.vert | 0 src/{ => apps}/qcam/assets/shader/shaders.qrc | 0 src/{ => apps}/qcam/cam_select_dialog.cpp | 0 src/{ => apps}/qcam/cam_select_dialog.h | 0 src/{ => apps}/qcam/format_converter.cpp | 0 src/{ => apps}/qcam/format_converter.h | 0 src/{ => apps}/qcam/main.cpp | 0 src/{ => apps}/qcam/main_window.cpp | 0 src/{ => apps}/qcam/main_window.h | 0 src/{ => apps}/qcam/meson.build | 0 src/{ => apps}/qcam/message_handler.cpp | 0 src/{ => apps}/qcam/message_handler.h | 0 src/{ => apps}/qcam/viewfinder.h | 0 src/{ => apps}/qcam/viewfinder_gl.cpp | 0 src/{ => apps}/qcam/viewfinder_gl.h | 0 src/{ => apps}/qcam/viewfinder_qt.cpp | 0 src/{ => apps}/qcam/viewfinder_qt.h | 0 src/meson.build | 5 +---- 350 files changed, 7 insertions(+), 4 deletions(-) rename src/{ => apps}/cam/camera_session.cpp (100%) rename src/{ => apps}/cam/camera_session.h (100%) rename src/{ => apps}/cam/capture-script.yaml (100%) rename src/{ => apps}/cam/capture_script.cpp (100%) rename src/{ => apps}/cam/capture_script.h (100%) rename src/{ => apps}/cam/dng_writer.cpp (100%) rename src/{ => apps}/cam/dng_writer.h (100%) rename src/{ => apps}/cam/drm.cpp (100%) rename src/{ => apps}/cam/drm.h (100%) rename src/{ => apps}/cam/event_loop.cpp (100%) rename src/{ => apps}/cam/event_loop.h (100%) rename src/{ => apps}/cam/file_sink.cpp (100%) rename src/{ => apps}/cam/file_sink.h (100%) rename src/{ => apps}/cam/frame_sink.cpp (100%) rename src/{ => apps}/cam/frame_sink.h (100%) rename src/{ => apps}/cam/image.cpp (100%) rename src/{ => apps}/cam/image.h (100%) rename src/{ => apps}/cam/kms_sink.cpp (100%) rename src/{ => apps}/cam/kms_sink.h (100%) rename src/{ => apps}/cam/main.cpp (100%) rename src/{ => apps}/cam/main.h (100%) rename src/{ => apps}/cam/meson.build (100%) rename src/{ => apps}/cam/options.cpp (100%) rename src/{ => apps}/cam/options.h (100%) rename src/{ => apps}/cam/sdl_sink.cpp (100%) rename src/{ => apps}/cam/sdl_sink.h (100%) rename src/{ => apps}/cam/sdl_texture.cpp (100%) rename src/{ => apps}/cam/sdl_texture.h (100%) rename src/{ => apps}/cam/sdl_texture_mjpg.cpp (100%) rename src/{ => apps}/cam/sdl_texture_mjpg.h (100%) rename src/{ => apps}/cam/sdl_texture_yuv.cpp (100%) rename src/{ => apps}/cam/sdl_texture_yuv.h (100%) rename src/{ => apps}/cam/stream_options.cpp (100%) rename src/{ => apps}/cam/stream_options.h (100%) rename src/{ => apps}/lc-compliance/capture_test.cpp (100%) rename src/{ => apps}/lc-compliance/environment.cpp (100%) rename src/{ => apps}/lc-compliance/environment.h (100%) rename src/{ => apps}/lc-compliance/main.cpp (100%) rename src/{ => apps}/lc-compliance/meson.build (100%) rename src/{ => apps}/lc-compliance/simple_capture.cpp (100%) rename src/{ => apps}/lc-compliance/simple_capture.h (100%) create mode 100644 src/apps/meson.build rename src/{ => apps}/qcam/assets/feathericons/activity.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/airplay.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/alert-circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/alert-octagon.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/alert-triangle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/align-center.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/align-justify.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/align-left.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/align-right.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/anchor.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/aperture.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/archive.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/arrow-down-circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/arrow-down-left.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/arrow-down-right.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/arrow-down.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/arrow-left-circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/arrow-left.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/arrow-right-circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/arrow-right.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/arrow-up-circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/arrow-up-left.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/arrow-up-right.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/arrow-up.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/at-sign.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/award.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/bar-chart-2.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/bar-chart.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/battery-charging.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/battery.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/bell-off.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/bell.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/bluetooth.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/bold.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/book-open.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/book.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/bookmark.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/box.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/briefcase.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/calendar.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/camera-off.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/camera.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/cast.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/check-circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/check-square.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/check.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/chevron-down.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/chevron-left.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/chevron-right.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/chevron-up.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/chevrons-down.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/chevrons-left.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/chevrons-right.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/chevrons-up.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/chrome.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/clipboard.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/clock.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/cloud-drizzle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/cloud-lightning.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/cloud-off.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/cloud-rain.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/cloud-snow.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/cloud.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/code.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/codepen.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/codesandbox.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/coffee.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/columns.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/command.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/compass.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/copy.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/corner-down-left.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/corner-down-right.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/corner-left-down.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/corner-left-up.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/corner-right-down.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/corner-right-up.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/corner-up-left.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/corner-up-right.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/cpu.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/credit-card.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/crop.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/crosshair.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/database.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/delete.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/disc.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/dollar-sign.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/download-cloud.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/download.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/droplet.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/edit-2.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/edit-3.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/edit.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/external-link.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/eye-off.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/eye.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/facebook.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/fast-forward.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/feather.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/feathericons.qrc (100%) rename src/{ => apps}/qcam/assets/feathericons/figma.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/file-minus.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/file-plus.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/file-text.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/file.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/film.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/filter.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/flag.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/folder-minus.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/folder-plus.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/folder.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/framer.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/frown.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/gift.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/git-branch.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/git-commit.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/git-merge.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/git-pull-request.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/github.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/gitlab.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/globe.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/grid.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/hard-drive.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/hash.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/headphones.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/heart.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/help-circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/hexagon.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/home.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/image.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/inbox.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/info.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/instagram.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/italic.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/key.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/layers.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/layout.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/life-buoy.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/link-2.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/link.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/linkedin.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/list.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/loader.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/lock.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/log-in.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/log-out.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/mail.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/map-pin.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/map.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/maximize-2.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/maximize.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/meh.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/menu.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/message-circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/message-square.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/mic-off.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/mic.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/minimize-2.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/minimize.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/minus-circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/minus-square.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/minus.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/monitor.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/moon.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/more-horizontal.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/more-vertical.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/mouse-pointer.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/move.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/music.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/navigation-2.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/navigation.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/octagon.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/package.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/paperclip.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/pause-circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/pause.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/pen-tool.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/percent.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/phone-call.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/phone-forwarded.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/phone-incoming.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/phone-missed.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/phone-off.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/phone-outgoing.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/phone.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/pie-chart.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/play-circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/play.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/plus-circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/plus-square.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/plus.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/pocket.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/power.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/printer.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/radio.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/refresh-ccw.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/refresh-cw.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/repeat.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/rewind.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/rotate-ccw.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/rotate-cw.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/rss.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/save.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/scissors.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/search.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/send.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/server.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/settings.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/share-2.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/share.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/shield-off.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/shield.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/shopping-bag.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/shopping-cart.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/shuffle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/sidebar.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/skip-back.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/skip-forward.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/slack.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/slash.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/sliders.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/smartphone.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/smile.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/speaker.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/square.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/star.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/stop-circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/sun.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/sunrise.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/sunset.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/tablet.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/tag.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/target.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/terminal.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/thermometer.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/thumbs-down.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/thumbs-up.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/toggle-left.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/toggle-right.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/tool.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/trash-2.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/trash.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/trello.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/trending-down.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/trending-up.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/triangle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/truck.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/tv.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/twitch.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/twitter.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/type.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/umbrella.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/underline.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/unlock.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/upload-cloud.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/upload.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/user-check.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/user-minus.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/user-plus.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/user-x.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/user.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/users.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/video-off.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/video.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/voicemail.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/volume-1.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/volume-2.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/volume-x.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/volume.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/watch.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/wifi-off.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/wifi.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/wind.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/x-circle.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/x-octagon.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/x-square.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/x.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/youtube.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/zap-off.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/zap.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/zoom-in.svg (100%) rename src/{ => apps}/qcam/assets/feathericons/zoom-out.svg (100%) rename src/{ => apps}/qcam/assets/shader/RGB.frag (100%) rename src/{ => apps}/qcam/assets/shader/YUV_2_planes.frag (100%) rename src/{ => apps}/qcam/assets/shader/YUV_3_planes.frag (100%) rename src/{ => apps}/qcam/assets/shader/YUV_packed.frag (100%) rename src/{ => apps}/qcam/assets/shader/bayer_1x_packed.frag (100%) rename src/{ => apps}/qcam/assets/shader/bayer_8.frag (100%) rename src/{ => apps}/qcam/assets/shader/bayer_8.vert (100%) rename src/{ => apps}/qcam/assets/shader/identity.vert (100%) rename src/{ => apps}/qcam/assets/shader/shaders.qrc (100%) rename src/{ => apps}/qcam/cam_select_dialog.cpp (100%) rename src/{ => apps}/qcam/cam_select_dialog.h (100%) rename src/{ => apps}/qcam/format_converter.cpp (100%) rename src/{ => apps}/qcam/format_converter.h (100%) rename src/{ => apps}/qcam/main.cpp (100%) rename src/{ => apps}/qcam/main_window.cpp (100%) rename src/{ => apps}/qcam/main_window.h (100%) rename src/{ => apps}/qcam/meson.build (100%) rename src/{ => apps}/qcam/message_handler.cpp (100%) rename src/{ => apps}/qcam/message_handler.h (100%) rename src/{ => apps}/qcam/viewfinder.h (100%) rename src/{ => apps}/qcam/viewfinder_gl.cpp (100%) rename src/{ => apps}/qcam/viewfinder_gl.h (100%) rename src/{ => apps}/qcam/viewfinder_qt.cpp (100%) rename src/{ => apps}/qcam/viewfinder_qt.h (100%) diff --git a/src/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp similarity index 100% rename from src/cam/camera_session.cpp rename to src/apps/cam/camera_session.cpp diff --git a/src/cam/camera_session.h b/src/apps/cam/camera_session.h similarity index 100% rename from src/cam/camera_session.h rename to src/apps/cam/camera_session.h diff --git a/src/cam/capture-script.yaml b/src/apps/cam/capture-script.yaml similarity index 100% rename from src/cam/capture-script.yaml rename to src/apps/cam/capture-script.yaml diff --git a/src/cam/capture_script.cpp b/src/apps/cam/capture_script.cpp similarity index 100% rename from src/cam/capture_script.cpp rename to src/apps/cam/capture_script.cpp diff --git a/src/cam/capture_script.h b/src/apps/cam/capture_script.h similarity index 100% rename from src/cam/capture_script.h rename to src/apps/cam/capture_script.h diff --git a/src/cam/dng_writer.cpp b/src/apps/cam/dng_writer.cpp similarity index 100% rename from src/cam/dng_writer.cpp rename to src/apps/cam/dng_writer.cpp diff --git a/src/cam/dng_writer.h b/src/apps/cam/dng_writer.h similarity index 100% rename from src/cam/dng_writer.h rename to src/apps/cam/dng_writer.h diff --git a/src/cam/drm.cpp b/src/apps/cam/drm.cpp similarity index 100% rename from src/cam/drm.cpp rename to src/apps/cam/drm.cpp diff --git a/src/cam/drm.h b/src/apps/cam/drm.h similarity index 100% rename from src/cam/drm.h rename to src/apps/cam/drm.h diff --git a/src/cam/event_loop.cpp b/src/apps/cam/event_loop.cpp similarity index 100% rename from src/cam/event_loop.cpp rename to src/apps/cam/event_loop.cpp diff --git a/src/cam/event_loop.h b/src/apps/cam/event_loop.h similarity index 100% rename from src/cam/event_loop.h rename to src/apps/cam/event_loop.h diff --git a/src/cam/file_sink.cpp b/src/apps/cam/file_sink.cpp similarity index 100% rename from src/cam/file_sink.cpp rename to src/apps/cam/file_sink.cpp diff --git a/src/cam/file_sink.h b/src/apps/cam/file_sink.h similarity index 100% rename from src/cam/file_sink.h rename to src/apps/cam/file_sink.h diff --git a/src/cam/frame_sink.cpp b/src/apps/cam/frame_sink.cpp similarity index 100% rename from src/cam/frame_sink.cpp rename to src/apps/cam/frame_sink.cpp diff --git a/src/cam/frame_sink.h b/src/apps/cam/frame_sink.h similarity index 100% rename from src/cam/frame_sink.h rename to src/apps/cam/frame_sink.h diff --git a/src/cam/image.cpp b/src/apps/cam/image.cpp similarity index 100% rename from src/cam/image.cpp rename to src/apps/cam/image.cpp diff --git a/src/cam/image.h b/src/apps/cam/image.h similarity index 100% rename from src/cam/image.h rename to src/apps/cam/image.h diff --git a/src/cam/kms_sink.cpp b/src/apps/cam/kms_sink.cpp similarity index 100% rename from src/cam/kms_sink.cpp rename to src/apps/cam/kms_sink.cpp diff --git a/src/cam/kms_sink.h b/src/apps/cam/kms_sink.h similarity index 100% rename from src/cam/kms_sink.h rename to src/apps/cam/kms_sink.h diff --git a/src/cam/main.cpp b/src/apps/cam/main.cpp similarity index 100% rename from src/cam/main.cpp rename to src/apps/cam/main.cpp diff --git a/src/cam/main.h b/src/apps/cam/main.h similarity index 100% rename from src/cam/main.h rename to src/apps/cam/main.h diff --git a/src/cam/meson.build b/src/apps/cam/meson.build similarity index 100% rename from src/cam/meson.build rename to src/apps/cam/meson.build diff --git a/src/cam/options.cpp b/src/apps/cam/options.cpp similarity index 100% rename from src/cam/options.cpp rename to src/apps/cam/options.cpp diff --git a/src/cam/options.h b/src/apps/cam/options.h similarity index 100% rename from src/cam/options.h rename to src/apps/cam/options.h diff --git a/src/cam/sdl_sink.cpp b/src/apps/cam/sdl_sink.cpp similarity index 100% rename from src/cam/sdl_sink.cpp rename to src/apps/cam/sdl_sink.cpp diff --git a/src/cam/sdl_sink.h b/src/apps/cam/sdl_sink.h similarity index 100% rename from src/cam/sdl_sink.h rename to src/apps/cam/sdl_sink.h diff --git a/src/cam/sdl_texture.cpp b/src/apps/cam/sdl_texture.cpp similarity index 100% rename from src/cam/sdl_texture.cpp rename to src/apps/cam/sdl_texture.cpp diff --git a/src/cam/sdl_texture.h b/src/apps/cam/sdl_texture.h similarity index 100% rename from src/cam/sdl_texture.h rename to src/apps/cam/sdl_texture.h diff --git a/src/cam/sdl_texture_mjpg.cpp b/src/apps/cam/sdl_texture_mjpg.cpp similarity index 100% rename from src/cam/sdl_texture_mjpg.cpp rename to src/apps/cam/sdl_texture_mjpg.cpp diff --git a/src/cam/sdl_texture_mjpg.h b/src/apps/cam/sdl_texture_mjpg.h similarity index 100% rename from src/cam/sdl_texture_mjpg.h rename to src/apps/cam/sdl_texture_mjpg.h diff --git a/src/cam/sdl_texture_yuv.cpp b/src/apps/cam/sdl_texture_yuv.cpp similarity index 100% rename from src/cam/sdl_texture_yuv.cpp rename to src/apps/cam/sdl_texture_yuv.cpp diff --git a/src/cam/sdl_texture_yuv.h b/src/apps/cam/sdl_texture_yuv.h similarity index 100% rename from src/cam/sdl_texture_yuv.h rename to src/apps/cam/sdl_texture_yuv.h diff --git a/src/cam/stream_options.cpp b/src/apps/cam/stream_options.cpp similarity index 100% rename from src/cam/stream_options.cpp rename to src/apps/cam/stream_options.cpp diff --git a/src/cam/stream_options.h b/src/apps/cam/stream_options.h similarity index 100% rename from src/cam/stream_options.h rename to src/apps/cam/stream_options.h diff --git a/src/lc-compliance/capture_test.cpp b/src/apps/lc-compliance/capture_test.cpp similarity index 100% rename from src/lc-compliance/capture_test.cpp rename to src/apps/lc-compliance/capture_test.cpp diff --git a/src/lc-compliance/environment.cpp b/src/apps/lc-compliance/environment.cpp similarity index 100% rename from src/lc-compliance/environment.cpp rename to src/apps/lc-compliance/environment.cpp diff --git a/src/lc-compliance/environment.h b/src/apps/lc-compliance/environment.h similarity index 100% rename from src/lc-compliance/environment.h rename to src/apps/lc-compliance/environment.h diff --git a/src/lc-compliance/main.cpp b/src/apps/lc-compliance/main.cpp similarity index 100% rename from src/lc-compliance/main.cpp rename to src/apps/lc-compliance/main.cpp diff --git a/src/lc-compliance/meson.build b/src/apps/lc-compliance/meson.build similarity index 100% rename from src/lc-compliance/meson.build rename to src/apps/lc-compliance/meson.build diff --git a/src/lc-compliance/simple_capture.cpp b/src/apps/lc-compliance/simple_capture.cpp similarity index 100% rename from src/lc-compliance/simple_capture.cpp rename to src/apps/lc-compliance/simple_capture.cpp diff --git a/src/lc-compliance/simple_capture.h b/src/apps/lc-compliance/simple_capture.h similarity index 100% rename from src/lc-compliance/simple_capture.h rename to src/apps/lc-compliance/simple_capture.h diff --git a/src/apps/meson.build b/src/apps/meson.build new file mode 100644 index 000000000000..9e4388bd7881 --- /dev/null +++ b/src/apps/meson.build @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: CC0-1.0 + +subdir('lc-compliance') + +subdir('cam') +subdir('qcam') diff --git a/src/qcam/assets/feathericons/activity.svg b/src/apps/qcam/assets/feathericons/activity.svg similarity index 100% rename from src/qcam/assets/feathericons/activity.svg rename to src/apps/qcam/assets/feathericons/activity.svg diff --git a/src/qcam/assets/feathericons/airplay.svg b/src/apps/qcam/assets/feathericons/airplay.svg similarity index 100% rename from src/qcam/assets/feathericons/airplay.svg rename to src/apps/qcam/assets/feathericons/airplay.svg diff --git a/src/qcam/assets/feathericons/alert-circle.svg b/src/apps/qcam/assets/feathericons/alert-circle.svg similarity index 100% rename from src/qcam/assets/feathericons/alert-circle.svg rename to src/apps/qcam/assets/feathericons/alert-circle.svg diff --git a/src/qcam/assets/feathericons/alert-octagon.svg b/src/apps/qcam/assets/feathericons/alert-octagon.svg similarity index 100% rename from src/qcam/assets/feathericons/alert-octagon.svg rename to src/apps/qcam/assets/feathericons/alert-octagon.svg diff --git a/src/qcam/assets/feathericons/alert-triangle.svg b/src/apps/qcam/assets/feathericons/alert-triangle.svg similarity index 100% rename from src/qcam/assets/feathericons/alert-triangle.svg rename to src/apps/qcam/assets/feathericons/alert-triangle.svg diff --git a/src/qcam/assets/feathericons/align-center.svg b/src/apps/qcam/assets/feathericons/align-center.svg similarity index 100% rename from src/qcam/assets/feathericons/align-center.svg rename to src/apps/qcam/assets/feathericons/align-center.svg diff --git a/src/qcam/assets/feathericons/align-justify.svg b/src/apps/qcam/assets/feathericons/align-justify.svg similarity index 100% rename from src/qcam/assets/feathericons/align-justify.svg rename to src/apps/qcam/assets/feathericons/align-justify.svg diff --git a/src/qcam/assets/feathericons/align-left.svg b/src/apps/qcam/assets/feathericons/align-left.svg similarity index 100% rename from src/qcam/assets/feathericons/align-left.svg rename to src/apps/qcam/assets/feathericons/align-left.svg diff --git a/src/qcam/assets/feathericons/align-right.svg b/src/apps/qcam/assets/feathericons/align-right.svg similarity index 100% rename from src/qcam/assets/feathericons/align-right.svg rename to src/apps/qcam/assets/feathericons/align-right.svg diff --git a/src/qcam/assets/feathericons/anchor.svg b/src/apps/qcam/assets/feathericons/anchor.svg similarity index 100% rename from src/qcam/assets/feathericons/anchor.svg rename to src/apps/qcam/assets/feathericons/anchor.svg diff --git a/src/qcam/assets/feathericons/aperture.svg b/src/apps/qcam/assets/feathericons/aperture.svg similarity index 100% rename from src/qcam/assets/feathericons/aperture.svg rename to src/apps/qcam/assets/feathericons/aperture.svg diff --git a/src/qcam/assets/feathericons/archive.svg b/src/apps/qcam/assets/feathericons/archive.svg similarity index 100% rename from src/qcam/assets/feathericons/archive.svg rename to src/apps/qcam/assets/feathericons/archive.svg diff --git a/src/qcam/assets/feathericons/arrow-down-circle.svg b/src/apps/qcam/assets/feathericons/arrow-down-circle.svg similarity index 100% rename from src/qcam/assets/feathericons/arrow-down-circle.svg rename to src/apps/qcam/assets/feathericons/arrow-down-circle.svg diff --git a/src/qcam/assets/feathericons/arrow-down-left.svg b/src/apps/qcam/assets/feathericons/arrow-down-left.svg similarity index 100% rename from src/qcam/assets/feathericons/arrow-down-left.svg rename to src/apps/qcam/assets/feathericons/arrow-down-left.svg diff --git a/src/qcam/assets/feathericons/arrow-down-right.svg b/src/apps/qcam/assets/feathericons/arrow-down-right.svg similarity index 100% rename from src/qcam/assets/feathericons/arrow-down-right.svg rename to src/apps/qcam/assets/feathericons/arrow-down-right.svg diff --git a/src/qcam/assets/feathericons/arrow-down.svg b/src/apps/qcam/assets/feathericons/arrow-down.svg similarity index 100% rename from src/qcam/assets/feathericons/arrow-down.svg rename to src/apps/qcam/assets/feathericons/arrow-down.svg diff --git a/src/qcam/assets/feathericons/arrow-left-circle.svg b/src/apps/qcam/assets/feathericons/arrow-left-circle.svg similarity index 100% rename from src/qcam/assets/feathericons/arrow-left-circle.svg rename to src/apps/qcam/assets/feathericons/arrow-left-circle.svg diff --git a/src/qcam/assets/feathericons/arrow-left.svg b/src/apps/qcam/assets/feathericons/arrow-left.svg similarity index 100% rename from src/qcam/assets/feathericons/arrow-left.svg rename to src/apps/qcam/assets/feathericons/arrow-left.svg diff --git a/src/qcam/assets/feathericons/arrow-right-circle.svg b/src/apps/qcam/assets/feathericons/arrow-right-circle.svg similarity index 100% rename from src/qcam/assets/feathericons/arrow-right-circle.svg rename to src/apps/qcam/assets/feathericons/arrow-right-circle.svg diff --git a/src/qcam/assets/feathericons/arrow-right.svg b/src/apps/qcam/assets/feathericons/arrow-right.svg similarity index 100% rename from src/qcam/assets/feathericons/arrow-right.svg rename to src/apps/qcam/assets/feathericons/arrow-right.svg diff --git a/src/qcam/assets/feathericons/arrow-up-circle.svg b/src/apps/qcam/assets/feathericons/arrow-up-circle.svg similarity index 100% rename from src/qcam/assets/feathericons/arrow-up-circle.svg rename to src/apps/qcam/assets/feathericons/arrow-up-circle.svg diff --git a/src/qcam/assets/feathericons/arrow-up-left.svg b/src/apps/qcam/assets/feathericons/arrow-up-left.svg similarity index 100% rename from src/qcam/assets/feathericons/arrow-up-left.svg rename to src/apps/qcam/assets/feathericons/arrow-up-left.svg diff --git a/src/qcam/assets/feathericons/arrow-up-right.svg b/src/apps/qcam/assets/feathericons/arrow-up-right.svg similarity index 100% rename from src/qcam/assets/feathericons/arrow-up-right.svg rename to src/apps/qcam/assets/feathericons/arrow-up-right.svg diff --git a/src/qcam/assets/feathericons/arrow-up.svg b/src/apps/qcam/assets/feathericons/arrow-up.svg similarity index 100% rename from src/qcam/assets/feathericons/arrow-up.svg rename to src/apps/qcam/assets/feathericons/arrow-up.svg diff --git a/src/qcam/assets/feathericons/at-sign.svg b/src/apps/qcam/assets/feathericons/at-sign.svg similarity index 100% rename from src/qcam/assets/feathericons/at-sign.svg rename to src/apps/qcam/assets/feathericons/at-sign.svg diff --git a/src/qcam/assets/feathericons/award.svg b/src/apps/qcam/assets/feathericons/award.svg similarity index 100% rename from src/qcam/assets/feathericons/award.svg rename to src/apps/qcam/assets/feathericons/award.svg diff --git a/src/qcam/assets/feathericons/bar-chart-2.svg b/src/apps/qcam/assets/feathericons/bar-chart-2.svg similarity index 100% rename from src/qcam/assets/feathericons/bar-chart-2.svg rename to src/apps/qcam/assets/feathericons/bar-chart-2.svg diff --git a/src/qcam/assets/feathericons/bar-chart.svg b/src/apps/qcam/assets/feathericons/bar-chart.svg similarity index 100% rename from src/qcam/assets/feathericons/bar-chart.svg rename to src/apps/qcam/assets/feathericons/bar-chart.svg diff --git a/src/qcam/assets/feathericons/battery-charging.svg b/src/apps/qcam/assets/feathericons/battery-charging.svg similarity index 100% rename from src/qcam/assets/feathericons/battery-charging.svg rename to src/apps/qcam/assets/feathericons/battery-charging.svg diff --git a/src/qcam/assets/feathericons/battery.svg b/src/apps/qcam/assets/feathericons/battery.svg similarity index 100% rename from src/qcam/assets/feathericons/battery.svg rename to src/apps/qcam/assets/feathericons/battery.svg diff --git a/src/qcam/assets/feathericons/bell-off.svg b/src/apps/qcam/assets/feathericons/bell-off.svg similarity index 100% rename from src/qcam/assets/feathericons/bell-off.svg rename to src/apps/qcam/assets/feathericons/bell-off.svg diff --git a/src/qcam/assets/feathericons/bell.svg b/src/apps/qcam/assets/feathericons/bell.svg similarity index 100% rename from src/qcam/assets/feathericons/bell.svg rename to src/apps/qcam/assets/feathericons/bell.svg diff --git a/src/qcam/assets/feathericons/bluetooth.svg b/src/apps/qcam/assets/feathericons/bluetooth.svg similarity index 100% rename from src/qcam/assets/feathericons/bluetooth.svg rename to src/apps/qcam/assets/feathericons/bluetooth.svg diff --git a/src/qcam/assets/feathericons/bold.svg b/src/apps/qcam/assets/feathericons/bold.svg similarity index 100% rename from src/qcam/assets/feathericons/bold.svg rename to src/apps/qcam/assets/feathericons/bold.svg diff --git a/src/qcam/assets/feathericons/book-open.svg b/src/apps/qcam/assets/feathericons/book-open.svg similarity index 100% rename from src/qcam/assets/feathericons/book-open.svg rename to src/apps/qcam/assets/feathericons/book-open.svg diff --git a/src/qcam/assets/feathericons/book.svg b/src/apps/qcam/assets/feathericons/book.svg similarity index 100% rename from src/qcam/assets/feathericons/book.svg rename to src/apps/qcam/assets/feathericons/book.svg diff --git a/src/qcam/assets/feathericons/bookmark.svg b/src/apps/qcam/assets/feathericons/bookmark.svg similarity index 100% rename from src/qcam/assets/feathericons/bookmark.svg rename to src/apps/qcam/assets/feathericons/bookmark.svg diff --git a/src/qcam/assets/feathericons/box.svg b/src/apps/qcam/assets/feathericons/box.svg similarity index 100% rename from src/qcam/assets/feathericons/box.svg rename to src/apps/qcam/assets/feathericons/box.svg diff --git a/src/qcam/assets/feathericons/briefcase.svg b/src/apps/qcam/assets/feathericons/briefcase.svg similarity index 100% rename from src/qcam/assets/feathericons/briefcase.svg rename to src/apps/qcam/assets/feathericons/briefcase.svg diff --git a/src/qcam/assets/feathericons/calendar.svg b/src/apps/qcam/assets/feathericons/calendar.svg similarity index 100% rename from src/qcam/assets/feathericons/calendar.svg rename to src/apps/qcam/assets/feathericons/calendar.svg diff --git a/src/qcam/assets/feathericons/camera-off.svg b/src/apps/qcam/assets/feathericons/camera-off.svg similarity index 100% rename from src/qcam/assets/feathericons/camera-off.svg rename to src/apps/qcam/assets/feathericons/camera-off.svg diff --git a/src/qcam/assets/feathericons/camera.svg b/src/apps/qcam/assets/feathericons/camera.svg similarity index 100% rename from src/qcam/assets/feathericons/camera.svg rename to src/apps/qcam/assets/feathericons/camera.svg diff --git a/src/qcam/assets/feathericons/cast.svg b/src/apps/qcam/assets/feathericons/cast.svg similarity index 100% rename from src/qcam/assets/feathericons/cast.svg rename to src/apps/qcam/assets/feathericons/cast.svg diff --git a/src/qcam/assets/feathericons/check-circle.svg b/src/apps/qcam/assets/feathericons/check-circle.svg similarity index 100% rename from src/qcam/assets/feathericons/check-circle.svg rename to src/apps/qcam/assets/feathericons/check-circle.svg diff --git a/src/qcam/assets/feathericons/check-square.svg b/src/apps/qcam/assets/feathericons/check-square.svg similarity index 100% rename from src/qcam/assets/feathericons/check-square.svg rename to src/apps/qcam/assets/feathericons/check-square.svg diff --git a/src/qcam/assets/feathericons/check.svg b/src/apps/qcam/assets/feathericons/check.svg similarity index 100% rename from src/qcam/assets/feathericons/check.svg rename to src/apps/qcam/assets/feathericons/check.svg diff --git a/src/qcam/assets/feathericons/chevron-down.svg b/src/apps/qcam/assets/feathericons/chevron-down.svg similarity index 100% rename from src/qcam/assets/feathericons/chevron-down.svg rename to src/apps/qcam/assets/feathericons/chevron-down.svg diff --git a/src/qcam/assets/feathericons/chevron-left.svg b/src/apps/qcam/assets/feathericons/chevron-left.svg similarity index 100% rename from src/qcam/assets/feathericons/chevron-left.svg rename to src/apps/qcam/assets/feathericons/chevron-left.svg diff --git a/src/qcam/assets/feathericons/chevron-right.svg b/src/apps/qcam/assets/feathericons/chevron-right.svg similarity index 100% rename from src/qcam/assets/feathericons/chevron-right.svg rename to src/apps/qcam/assets/feathericons/chevron-right.svg diff --git a/src/qcam/assets/feathericons/chevron-up.svg b/src/apps/qcam/assets/feathericons/chevron-up.svg similarity index 100% rename from src/qcam/assets/feathericons/chevron-up.svg rename to src/apps/qcam/assets/feathericons/chevron-up.svg diff --git a/src/qcam/assets/feathericons/chevrons-down.svg b/src/apps/qcam/assets/feathericons/chevrons-down.svg similarity index 100% rename from src/qcam/assets/feathericons/chevrons-down.svg rename to src/apps/qcam/assets/feathericons/chevrons-down.svg diff --git a/src/qcam/assets/feathericons/chevrons-left.svg b/src/apps/qcam/assets/feathericons/chevrons-left.svg similarity index 100% rename from src/qcam/assets/feathericons/chevrons-left.svg rename to src/apps/qcam/assets/feathericons/chevrons-left.svg diff --git a/src/qcam/assets/feathericons/chevrons-right.svg b/src/apps/qcam/assets/feathericons/chevrons-right.svg similarity index 100% rename from src/qcam/assets/feathericons/chevrons-right.svg rename to src/apps/qcam/assets/feathericons/chevrons-right.svg diff --git a/src/qcam/assets/feathericons/chevrons-up.svg b/src/apps/qcam/assets/feathericons/chevrons-up.svg similarity index 100% rename from src/qcam/assets/feathericons/chevrons-up.svg rename to src/apps/qcam/assets/feathericons/chevrons-up.svg diff --git a/src/qcam/assets/feathericons/chrome.svg b/src/apps/qcam/assets/feathericons/chrome.svg similarity index 100% rename from src/qcam/assets/feathericons/chrome.svg rename to src/apps/qcam/assets/feathericons/chrome.svg diff --git a/src/qcam/assets/feathericons/circle.svg b/src/apps/qcam/assets/feathericons/circle.svg similarity index 100% rename from src/qcam/assets/feathericons/circle.svg rename to src/apps/qcam/assets/feathericons/circle.svg diff --git a/src/qcam/assets/feathericons/clipboard.svg b/src/apps/qcam/assets/feathericons/clipboard.svg similarity index 100% rename from src/qcam/assets/feathericons/clipboard.svg rename to src/apps/qcam/assets/feathericons/clipboard.svg diff --git a/src/qcam/assets/feathericons/clock.svg b/src/apps/qcam/assets/feathericons/clock.svg similarity index 100% rename from src/qcam/assets/feathericons/clock.svg rename to src/apps/qcam/assets/feathericons/clock.svg diff --git a/src/qcam/assets/feathericons/cloud-drizzle.svg b/src/apps/qcam/assets/feathericons/cloud-drizzle.svg similarity index 100% rename from src/qcam/assets/feathericons/cloud-drizzle.svg rename to src/apps/qcam/assets/feathericons/cloud-drizzle.svg diff --git a/src/qcam/assets/feathericons/cloud-lightning.svg b/src/apps/qcam/assets/feathericons/cloud-lightning.svg similarity index 100% rename from src/qcam/assets/feathericons/cloud-lightning.svg rename to src/apps/qcam/assets/feathericons/cloud-lightning.svg diff --git a/src/qcam/assets/feathericons/cloud-off.svg b/src/apps/qcam/assets/feathericons/cloud-off.svg similarity index 100% rename from src/qcam/assets/feathericons/cloud-off.svg rename to src/apps/qcam/assets/feathericons/cloud-off.svg diff --git a/src/qcam/assets/feathericons/cloud-rain.svg b/src/apps/qcam/assets/feathericons/cloud-rain.svg similarity index 100% rename from src/qcam/assets/feathericons/cloud-rain.svg rename to src/apps/qcam/assets/feathericons/cloud-rain.svg diff --git a/src/qcam/assets/feathericons/cloud-snow.svg b/src/apps/qcam/assets/feathericons/cloud-snow.svg similarity index 100% rename from src/qcam/assets/feathericons/cloud-snow.svg rename to src/apps/qcam/assets/feathericons/cloud-snow.svg diff --git a/src/qcam/assets/feathericons/cloud.svg b/src/apps/qcam/assets/feathericons/cloud.svg similarity index 100% rename from src/qcam/assets/feathericons/cloud.svg rename to src/apps/qcam/assets/feathericons/cloud.svg diff --git a/src/qcam/assets/feathericons/code.svg b/src/apps/qcam/assets/feathericons/code.svg similarity index 100% rename from src/qcam/assets/feathericons/code.svg rename to src/apps/qcam/assets/feathericons/code.svg diff --git a/src/qcam/assets/feathericons/codepen.svg b/src/apps/qcam/assets/feathericons/codepen.svg similarity index 100% rename from src/qcam/assets/feathericons/codepen.svg rename to src/apps/qcam/assets/feathericons/codepen.svg diff --git a/src/qcam/assets/feathericons/codesandbox.svg b/src/apps/qcam/assets/feathericons/codesandbox.svg similarity index 100% rename from src/qcam/assets/feathericons/codesandbox.svg rename to src/apps/qcam/assets/feathericons/codesandbox.svg diff --git a/src/qcam/assets/feathericons/coffee.svg b/src/apps/qcam/assets/feathericons/coffee.svg similarity index 100% rename from src/qcam/assets/feathericons/coffee.svg rename to src/apps/qcam/assets/feathericons/coffee.svg diff --git a/src/qcam/assets/feathericons/columns.svg b/src/apps/qcam/assets/feathericons/columns.svg similarity index 100% rename from src/qcam/assets/feathericons/columns.svg rename to src/apps/qcam/assets/feathericons/columns.svg diff --git a/src/qcam/assets/feathericons/command.svg b/src/apps/qcam/assets/feathericons/command.svg similarity index 100% rename from src/qcam/assets/feathericons/command.svg rename to src/apps/qcam/assets/feathericons/command.svg diff --git a/src/qcam/assets/feathericons/compass.svg b/src/apps/qcam/assets/feathericons/compass.svg similarity index 100% rename from src/qcam/assets/feathericons/compass.svg rename to src/apps/qcam/assets/feathericons/compass.svg diff --git a/src/qcam/assets/feathericons/copy.svg b/src/apps/qcam/assets/feathericons/copy.svg similarity index 100% rename from src/qcam/assets/feathericons/copy.svg rename to src/apps/qcam/assets/feathericons/copy.svg diff --git a/src/qcam/assets/feathericons/corner-down-left.svg b/src/apps/qcam/assets/feathericons/corner-down-left.svg similarity index 100% rename from src/qcam/assets/feathericons/corner-down-left.svg rename to src/apps/qcam/assets/feathericons/corner-down-left.svg diff --git a/src/qcam/assets/feathericons/corner-down-right.svg b/src/apps/qcam/assets/feathericons/corner-down-right.svg similarity index 100% rename from src/qcam/assets/feathericons/corner-down-right.svg rename to src/apps/qcam/assets/feathericons/corner-down-right.svg diff --git a/src/qcam/assets/feathericons/corner-left-down.svg b/src/apps/qcam/assets/feathericons/corner-left-down.svg similarity index 100% rename from src/qcam/assets/feathericons/corner-left-down.svg rename to src/apps/qcam/assets/feathericons/corner-left-down.svg diff --git a/src/qcam/assets/feathericons/corner-left-up.svg b/src/apps/qcam/assets/feathericons/corner-left-up.svg similarity index 100% rename from src/qcam/assets/feathericons/corner-left-up.svg rename to src/apps/qcam/assets/feathericons/corner-left-up.svg diff --git a/src/qcam/assets/feathericons/corner-right-down.svg b/src/apps/qcam/assets/feathericons/corner-right-down.svg similarity index 100% rename from src/qcam/assets/feathericons/corner-right-down.svg rename to src/apps/qcam/assets/feathericons/corner-right-down.svg diff --git a/src/qcam/assets/feathericons/corner-right-up.svg b/src/apps/qcam/assets/feathericons/corner-right-up.svg similarity index 100% rename from src/qcam/assets/feathericons/corner-right-up.svg rename to src/apps/qcam/assets/feathericons/corner-right-up.svg diff --git a/src/qcam/assets/feathericons/corner-up-left.svg b/src/apps/qcam/assets/feathericons/corner-up-left.svg similarity index 100% rename from src/qcam/assets/feathericons/corner-up-left.svg rename to src/apps/qcam/assets/feathericons/corner-up-left.svg diff --git a/src/qcam/assets/feathericons/corner-up-right.svg b/src/apps/qcam/assets/feathericons/corner-up-right.svg similarity index 100% rename from src/qcam/assets/feathericons/corner-up-right.svg rename to src/apps/qcam/assets/feathericons/corner-up-right.svg diff --git a/src/qcam/assets/feathericons/cpu.svg b/src/apps/qcam/assets/feathericons/cpu.svg similarity index 100% rename from src/qcam/assets/feathericons/cpu.svg rename to src/apps/qcam/assets/feathericons/cpu.svg diff --git a/src/qcam/assets/feathericons/credit-card.svg b/src/apps/qcam/assets/feathericons/credit-card.svg similarity index 100% rename from src/qcam/assets/feathericons/credit-card.svg rename to src/apps/qcam/assets/feathericons/credit-card.svg diff --git a/src/qcam/assets/feathericons/crop.svg b/src/apps/qcam/assets/feathericons/crop.svg similarity index 100% rename from src/qcam/assets/feathericons/crop.svg rename to src/apps/qcam/assets/feathericons/crop.svg diff --git a/src/qcam/assets/feathericons/crosshair.svg b/src/apps/qcam/assets/feathericons/crosshair.svg similarity index 100% rename from src/qcam/assets/feathericons/crosshair.svg rename to src/apps/qcam/assets/feathericons/crosshair.svg diff --git a/src/qcam/assets/feathericons/database.svg b/src/apps/qcam/assets/feathericons/database.svg similarity index 100% rename from src/qcam/assets/feathericons/database.svg rename to src/apps/qcam/assets/feathericons/database.svg diff --git a/src/qcam/assets/feathericons/delete.svg b/src/apps/qcam/assets/feathericons/delete.svg similarity index 100% rename from src/qcam/assets/feathericons/delete.svg rename to src/apps/qcam/assets/feathericons/delete.svg diff --git a/src/qcam/assets/feathericons/disc.svg b/src/apps/qcam/assets/feathericons/disc.svg similarity index 100% rename from src/qcam/assets/feathericons/disc.svg rename to src/apps/qcam/assets/feathericons/disc.svg diff --git a/src/qcam/assets/feathericons/dollar-sign.svg b/src/apps/qcam/assets/feathericons/dollar-sign.svg similarity index 100% rename from src/qcam/assets/feathericons/dollar-sign.svg rename to src/apps/qcam/assets/feathericons/dollar-sign.svg diff --git a/src/qcam/assets/feathericons/download-cloud.svg b/src/apps/qcam/assets/feathericons/download-cloud.svg similarity index 100% rename from src/qcam/assets/feathericons/download-cloud.svg rename to src/apps/qcam/assets/feathericons/download-cloud.svg diff --git a/src/qcam/assets/feathericons/download.svg b/src/apps/qcam/assets/feathericons/download.svg similarity index 100% rename from src/qcam/assets/feathericons/download.svg rename to src/apps/qcam/assets/feathericons/download.svg diff --git a/src/qcam/assets/feathericons/droplet.svg b/src/apps/qcam/assets/feathericons/droplet.svg similarity index 100% rename from src/qcam/assets/feathericons/droplet.svg rename to src/apps/qcam/assets/feathericons/droplet.svg diff --git a/src/qcam/assets/feathericons/edit-2.svg b/src/apps/qcam/assets/feathericons/edit-2.svg similarity index 100% rename from src/qcam/assets/feathericons/edit-2.svg rename to src/apps/qcam/assets/feathericons/edit-2.svg diff --git a/src/qcam/assets/feathericons/edit-3.svg b/src/apps/qcam/assets/feathericons/edit-3.svg similarity index 100% rename from src/qcam/assets/feathericons/edit-3.svg rename to src/apps/qcam/assets/feathericons/edit-3.svg diff --git a/src/qcam/assets/feathericons/edit.svg b/src/apps/qcam/assets/feathericons/edit.svg similarity index 100% rename from src/qcam/assets/feathericons/edit.svg rename to src/apps/qcam/assets/feathericons/edit.svg diff --git a/src/qcam/assets/feathericons/external-link.svg b/src/apps/qcam/assets/feathericons/external-link.svg similarity index 100% rename from src/qcam/assets/feathericons/external-link.svg rename to src/apps/qcam/assets/feathericons/external-link.svg diff --git a/src/qcam/assets/feathericons/eye-off.svg b/src/apps/qcam/assets/feathericons/eye-off.svg similarity index 100% rename from src/qcam/assets/feathericons/eye-off.svg rename to src/apps/qcam/assets/feathericons/eye-off.svg diff --git a/src/qcam/assets/feathericons/eye.svg b/src/apps/qcam/assets/feathericons/eye.svg similarity index 100% rename from src/qcam/assets/feathericons/eye.svg rename to src/apps/qcam/assets/feathericons/eye.svg diff --git a/src/qcam/assets/feathericons/facebook.svg b/src/apps/qcam/assets/feathericons/facebook.svg similarity index 100% rename from src/qcam/assets/feathericons/facebook.svg rename to src/apps/qcam/assets/feathericons/facebook.svg diff --git a/src/qcam/assets/feathericons/fast-forward.svg b/src/apps/qcam/assets/feathericons/fast-forward.svg similarity index 100% rename from src/qcam/assets/feathericons/fast-forward.svg rename to src/apps/qcam/assets/feathericons/fast-forward.svg diff --git a/src/qcam/assets/feathericons/feather.svg b/src/apps/qcam/assets/feathericons/feather.svg similarity index 100% rename from src/qcam/assets/feathericons/feather.svg rename to src/apps/qcam/assets/feathericons/feather.svg diff --git a/src/qcam/assets/feathericons/feathericons.qrc b/src/apps/qcam/assets/feathericons/feathericons.qrc similarity index 100% rename from src/qcam/assets/feathericons/feathericons.qrc rename to src/apps/qcam/assets/feathericons/feathericons.qrc diff --git a/src/qcam/assets/feathericons/figma.svg b/src/apps/qcam/assets/feathericons/figma.svg similarity index 100% rename from src/qcam/assets/feathericons/figma.svg rename to src/apps/qcam/assets/feathericons/figma.svg diff --git a/src/qcam/assets/feathericons/file-minus.svg b/src/apps/qcam/assets/feathericons/file-minus.svg similarity index 100% rename from src/qcam/assets/feathericons/file-minus.svg rename to src/apps/qcam/assets/feathericons/file-minus.svg diff --git a/src/qcam/assets/feathericons/file-plus.svg b/src/apps/qcam/assets/feathericons/file-plus.svg similarity index 100% rename from src/qcam/assets/feathericons/file-plus.svg rename to src/apps/qcam/assets/feathericons/file-plus.svg diff --git a/src/qcam/assets/feathericons/file-text.svg b/src/apps/qcam/assets/feathericons/file-text.svg similarity index 100% rename from src/qcam/assets/feathericons/file-text.svg rename to src/apps/qcam/assets/feathericons/file-text.svg diff --git a/src/qcam/assets/feathericons/file.svg b/src/apps/qcam/assets/feathericons/file.svg similarity index 100% rename from src/qcam/assets/feathericons/file.svg rename to src/apps/qcam/assets/feathericons/file.svg diff --git a/src/qcam/assets/feathericons/film.svg b/src/apps/qcam/assets/feathericons/film.svg similarity index 100% rename from src/qcam/assets/feathericons/film.svg rename to src/apps/qcam/assets/feathericons/film.svg diff --git a/src/qcam/assets/feathericons/filter.svg b/src/apps/qcam/assets/feathericons/filter.svg similarity index 100% rename from src/qcam/assets/feathericons/filter.svg rename to src/apps/qcam/assets/feathericons/filter.svg diff --git a/src/qcam/assets/feathericons/flag.svg b/src/apps/qcam/assets/feathericons/flag.svg similarity index 100% rename from src/qcam/assets/feathericons/flag.svg rename to src/apps/qcam/assets/feathericons/flag.svg diff --git a/src/qcam/assets/feathericons/folder-minus.svg b/src/apps/qcam/assets/feathericons/folder-minus.svg similarity index 100% rename from src/qcam/assets/feathericons/folder-minus.svg rename to src/apps/qcam/assets/feathericons/folder-minus.svg diff --git a/src/qcam/assets/feathericons/folder-plus.svg b/src/apps/qcam/assets/feathericons/folder-plus.svg similarity index 100% rename from src/qcam/assets/feathericons/folder-plus.svg rename to src/apps/qcam/assets/feathericons/folder-plus.svg diff --git a/src/qcam/assets/feathericons/folder.svg b/src/apps/qcam/assets/feathericons/folder.svg similarity index 100% rename from src/qcam/assets/feathericons/folder.svg rename to src/apps/qcam/assets/feathericons/folder.svg diff --git a/src/qcam/assets/feathericons/framer.svg b/src/apps/qcam/assets/feathericons/framer.svg similarity index 100% rename from src/qcam/assets/feathericons/framer.svg rename to src/apps/qcam/assets/feathericons/framer.svg diff --git a/src/qcam/assets/feathericons/frown.svg b/src/apps/qcam/assets/feathericons/frown.svg similarity index 100% rename from src/qcam/assets/feathericons/frown.svg rename to src/apps/qcam/assets/feathericons/frown.svg diff --git a/src/qcam/assets/feathericons/gift.svg b/src/apps/qcam/assets/feathericons/gift.svg similarity index 100% rename from src/qcam/assets/feathericons/gift.svg rename to src/apps/qcam/assets/feathericons/gift.svg diff --git a/src/qcam/assets/feathericons/git-branch.svg b/src/apps/qcam/assets/feathericons/git-branch.svg similarity index 100% rename from src/qcam/assets/feathericons/git-branch.svg rename to src/apps/qcam/assets/feathericons/git-branch.svg diff --git a/src/qcam/assets/feathericons/git-commit.svg b/src/apps/qcam/assets/feathericons/git-commit.svg similarity index 100% rename from src/qcam/assets/feathericons/git-commit.svg rename to src/apps/qcam/assets/feathericons/git-commit.svg diff --git a/src/qcam/assets/feathericons/git-merge.svg b/src/apps/qcam/assets/feathericons/git-merge.svg similarity index 100% rename from src/qcam/assets/feathericons/git-merge.svg rename to src/apps/qcam/assets/feathericons/git-merge.svg diff --git a/src/qcam/assets/feathericons/git-pull-request.svg b/src/apps/qcam/assets/feathericons/git-pull-request.svg similarity index 100% rename from src/qcam/assets/feathericons/git-pull-request.svg rename to src/apps/qcam/assets/feathericons/git-pull-request.svg diff --git a/src/qcam/assets/feathericons/github.svg b/src/apps/qcam/assets/feathericons/github.svg similarity index 100% rename from src/qcam/assets/feathericons/github.svg rename to src/apps/qcam/assets/feathericons/github.svg diff --git a/src/qcam/assets/feathericons/gitlab.svg b/src/apps/qcam/assets/feathericons/gitlab.svg similarity index 100% rename from src/qcam/assets/feathericons/gitlab.svg rename to src/apps/qcam/assets/feathericons/gitlab.svg diff --git a/src/qcam/assets/feathericons/globe.svg b/src/apps/qcam/assets/feathericons/globe.svg similarity index 100% rename from src/qcam/assets/feathericons/globe.svg rename to src/apps/qcam/assets/feathericons/globe.svg diff --git a/src/qcam/assets/feathericons/grid.svg b/src/apps/qcam/assets/feathericons/grid.svg similarity index 100% rename from src/qcam/assets/feathericons/grid.svg rename to src/apps/qcam/assets/feathericons/grid.svg diff --git a/src/qcam/assets/feathericons/hard-drive.svg b/src/apps/qcam/assets/feathericons/hard-drive.svg similarity index 100% rename from src/qcam/assets/feathericons/hard-drive.svg rename to src/apps/qcam/assets/feathericons/hard-drive.svg diff --git a/src/qcam/assets/feathericons/hash.svg b/src/apps/qcam/assets/feathericons/hash.svg similarity index 100% rename from src/qcam/assets/feathericons/hash.svg rename to src/apps/qcam/assets/feathericons/hash.svg diff --git a/src/qcam/assets/feathericons/headphones.svg b/src/apps/qcam/assets/feathericons/headphones.svg similarity index 100% rename from src/qcam/assets/feathericons/headphones.svg rename to src/apps/qcam/assets/feathericons/headphones.svg diff --git a/src/qcam/assets/feathericons/heart.svg b/src/apps/qcam/assets/feathericons/heart.svg similarity index 100% rename from src/qcam/assets/feathericons/heart.svg rename to src/apps/qcam/assets/feathericons/heart.svg diff --git a/src/qcam/assets/feathericons/help-circle.svg b/src/apps/qcam/assets/feathericons/help-circle.svg similarity index 100% rename from src/qcam/assets/feathericons/help-circle.svg rename to src/apps/qcam/assets/feathericons/help-circle.svg diff --git a/src/qcam/assets/feathericons/hexagon.svg b/src/apps/qcam/assets/feathericons/hexagon.svg similarity index 100% rename from src/qcam/assets/feathericons/hexagon.svg rename to src/apps/qcam/assets/feathericons/hexagon.svg diff --git a/src/qcam/assets/feathericons/home.svg b/src/apps/qcam/assets/feathericons/home.svg similarity index 100% rename from src/qcam/assets/feathericons/home.svg rename to src/apps/qcam/assets/feathericons/home.svg diff --git a/src/qcam/assets/feathericons/image.svg b/src/apps/qcam/assets/feathericons/image.svg similarity index 100% rename from src/qcam/assets/feathericons/image.svg rename to src/apps/qcam/assets/feathericons/image.svg diff --git a/src/qcam/assets/feathericons/inbox.svg b/src/apps/qcam/assets/feathericons/inbox.svg similarity index 100% rename from src/qcam/assets/feathericons/inbox.svg rename to src/apps/qcam/assets/feathericons/inbox.svg diff --git a/src/qcam/assets/feathericons/info.svg b/src/apps/qcam/assets/feathericons/info.svg similarity index 100% rename from src/qcam/assets/feathericons/info.svg rename to src/apps/qcam/assets/feathericons/info.svg diff --git a/src/qcam/assets/feathericons/instagram.svg b/src/apps/qcam/assets/feathericons/instagram.svg similarity index 100% rename from src/qcam/assets/feathericons/instagram.svg rename to src/apps/qcam/assets/feathericons/instagram.svg diff --git a/src/qcam/assets/feathericons/italic.svg b/src/apps/qcam/assets/feathericons/italic.svg similarity index 100% rename from src/qcam/assets/feathericons/italic.svg rename to src/apps/qcam/assets/feathericons/italic.svg diff --git a/src/qcam/assets/feathericons/key.svg b/src/apps/qcam/assets/feathericons/key.svg similarity index 100% rename from src/qcam/assets/feathericons/key.svg rename to src/apps/qcam/assets/feathericons/key.svg diff --git a/src/qcam/assets/feathericons/layers.svg b/src/apps/qcam/assets/feathericons/layers.svg similarity index 100% rename from src/qcam/assets/feathericons/layers.svg rename to src/apps/qcam/assets/feathericons/layers.svg diff --git a/src/qcam/assets/feathericons/layout.svg b/src/apps/qcam/assets/feathericons/layout.svg similarity index 100% rename from src/qcam/assets/feathericons/layout.svg rename to src/apps/qcam/assets/feathericons/layout.svg diff --git a/src/qcam/assets/feathericons/life-buoy.svg b/src/apps/qcam/assets/feathericons/life-buoy.svg similarity index 100% rename from src/qcam/assets/feathericons/life-buoy.svg rename to src/apps/qcam/assets/feathericons/life-buoy.svg diff --git a/src/qcam/assets/feathericons/link-2.svg b/src/apps/qcam/assets/feathericons/link-2.svg similarity index 100% rename from src/qcam/assets/feathericons/link-2.svg rename to src/apps/qcam/assets/feathericons/link-2.svg diff --git a/src/qcam/assets/feathericons/link.svg b/src/apps/qcam/assets/feathericons/link.svg similarity index 100% rename from src/qcam/assets/feathericons/link.svg rename to src/apps/qcam/assets/feathericons/link.svg diff --git a/src/qcam/assets/feathericons/linkedin.svg b/src/apps/qcam/assets/feathericons/linkedin.svg similarity index 100% rename from src/qcam/assets/feathericons/linkedin.svg rename to src/apps/qcam/assets/feathericons/linkedin.svg diff --git a/src/qcam/assets/feathericons/list.svg b/src/apps/qcam/assets/feathericons/list.svg similarity index 100% rename from src/qcam/assets/feathericons/list.svg rename to src/apps/qcam/assets/feathericons/list.svg diff --git a/src/qcam/assets/feathericons/loader.svg b/src/apps/qcam/assets/feathericons/loader.svg similarity index 100% rename from src/qcam/assets/feathericons/loader.svg rename to src/apps/qcam/assets/feathericons/loader.svg diff --git a/src/qcam/assets/feathericons/lock.svg b/src/apps/qcam/assets/feathericons/lock.svg similarity index 100% rename from src/qcam/assets/feathericons/lock.svg rename to src/apps/qcam/assets/feathericons/lock.svg diff --git a/src/qcam/assets/feathericons/log-in.svg b/src/apps/qcam/assets/feathericons/log-in.svg similarity index 100% rename from src/qcam/assets/feathericons/log-in.svg rename to src/apps/qcam/assets/feathericons/log-in.svg diff --git a/src/qcam/assets/feathericons/log-out.svg b/src/apps/qcam/assets/feathericons/log-out.svg similarity index 100% rename from src/qcam/assets/feathericons/log-out.svg rename to src/apps/qcam/assets/feathericons/log-out.svg diff --git a/src/qcam/assets/feathericons/mail.svg b/src/apps/qcam/assets/feathericons/mail.svg similarity index 100% rename from src/qcam/assets/feathericons/mail.svg rename to src/apps/qcam/assets/feathericons/mail.svg diff --git a/src/qcam/assets/feathericons/map-pin.svg b/src/apps/qcam/assets/feathericons/map-pin.svg similarity index 100% rename from src/qcam/assets/feathericons/map-pin.svg rename to src/apps/qcam/assets/feathericons/map-pin.svg diff --git a/src/qcam/assets/feathericons/map.svg b/src/apps/qcam/assets/feathericons/map.svg similarity index 100% rename from src/qcam/assets/feathericons/map.svg rename to src/apps/qcam/assets/feathericons/map.svg diff --git a/src/qcam/assets/feathericons/maximize-2.svg b/src/apps/qcam/assets/feathericons/maximize-2.svg similarity index 100% rename from src/qcam/assets/feathericons/maximize-2.svg rename to src/apps/qcam/assets/feathericons/maximize-2.svg diff --git a/src/qcam/assets/feathericons/maximize.svg b/src/apps/qcam/assets/feathericons/maximize.svg similarity index 100% rename from src/qcam/assets/feathericons/maximize.svg rename to src/apps/qcam/assets/feathericons/maximize.svg diff --git a/src/qcam/assets/feathericons/meh.svg b/src/apps/qcam/assets/feathericons/meh.svg similarity index 100% rename from src/qcam/assets/feathericons/meh.svg rename to src/apps/qcam/assets/feathericons/meh.svg diff --git a/src/qcam/assets/feathericons/menu.svg b/src/apps/qcam/assets/feathericons/menu.svg similarity index 100% rename from src/qcam/assets/feathericons/menu.svg rename to src/apps/qcam/assets/feathericons/menu.svg diff --git a/src/qcam/assets/feathericons/message-circle.svg b/src/apps/qcam/assets/feathericons/message-circle.svg similarity index 100% rename from src/qcam/assets/feathericons/message-circle.svg rename to src/apps/qcam/assets/feathericons/message-circle.svg diff --git a/src/qcam/assets/feathericons/message-square.svg b/src/apps/qcam/assets/feathericons/message-square.svg similarity index 100% rename from src/qcam/assets/feathericons/message-square.svg rename to src/apps/qcam/assets/feathericons/message-square.svg diff --git a/src/qcam/assets/feathericons/mic-off.svg b/src/apps/qcam/assets/feathericons/mic-off.svg similarity index 100% rename from src/qcam/assets/feathericons/mic-off.svg rename to src/apps/qcam/assets/feathericons/mic-off.svg diff --git a/src/qcam/assets/feathericons/mic.svg b/src/apps/qcam/assets/feathericons/mic.svg similarity index 100% rename from src/qcam/assets/feathericons/mic.svg rename to src/apps/qcam/assets/feathericons/mic.svg diff --git a/src/qcam/assets/feathericons/minimize-2.svg b/src/apps/qcam/assets/feathericons/minimize-2.svg similarity index 100% rename from src/qcam/assets/feathericons/minimize-2.svg rename to src/apps/qcam/assets/feathericons/minimize-2.svg diff --git a/src/qcam/assets/feathericons/minimize.svg b/src/apps/qcam/assets/feathericons/minimize.svg similarity index 100% rename from src/qcam/assets/feathericons/minimize.svg rename to src/apps/qcam/assets/feathericons/minimize.svg diff --git a/src/qcam/assets/feathericons/minus-circle.svg b/src/apps/qcam/assets/feathericons/minus-circle.svg similarity index 100% rename from src/qcam/assets/feathericons/minus-circle.svg rename to src/apps/qcam/assets/feathericons/minus-circle.svg diff --git a/src/qcam/assets/feathericons/minus-square.svg b/src/apps/qcam/assets/feathericons/minus-square.svg similarity index 100% rename from src/qcam/assets/feathericons/minus-square.svg rename to src/apps/qcam/assets/feathericons/minus-square.svg diff --git a/src/qcam/assets/feathericons/minus.svg b/src/apps/qcam/assets/feathericons/minus.svg similarity index 100% rename from src/qcam/assets/feathericons/minus.svg rename to src/apps/qcam/assets/feathericons/minus.svg diff --git a/src/qcam/assets/feathericons/monitor.svg b/src/apps/qcam/assets/feathericons/monitor.svg similarity index 100% rename from src/qcam/assets/feathericons/monitor.svg rename to src/apps/qcam/assets/feathericons/monitor.svg diff --git a/src/qcam/assets/feathericons/moon.svg b/src/apps/qcam/assets/feathericons/moon.svg similarity index 100% rename from src/qcam/assets/feathericons/moon.svg rename to src/apps/qcam/assets/feathericons/moon.svg diff --git a/src/qcam/assets/feathericons/more-horizontal.svg b/src/apps/qcam/assets/feathericons/more-horizontal.svg similarity index 100% rename from src/qcam/assets/feathericons/more-horizontal.svg rename to src/apps/qcam/assets/feathericons/more-horizontal.svg diff --git a/src/qcam/assets/feathericons/more-vertical.svg b/src/apps/qcam/assets/feathericons/more-vertical.svg similarity index 100% rename from src/qcam/assets/feathericons/more-vertical.svg rename to src/apps/qcam/assets/feathericons/more-vertical.svg diff --git a/src/qcam/assets/feathericons/mouse-pointer.svg b/src/apps/qcam/assets/feathericons/mouse-pointer.svg similarity index 100% rename from src/qcam/assets/feathericons/mouse-pointer.svg rename to src/apps/qcam/assets/feathericons/mouse-pointer.svg diff --git a/src/qcam/assets/feathericons/move.svg b/src/apps/qcam/assets/feathericons/move.svg similarity index 100% rename from src/qcam/assets/feathericons/move.svg rename to src/apps/qcam/assets/feathericons/move.svg diff --git a/src/qcam/assets/feathericons/music.svg b/src/apps/qcam/assets/feathericons/music.svg similarity index 100% rename from src/qcam/assets/feathericons/music.svg rename to src/apps/qcam/assets/feathericons/music.svg diff --git a/src/qcam/assets/feathericons/navigation-2.svg b/src/apps/qcam/assets/feathericons/navigation-2.svg similarity index 100% rename from src/qcam/assets/feathericons/navigation-2.svg rename to src/apps/qcam/assets/feathericons/navigation-2.svg diff --git a/src/qcam/assets/feathericons/navigation.svg b/src/apps/qcam/assets/feathericons/navigation.svg similarity index 100% rename from src/qcam/assets/feathericons/navigation.svg rename to src/apps/qcam/assets/feathericons/navigation.svg diff --git a/src/qcam/assets/feathericons/octagon.svg b/src/apps/qcam/assets/feathericons/octagon.svg similarity index 100% rename from src/qcam/assets/feathericons/octagon.svg rename to src/apps/qcam/assets/feathericons/octagon.svg diff --git a/src/qcam/assets/feathericons/package.svg b/src/apps/qcam/assets/feathericons/package.svg similarity index 100% rename from src/qcam/assets/feathericons/package.svg rename to src/apps/qcam/assets/feathericons/package.svg diff --git a/src/qcam/assets/feathericons/paperclip.svg b/src/apps/qcam/assets/feathericons/paperclip.svg similarity index 100% rename from src/qcam/assets/feathericons/paperclip.svg rename to src/apps/qcam/assets/feathericons/paperclip.svg diff --git a/src/qcam/assets/feathericons/pause-circle.svg b/src/apps/qcam/assets/feathericons/pause-circle.svg similarity index 100% rename from src/qcam/assets/feathericons/pause-circle.svg rename to src/apps/qcam/assets/feathericons/pause-circle.svg diff --git a/src/qcam/assets/feathericons/pause.svg b/src/apps/qcam/assets/feathericons/pause.svg similarity index 100% rename from src/qcam/assets/feathericons/pause.svg rename to src/apps/qcam/assets/feathericons/pause.svg diff --git a/src/qcam/assets/feathericons/pen-tool.svg b/src/apps/qcam/assets/feathericons/pen-tool.svg similarity index 100% rename from src/qcam/assets/feathericons/pen-tool.svg rename to src/apps/qcam/assets/feathericons/pen-tool.svg diff --git a/src/qcam/assets/feathericons/percent.svg b/src/apps/qcam/assets/feathericons/percent.svg similarity index 100% rename from src/qcam/assets/feathericons/percent.svg rename to src/apps/qcam/assets/feathericons/percent.svg diff --git a/src/qcam/assets/feathericons/phone-call.svg b/src/apps/qcam/assets/feathericons/phone-call.svg similarity index 100% rename from src/qcam/assets/feathericons/phone-call.svg rename to src/apps/qcam/assets/feathericons/phone-call.svg diff --git a/src/qcam/assets/feathericons/phone-forwarded.svg b/src/apps/qcam/assets/feathericons/phone-forwarded.svg similarity index 100% rename from src/qcam/assets/feathericons/phone-forwarded.svg rename to src/apps/qcam/assets/feathericons/phone-forwarded.svg diff --git a/src/qcam/assets/feathericons/phone-incoming.svg b/src/apps/qcam/assets/feathericons/phone-incoming.svg similarity index 100% rename from src/qcam/assets/feathericons/phone-incoming.svg rename to src/apps/qcam/assets/feathericons/phone-incoming.svg diff --git a/src/qcam/assets/feathericons/phone-missed.svg b/src/apps/qcam/assets/feathericons/phone-missed.svg similarity index 100% rename from src/qcam/assets/feathericons/phone-missed.svg rename to src/apps/qcam/assets/feathericons/phone-missed.svg diff --git a/src/qcam/assets/feathericons/phone-off.svg b/src/apps/qcam/assets/feathericons/phone-off.svg similarity index 100% rename from src/qcam/assets/feathericons/phone-off.svg rename to src/apps/qcam/assets/feathericons/phone-off.svg diff --git a/src/qcam/assets/feathericons/phone-outgoing.svg b/src/apps/qcam/assets/feathericons/phone-outgoing.svg similarity index 100% rename from src/qcam/assets/feathericons/phone-outgoing.svg rename to src/apps/qcam/assets/feathericons/phone-outgoing.svg diff --git a/src/qcam/assets/feathericons/phone.svg b/src/apps/qcam/assets/feathericons/phone.svg similarity index 100% rename from src/qcam/assets/feathericons/phone.svg rename to src/apps/qcam/assets/feathericons/phone.svg diff --git a/src/qcam/assets/feathericons/pie-chart.svg b/src/apps/qcam/assets/feathericons/pie-chart.svg similarity index 100% rename from src/qcam/assets/feathericons/pie-chart.svg rename to src/apps/qcam/assets/feathericons/pie-chart.svg diff --git a/src/qcam/assets/feathericons/play-circle.svg b/src/apps/qcam/assets/feathericons/play-circle.svg similarity index 100% rename from src/qcam/assets/feathericons/play-circle.svg rename to src/apps/qcam/assets/feathericons/play-circle.svg diff --git a/src/qcam/assets/feathericons/play.svg b/src/apps/qcam/assets/feathericons/play.svg similarity index 100% rename from src/qcam/assets/feathericons/play.svg rename to src/apps/qcam/assets/feathericons/play.svg diff --git a/src/qcam/assets/feathericons/plus-circle.svg b/src/apps/qcam/assets/feathericons/plus-circle.svg similarity index 100% rename from src/qcam/assets/feathericons/plus-circle.svg rename to src/apps/qcam/assets/feathericons/plus-circle.svg diff --git a/src/qcam/assets/feathericons/plus-square.svg b/src/apps/qcam/assets/feathericons/plus-square.svg similarity index 100% rename from src/qcam/assets/feathericons/plus-square.svg rename to src/apps/qcam/assets/feathericons/plus-square.svg diff --git a/src/qcam/assets/feathericons/plus.svg b/src/apps/qcam/assets/feathericons/plus.svg similarity index 100% rename from src/qcam/assets/feathericons/plus.svg rename to src/apps/qcam/assets/feathericons/plus.svg diff --git a/src/qcam/assets/feathericons/pocket.svg b/src/apps/qcam/assets/feathericons/pocket.svg similarity index 100% rename from src/qcam/assets/feathericons/pocket.svg rename to src/apps/qcam/assets/feathericons/pocket.svg diff --git a/src/qcam/assets/feathericons/power.svg b/src/apps/qcam/assets/feathericons/power.svg similarity index 100% rename from src/qcam/assets/feathericons/power.svg rename to src/apps/qcam/assets/feathericons/power.svg diff --git a/src/qcam/assets/feathericons/printer.svg b/src/apps/qcam/assets/feathericons/printer.svg similarity index 100% rename from src/qcam/assets/feathericons/printer.svg rename to src/apps/qcam/assets/feathericons/printer.svg diff --git a/src/qcam/assets/feathericons/radio.svg b/src/apps/qcam/assets/feathericons/radio.svg similarity index 100% rename from src/qcam/assets/feathericons/radio.svg rename to src/apps/qcam/assets/feathericons/radio.svg diff --git a/src/qcam/assets/feathericons/refresh-ccw.svg b/src/apps/qcam/assets/feathericons/refresh-ccw.svg similarity index 100% rename from src/qcam/assets/feathericons/refresh-ccw.svg rename to src/apps/qcam/assets/feathericons/refresh-ccw.svg diff --git a/src/qcam/assets/feathericons/refresh-cw.svg b/src/apps/qcam/assets/feathericons/refresh-cw.svg similarity index 100% rename from src/qcam/assets/feathericons/refresh-cw.svg rename to src/apps/qcam/assets/feathericons/refresh-cw.svg diff --git a/src/qcam/assets/feathericons/repeat.svg b/src/apps/qcam/assets/feathericons/repeat.svg similarity index 100% rename from src/qcam/assets/feathericons/repeat.svg rename to src/apps/qcam/assets/feathericons/repeat.svg diff --git a/src/qcam/assets/feathericons/rewind.svg b/src/apps/qcam/assets/feathericons/rewind.svg similarity index 100% rename from src/qcam/assets/feathericons/rewind.svg rename to src/apps/qcam/assets/feathericons/rewind.svg diff --git a/src/qcam/assets/feathericons/rotate-ccw.svg b/src/apps/qcam/assets/feathericons/rotate-ccw.svg similarity index 100% rename from src/qcam/assets/feathericons/rotate-ccw.svg rename to src/apps/qcam/assets/feathericons/rotate-ccw.svg diff --git a/src/qcam/assets/feathericons/rotate-cw.svg b/src/apps/qcam/assets/feathericons/rotate-cw.svg similarity index 100% rename from src/qcam/assets/feathericons/rotate-cw.svg rename to src/apps/qcam/assets/feathericons/rotate-cw.svg diff --git a/src/qcam/assets/feathericons/rss.svg b/src/apps/qcam/assets/feathericons/rss.svg similarity index 100% rename from src/qcam/assets/feathericons/rss.svg rename to src/apps/qcam/assets/feathericons/rss.svg diff --git a/src/qcam/assets/feathericons/save.svg b/src/apps/qcam/assets/feathericons/save.svg similarity index 100% rename from src/qcam/assets/feathericons/save.svg rename to src/apps/qcam/assets/feathericons/save.svg diff --git a/src/qcam/assets/feathericons/scissors.svg b/src/apps/qcam/assets/feathericons/scissors.svg similarity index 100% rename from src/qcam/assets/feathericons/scissors.svg rename to src/apps/qcam/assets/feathericons/scissors.svg diff --git a/src/qcam/assets/feathericons/search.svg b/src/apps/qcam/assets/feathericons/search.svg similarity index 100% rename from src/qcam/assets/feathericons/search.svg rename to src/apps/qcam/assets/feathericons/search.svg diff --git a/src/qcam/assets/feathericons/send.svg b/src/apps/qcam/assets/feathericons/send.svg similarity index 100% rename from src/qcam/assets/feathericons/send.svg rename to src/apps/qcam/assets/feathericons/send.svg diff --git a/src/qcam/assets/feathericons/server.svg b/src/apps/qcam/assets/feathericons/server.svg similarity index 100% rename from src/qcam/assets/feathericons/server.svg rename to src/apps/qcam/assets/feathericons/server.svg diff --git a/src/qcam/assets/feathericons/settings.svg b/src/apps/qcam/assets/feathericons/settings.svg similarity index 100% rename from src/qcam/assets/feathericons/settings.svg rename to src/apps/qcam/assets/feathericons/settings.svg diff --git a/src/qcam/assets/feathericons/share-2.svg b/src/apps/qcam/assets/feathericons/share-2.svg similarity index 100% rename from src/qcam/assets/feathericons/share-2.svg rename to src/apps/qcam/assets/feathericons/share-2.svg diff --git a/src/qcam/assets/feathericons/share.svg b/src/apps/qcam/assets/feathericons/share.svg similarity index 100% rename from src/qcam/assets/feathericons/share.svg rename to src/apps/qcam/assets/feathericons/share.svg diff --git a/src/qcam/assets/feathericons/shield-off.svg b/src/apps/qcam/assets/feathericons/shield-off.svg similarity index 100% rename from src/qcam/assets/feathericons/shield-off.svg rename to src/apps/qcam/assets/feathericons/shield-off.svg diff --git a/src/qcam/assets/feathericons/shield.svg b/src/apps/qcam/assets/feathericons/shield.svg similarity index 100% rename from src/qcam/assets/feathericons/shield.svg rename to src/apps/qcam/assets/feathericons/shield.svg diff --git a/src/qcam/assets/feathericons/shopping-bag.svg b/src/apps/qcam/assets/feathericons/shopping-bag.svg similarity index 100% rename from src/qcam/assets/feathericons/shopping-bag.svg rename to src/apps/qcam/assets/feathericons/shopping-bag.svg diff --git a/src/qcam/assets/feathericons/shopping-cart.svg b/src/apps/qcam/assets/feathericons/shopping-cart.svg similarity index 100% rename from src/qcam/assets/feathericons/shopping-cart.svg rename to src/apps/qcam/assets/feathericons/shopping-cart.svg diff --git a/src/qcam/assets/feathericons/shuffle.svg b/src/apps/qcam/assets/feathericons/shuffle.svg similarity index 100% rename from src/qcam/assets/feathericons/shuffle.svg rename to src/apps/qcam/assets/feathericons/shuffle.svg diff --git a/src/qcam/assets/feathericons/sidebar.svg b/src/apps/qcam/assets/feathericons/sidebar.svg similarity index 100% rename from src/qcam/assets/feathericons/sidebar.svg rename to src/apps/qcam/assets/feathericons/sidebar.svg diff --git a/src/qcam/assets/feathericons/skip-back.svg b/src/apps/qcam/assets/feathericons/skip-back.svg similarity index 100% rename from src/qcam/assets/feathericons/skip-back.svg rename to src/apps/qcam/assets/feathericons/skip-back.svg diff --git a/src/qcam/assets/feathericons/skip-forward.svg b/src/apps/qcam/assets/feathericons/skip-forward.svg similarity index 100% rename from src/qcam/assets/feathericons/skip-forward.svg rename to src/apps/qcam/assets/feathericons/skip-forward.svg diff --git a/src/qcam/assets/feathericons/slack.svg b/src/apps/qcam/assets/feathericons/slack.svg similarity index 100% rename from src/qcam/assets/feathericons/slack.svg rename to src/apps/qcam/assets/feathericons/slack.svg diff --git a/src/qcam/assets/feathericons/slash.svg b/src/apps/qcam/assets/feathericons/slash.svg similarity index 100% rename from src/qcam/assets/feathericons/slash.svg rename to src/apps/qcam/assets/feathericons/slash.svg diff --git a/src/qcam/assets/feathericons/sliders.svg b/src/apps/qcam/assets/feathericons/sliders.svg similarity index 100% rename from src/qcam/assets/feathericons/sliders.svg rename to src/apps/qcam/assets/feathericons/sliders.svg diff --git a/src/qcam/assets/feathericons/smartphone.svg b/src/apps/qcam/assets/feathericons/smartphone.svg similarity index 100% rename from src/qcam/assets/feathericons/smartphone.svg rename to src/apps/qcam/assets/feathericons/smartphone.svg diff --git a/src/qcam/assets/feathericons/smile.svg b/src/apps/qcam/assets/feathericons/smile.svg similarity index 100% rename from src/qcam/assets/feathericons/smile.svg rename to src/apps/qcam/assets/feathericons/smile.svg diff --git a/src/qcam/assets/feathericons/speaker.svg b/src/apps/qcam/assets/feathericons/speaker.svg similarity index 100% rename from src/qcam/assets/feathericons/speaker.svg rename to src/apps/qcam/assets/feathericons/speaker.svg diff --git a/src/qcam/assets/feathericons/square.svg b/src/apps/qcam/assets/feathericons/square.svg similarity index 100% rename from src/qcam/assets/feathericons/square.svg rename to src/apps/qcam/assets/feathericons/square.svg diff --git a/src/qcam/assets/feathericons/star.svg b/src/apps/qcam/assets/feathericons/star.svg similarity index 100% rename from src/qcam/assets/feathericons/star.svg rename to src/apps/qcam/assets/feathericons/star.svg diff --git a/src/qcam/assets/feathericons/stop-circle.svg b/src/apps/qcam/assets/feathericons/stop-circle.svg similarity index 100% rename from src/qcam/assets/feathericons/stop-circle.svg rename to src/apps/qcam/assets/feathericons/stop-circle.svg diff --git a/src/qcam/assets/feathericons/sun.svg b/src/apps/qcam/assets/feathericons/sun.svg similarity index 100% rename from src/qcam/assets/feathericons/sun.svg rename to src/apps/qcam/assets/feathericons/sun.svg diff --git a/src/qcam/assets/feathericons/sunrise.svg b/src/apps/qcam/assets/feathericons/sunrise.svg similarity index 100% rename from src/qcam/assets/feathericons/sunrise.svg rename to src/apps/qcam/assets/feathericons/sunrise.svg diff --git a/src/qcam/assets/feathericons/sunset.svg b/src/apps/qcam/assets/feathericons/sunset.svg similarity index 100% rename from src/qcam/assets/feathericons/sunset.svg rename to src/apps/qcam/assets/feathericons/sunset.svg diff --git a/src/qcam/assets/feathericons/tablet.svg b/src/apps/qcam/assets/feathericons/tablet.svg similarity index 100% rename from src/qcam/assets/feathericons/tablet.svg rename to src/apps/qcam/assets/feathericons/tablet.svg diff --git a/src/qcam/assets/feathericons/tag.svg b/src/apps/qcam/assets/feathericons/tag.svg similarity index 100% rename from src/qcam/assets/feathericons/tag.svg rename to src/apps/qcam/assets/feathericons/tag.svg diff --git a/src/qcam/assets/feathericons/target.svg b/src/apps/qcam/assets/feathericons/target.svg similarity index 100% rename from src/qcam/assets/feathericons/target.svg rename to src/apps/qcam/assets/feathericons/target.svg diff --git a/src/qcam/assets/feathericons/terminal.svg b/src/apps/qcam/assets/feathericons/terminal.svg similarity index 100% rename from src/qcam/assets/feathericons/terminal.svg rename to src/apps/qcam/assets/feathericons/terminal.svg diff --git a/src/qcam/assets/feathericons/thermometer.svg b/src/apps/qcam/assets/feathericons/thermometer.svg similarity index 100% rename from src/qcam/assets/feathericons/thermometer.svg rename to src/apps/qcam/assets/feathericons/thermometer.svg diff --git a/src/qcam/assets/feathericons/thumbs-down.svg b/src/apps/qcam/assets/feathericons/thumbs-down.svg similarity index 100% rename from src/qcam/assets/feathericons/thumbs-down.svg rename to src/apps/qcam/assets/feathericons/thumbs-down.svg diff --git a/src/qcam/assets/feathericons/thumbs-up.svg b/src/apps/qcam/assets/feathericons/thumbs-up.svg similarity index 100% rename from src/qcam/assets/feathericons/thumbs-up.svg rename to src/apps/qcam/assets/feathericons/thumbs-up.svg diff --git a/src/qcam/assets/feathericons/toggle-left.svg b/src/apps/qcam/assets/feathericons/toggle-left.svg similarity index 100% rename from src/qcam/assets/feathericons/toggle-left.svg rename to src/apps/qcam/assets/feathericons/toggle-left.svg diff --git a/src/qcam/assets/feathericons/toggle-right.svg b/src/apps/qcam/assets/feathericons/toggle-right.svg similarity index 100% rename from src/qcam/assets/feathericons/toggle-right.svg rename to src/apps/qcam/assets/feathericons/toggle-right.svg diff --git a/src/qcam/assets/feathericons/tool.svg b/src/apps/qcam/assets/feathericons/tool.svg similarity index 100% rename from src/qcam/assets/feathericons/tool.svg rename to src/apps/qcam/assets/feathericons/tool.svg diff --git a/src/qcam/assets/feathericons/trash-2.svg b/src/apps/qcam/assets/feathericons/trash-2.svg similarity index 100% rename from src/qcam/assets/feathericons/trash-2.svg rename to src/apps/qcam/assets/feathericons/trash-2.svg diff --git a/src/qcam/assets/feathericons/trash.svg b/src/apps/qcam/assets/feathericons/trash.svg similarity index 100% rename from src/qcam/assets/feathericons/trash.svg rename to src/apps/qcam/assets/feathericons/trash.svg diff --git a/src/qcam/assets/feathericons/trello.svg b/src/apps/qcam/assets/feathericons/trello.svg similarity index 100% rename from src/qcam/assets/feathericons/trello.svg rename to src/apps/qcam/assets/feathericons/trello.svg diff --git a/src/qcam/assets/feathericons/trending-down.svg b/src/apps/qcam/assets/feathericons/trending-down.svg similarity index 100% rename from src/qcam/assets/feathericons/trending-down.svg rename to src/apps/qcam/assets/feathericons/trending-down.svg diff --git a/src/qcam/assets/feathericons/trending-up.svg b/src/apps/qcam/assets/feathericons/trending-up.svg similarity index 100% rename from src/qcam/assets/feathericons/trending-up.svg rename to src/apps/qcam/assets/feathericons/trending-up.svg diff --git a/src/qcam/assets/feathericons/triangle.svg b/src/apps/qcam/assets/feathericons/triangle.svg similarity index 100% rename from src/qcam/assets/feathericons/triangle.svg rename to src/apps/qcam/assets/feathericons/triangle.svg diff --git a/src/qcam/assets/feathericons/truck.svg b/src/apps/qcam/assets/feathericons/truck.svg similarity index 100% rename from src/qcam/assets/feathericons/truck.svg rename to src/apps/qcam/assets/feathericons/truck.svg diff --git a/src/qcam/assets/feathericons/tv.svg b/src/apps/qcam/assets/feathericons/tv.svg similarity index 100% rename from src/qcam/assets/feathericons/tv.svg rename to src/apps/qcam/assets/feathericons/tv.svg diff --git a/src/qcam/assets/feathericons/twitch.svg b/src/apps/qcam/assets/feathericons/twitch.svg similarity index 100% rename from src/qcam/assets/feathericons/twitch.svg rename to src/apps/qcam/assets/feathericons/twitch.svg diff --git a/src/qcam/assets/feathericons/twitter.svg b/src/apps/qcam/assets/feathericons/twitter.svg similarity index 100% rename from src/qcam/assets/feathericons/twitter.svg rename to src/apps/qcam/assets/feathericons/twitter.svg diff --git a/src/qcam/assets/feathericons/type.svg b/src/apps/qcam/assets/feathericons/type.svg similarity index 100% rename from src/qcam/assets/feathericons/type.svg rename to src/apps/qcam/assets/feathericons/type.svg diff --git a/src/qcam/assets/feathericons/umbrella.svg b/src/apps/qcam/assets/feathericons/umbrella.svg similarity index 100% rename from src/qcam/assets/feathericons/umbrella.svg rename to src/apps/qcam/assets/feathericons/umbrella.svg diff --git a/src/qcam/assets/feathericons/underline.svg b/src/apps/qcam/assets/feathericons/underline.svg similarity index 100% rename from src/qcam/assets/feathericons/underline.svg rename to src/apps/qcam/assets/feathericons/underline.svg diff --git a/src/qcam/assets/feathericons/unlock.svg b/src/apps/qcam/assets/feathericons/unlock.svg similarity index 100% rename from src/qcam/assets/feathericons/unlock.svg rename to src/apps/qcam/assets/feathericons/unlock.svg diff --git a/src/qcam/assets/feathericons/upload-cloud.svg b/src/apps/qcam/assets/feathericons/upload-cloud.svg similarity index 100% rename from src/qcam/assets/feathericons/upload-cloud.svg rename to src/apps/qcam/assets/feathericons/upload-cloud.svg diff --git a/src/qcam/assets/feathericons/upload.svg b/src/apps/qcam/assets/feathericons/upload.svg similarity index 100% rename from src/qcam/assets/feathericons/upload.svg rename to src/apps/qcam/assets/feathericons/upload.svg diff --git a/src/qcam/assets/feathericons/user-check.svg b/src/apps/qcam/assets/feathericons/user-check.svg similarity index 100% rename from src/qcam/assets/feathericons/user-check.svg rename to src/apps/qcam/assets/feathericons/user-check.svg diff --git a/src/qcam/assets/feathericons/user-minus.svg b/src/apps/qcam/assets/feathericons/user-minus.svg similarity index 100% rename from src/qcam/assets/feathericons/user-minus.svg rename to src/apps/qcam/assets/feathericons/user-minus.svg diff --git a/src/qcam/assets/feathericons/user-plus.svg b/src/apps/qcam/assets/feathericons/user-plus.svg similarity index 100% rename from src/qcam/assets/feathericons/user-plus.svg rename to src/apps/qcam/assets/feathericons/user-plus.svg diff --git a/src/qcam/assets/feathericons/user-x.svg b/src/apps/qcam/assets/feathericons/user-x.svg similarity index 100% rename from src/qcam/assets/feathericons/user-x.svg rename to src/apps/qcam/assets/feathericons/user-x.svg diff --git a/src/qcam/assets/feathericons/user.svg b/src/apps/qcam/assets/feathericons/user.svg similarity index 100% rename from src/qcam/assets/feathericons/user.svg rename to src/apps/qcam/assets/feathericons/user.svg diff --git a/src/qcam/assets/feathericons/users.svg b/src/apps/qcam/assets/feathericons/users.svg similarity index 100% rename from src/qcam/assets/feathericons/users.svg rename to src/apps/qcam/assets/feathericons/users.svg diff --git a/src/qcam/assets/feathericons/video-off.svg b/src/apps/qcam/assets/feathericons/video-off.svg similarity index 100% rename from src/qcam/assets/feathericons/video-off.svg rename to src/apps/qcam/assets/feathericons/video-off.svg diff --git a/src/qcam/assets/feathericons/video.svg b/src/apps/qcam/assets/feathericons/video.svg similarity index 100% rename from src/qcam/assets/feathericons/video.svg rename to src/apps/qcam/assets/feathericons/video.svg diff --git a/src/qcam/assets/feathericons/voicemail.svg b/src/apps/qcam/assets/feathericons/voicemail.svg similarity index 100% rename from src/qcam/assets/feathericons/voicemail.svg rename to src/apps/qcam/assets/feathericons/voicemail.svg diff --git a/src/qcam/assets/feathericons/volume-1.svg b/src/apps/qcam/assets/feathericons/volume-1.svg similarity index 100% rename from src/qcam/assets/feathericons/volume-1.svg rename to src/apps/qcam/assets/feathericons/volume-1.svg diff --git a/src/qcam/assets/feathericons/volume-2.svg b/src/apps/qcam/assets/feathericons/volume-2.svg similarity index 100% rename from src/qcam/assets/feathericons/volume-2.svg rename to src/apps/qcam/assets/feathericons/volume-2.svg diff --git a/src/qcam/assets/feathericons/volume-x.svg b/src/apps/qcam/assets/feathericons/volume-x.svg similarity index 100% rename from src/qcam/assets/feathericons/volume-x.svg rename to src/apps/qcam/assets/feathericons/volume-x.svg diff --git a/src/qcam/assets/feathericons/volume.svg b/src/apps/qcam/assets/feathericons/volume.svg similarity index 100% rename from src/qcam/assets/feathericons/volume.svg rename to src/apps/qcam/assets/feathericons/volume.svg diff --git a/src/qcam/assets/feathericons/watch.svg b/src/apps/qcam/assets/feathericons/watch.svg similarity index 100% rename from src/qcam/assets/feathericons/watch.svg rename to src/apps/qcam/assets/feathericons/watch.svg diff --git a/src/qcam/assets/feathericons/wifi-off.svg b/src/apps/qcam/assets/feathericons/wifi-off.svg similarity index 100% rename from src/qcam/assets/feathericons/wifi-off.svg rename to src/apps/qcam/assets/feathericons/wifi-off.svg diff --git a/src/qcam/assets/feathericons/wifi.svg b/src/apps/qcam/assets/feathericons/wifi.svg similarity index 100% rename from src/qcam/assets/feathericons/wifi.svg rename to src/apps/qcam/assets/feathericons/wifi.svg diff --git a/src/qcam/assets/feathericons/wind.svg b/src/apps/qcam/assets/feathericons/wind.svg similarity index 100% rename from src/qcam/assets/feathericons/wind.svg rename to src/apps/qcam/assets/feathericons/wind.svg diff --git a/src/qcam/assets/feathericons/x-circle.svg b/src/apps/qcam/assets/feathericons/x-circle.svg similarity index 100% rename from src/qcam/assets/feathericons/x-circle.svg rename to src/apps/qcam/assets/feathericons/x-circle.svg diff --git a/src/qcam/assets/feathericons/x-octagon.svg b/src/apps/qcam/assets/feathericons/x-octagon.svg similarity index 100% rename from src/qcam/assets/feathericons/x-octagon.svg rename to src/apps/qcam/assets/feathericons/x-octagon.svg diff --git a/src/qcam/assets/feathericons/x-square.svg b/src/apps/qcam/assets/feathericons/x-square.svg similarity index 100% rename from src/qcam/assets/feathericons/x-square.svg rename to src/apps/qcam/assets/feathericons/x-square.svg diff --git a/src/qcam/assets/feathericons/x.svg b/src/apps/qcam/assets/feathericons/x.svg similarity index 100% rename from src/qcam/assets/feathericons/x.svg rename to src/apps/qcam/assets/feathericons/x.svg diff --git a/src/qcam/assets/feathericons/youtube.svg b/src/apps/qcam/assets/feathericons/youtube.svg similarity index 100% rename from src/qcam/assets/feathericons/youtube.svg rename to src/apps/qcam/assets/feathericons/youtube.svg diff --git a/src/qcam/assets/feathericons/zap-off.svg b/src/apps/qcam/assets/feathericons/zap-off.svg similarity index 100% rename from src/qcam/assets/feathericons/zap-off.svg rename to src/apps/qcam/assets/feathericons/zap-off.svg diff --git a/src/qcam/assets/feathericons/zap.svg b/src/apps/qcam/assets/feathericons/zap.svg similarity index 100% rename from src/qcam/assets/feathericons/zap.svg rename to src/apps/qcam/assets/feathericons/zap.svg diff --git a/src/qcam/assets/feathericons/zoom-in.svg b/src/apps/qcam/assets/feathericons/zoom-in.svg similarity index 100% rename from src/qcam/assets/feathericons/zoom-in.svg rename to src/apps/qcam/assets/feathericons/zoom-in.svg diff --git a/src/qcam/assets/feathericons/zoom-out.svg b/src/apps/qcam/assets/feathericons/zoom-out.svg similarity index 100% rename from src/qcam/assets/feathericons/zoom-out.svg rename to src/apps/qcam/assets/feathericons/zoom-out.svg diff --git a/src/qcam/assets/shader/RGB.frag b/src/apps/qcam/assets/shader/RGB.frag similarity index 100% rename from src/qcam/assets/shader/RGB.frag rename to src/apps/qcam/assets/shader/RGB.frag diff --git a/src/qcam/assets/shader/YUV_2_planes.frag b/src/apps/qcam/assets/shader/YUV_2_planes.frag similarity index 100% rename from src/qcam/assets/shader/YUV_2_planes.frag rename to src/apps/qcam/assets/shader/YUV_2_planes.frag diff --git a/src/qcam/assets/shader/YUV_3_planes.frag b/src/apps/qcam/assets/shader/YUV_3_planes.frag similarity index 100% rename from src/qcam/assets/shader/YUV_3_planes.frag rename to src/apps/qcam/assets/shader/YUV_3_planes.frag diff --git a/src/qcam/assets/shader/YUV_packed.frag b/src/apps/qcam/assets/shader/YUV_packed.frag similarity index 100% rename from src/qcam/assets/shader/YUV_packed.frag rename to src/apps/qcam/assets/shader/YUV_packed.frag diff --git a/src/qcam/assets/shader/bayer_1x_packed.frag b/src/apps/qcam/assets/shader/bayer_1x_packed.frag similarity index 100% rename from src/qcam/assets/shader/bayer_1x_packed.frag rename to src/apps/qcam/assets/shader/bayer_1x_packed.frag diff --git a/src/qcam/assets/shader/bayer_8.frag b/src/apps/qcam/assets/shader/bayer_8.frag similarity index 100% rename from src/qcam/assets/shader/bayer_8.frag rename to src/apps/qcam/assets/shader/bayer_8.frag diff --git a/src/qcam/assets/shader/bayer_8.vert b/src/apps/qcam/assets/shader/bayer_8.vert similarity index 100% rename from src/qcam/assets/shader/bayer_8.vert rename to src/apps/qcam/assets/shader/bayer_8.vert diff --git a/src/qcam/assets/shader/identity.vert b/src/apps/qcam/assets/shader/identity.vert similarity index 100% rename from src/qcam/assets/shader/identity.vert rename to src/apps/qcam/assets/shader/identity.vert diff --git a/src/qcam/assets/shader/shaders.qrc b/src/apps/qcam/assets/shader/shaders.qrc similarity index 100% rename from src/qcam/assets/shader/shaders.qrc rename to src/apps/qcam/assets/shader/shaders.qrc diff --git a/src/qcam/cam_select_dialog.cpp b/src/apps/qcam/cam_select_dialog.cpp similarity index 100% rename from src/qcam/cam_select_dialog.cpp rename to src/apps/qcam/cam_select_dialog.cpp diff --git a/src/qcam/cam_select_dialog.h b/src/apps/qcam/cam_select_dialog.h similarity index 100% rename from src/qcam/cam_select_dialog.h rename to src/apps/qcam/cam_select_dialog.h diff --git a/src/qcam/format_converter.cpp b/src/apps/qcam/format_converter.cpp similarity index 100% rename from src/qcam/format_converter.cpp rename to src/apps/qcam/format_converter.cpp diff --git a/src/qcam/format_converter.h b/src/apps/qcam/format_converter.h similarity index 100% rename from src/qcam/format_converter.h rename to src/apps/qcam/format_converter.h diff --git a/src/qcam/main.cpp b/src/apps/qcam/main.cpp similarity index 100% rename from src/qcam/main.cpp rename to src/apps/qcam/main.cpp diff --git a/src/qcam/main_window.cpp b/src/apps/qcam/main_window.cpp similarity index 100% rename from src/qcam/main_window.cpp rename to src/apps/qcam/main_window.cpp diff --git a/src/qcam/main_window.h b/src/apps/qcam/main_window.h similarity index 100% rename from src/qcam/main_window.h rename to src/apps/qcam/main_window.h diff --git a/src/qcam/meson.build b/src/apps/qcam/meson.build similarity index 100% rename from src/qcam/meson.build rename to src/apps/qcam/meson.build diff --git a/src/qcam/message_handler.cpp b/src/apps/qcam/message_handler.cpp similarity index 100% rename from src/qcam/message_handler.cpp rename to src/apps/qcam/message_handler.cpp diff --git a/src/qcam/message_handler.h b/src/apps/qcam/message_handler.h similarity index 100% rename from src/qcam/message_handler.h rename to src/apps/qcam/message_handler.h diff --git a/src/qcam/viewfinder.h b/src/apps/qcam/viewfinder.h similarity index 100% rename from src/qcam/viewfinder.h rename to src/apps/qcam/viewfinder.h diff --git a/src/qcam/viewfinder_gl.cpp b/src/apps/qcam/viewfinder_gl.cpp similarity index 100% rename from src/qcam/viewfinder_gl.cpp rename to src/apps/qcam/viewfinder_gl.cpp diff --git a/src/qcam/viewfinder_gl.h b/src/apps/qcam/viewfinder_gl.h similarity index 100% rename from src/qcam/viewfinder_gl.h rename to src/apps/qcam/viewfinder_gl.h diff --git a/src/qcam/viewfinder_qt.cpp b/src/apps/qcam/viewfinder_qt.cpp similarity index 100% rename from src/qcam/viewfinder_qt.cpp rename to src/apps/qcam/viewfinder_qt.cpp diff --git a/src/qcam/viewfinder_qt.h b/src/apps/qcam/viewfinder_qt.h similarity index 100% rename from src/qcam/viewfinder_qt.h rename to src/apps/qcam/viewfinder_qt.h diff --git a/src/meson.build b/src/meson.build index f37c44ca9f60..a3821fb90a0f 100644 --- a/src/meson.build +++ b/src/meson.build @@ -32,10 +32,7 @@ subdir('libcamera') subdir('android') subdir('ipa') -subdir('lc-compliance') - -subdir('cam') -subdir('qcam') +subdir('apps') subdir('gstreamer') subdir('py') From patchwork Wed Oct 19 23:15:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 17648 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 28E98C0DA4 for ; Wed, 19 Oct 2022 23:16:13 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id D408162E88; Thu, 20 Oct 2022 01:16:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1666221372; bh=JgLFQNzIPIcxyqgtZh5197RCEK8oDH5JtjYJET0ajaA=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=kzyvjoReY8wa/NHR8eyPMQDfs9mA1pZEdDyrLnsrUt3Xx/u7W5rMRKFdE859u6nIa YkoHPfZz6NJC/EDI+aOxVOiOuOH1cu04lwRTUmyoKpxH5JkKzv76u5qdexgJDB5Cbr +9WuBX4Rm+hSXoEZ/AIkYMw7NM7HjzSzOo7fQ/ysyWIrxdegl1ugp4SxoEPw+T6Dzi CX3Lu4quhoCMYoiNVI5DqOkooj1SivT0c03PplshDw+E3d7UEavNVMo3QHucKnknKN hSmMtTtj5h9J2XUdMfyoP8kvCfio7+sjJGJvxWvW9DMd8uKty77cchujb6QNyMGGBo NkbSbVKItG31A== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id AC3B562E85 for ; Thu, 20 Oct 2022 01:16:10 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="b04G2RFf"; dkim-atps=neutral Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 05191570 for ; Thu, 20 Oct 2022 01:16:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1666221370; bh=JgLFQNzIPIcxyqgtZh5197RCEK8oDH5JtjYJET0ajaA=; h=From:To:Subject:Date:In-Reply-To:References:From; b=b04G2RFfKCh9oXRFqqkZgYIltCxecVW3Rucac5KjHbiSdzVovujJowAH5gBrVtpCQ P+Y1nvH5vupEJ6Vo7a1kDQaUHTPRZ7Un2AG+hPQFQq0qNXXUcYrnp57rrnw2fkfDkk ZB14TbqF+ijtrWxDFicylCyxhr3DsMgLBu95LK6Q= To: libcamera-devel@lists.libcamera.org Date: Thu, 20 Oct 2022 02:15:35 +0300 Message-Id: <20221019231537.26880-5-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221019231537.26880-1-laurent.pinchart@ideasonboard.com> References: <20221019231537.26880-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v1 4/6] apps: Move libevent dependency to src/apps/meson.build X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Laurent Pinchart via libcamera-devel From: Laurent Pinchart Reply-To: Laurent Pinchart Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" libtiff is a shared dependency between cam and lc-compliance, move it to src/apps/. The shared dependency will be used to condition compilation of source files in an upcoming application static library. Signed-off-by: Laurent Pinchart Reviewed-by: Paul Elder Reviewed-by: Kieran Bingham --- src/apps/cam/meson.build | 4 +--- src/apps/lc-compliance/meson.build | 3 +-- src/apps/meson.build | 8 ++++++++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/apps/cam/meson.build b/src/apps/cam/meson.build index 06dbea0645b7..4b6099ddab63 100644 --- a/src/apps/cam/meson.build +++ b/src/apps/cam/meson.build @@ -1,8 +1,6 @@ # SPDX-License-Identifier: CC0-1.0 -libevent = dependency('libevent_pthreads', required : get_option('cam')) - -if not libevent.found() +if opt_cam.disabled() or not libevent.found() cam_enabled = false subdir_done() endif diff --git a/src/apps/lc-compliance/meson.build b/src/apps/lc-compliance/meson.build index 8b57474be2b2..05d622be0a40 100644 --- a/src/apps/lc-compliance/meson.build +++ b/src/apps/lc-compliance/meson.build @@ -1,10 +1,9 @@ # SPDX-License-Identifier: CC0-1.0 -libevent = dependency('libevent_pthreads', required : get_option('lc-compliance')) libgtest = dependency('gtest', required : get_option('lc-compliance'), fallback : ['gtest', 'gtest_dep']) -if not (libevent.found() and libgtest.found()) +if opt_lc_compliance.disabled() or not libevent.found() or not libgtest.found() lc_compliance_enabled = false subdir_done() endif diff --git a/src/apps/meson.build b/src/apps/meson.build index 9e4388bd7881..159deb0b7fc2 100644 --- a/src/apps/meson.build +++ b/src/apps/meson.build @@ -1,5 +1,13 @@ # SPDX-License-Identifier: CC0-1.0 +opt_cam = get_option('cam') +opt_lc_compliance = get_option('lc-compliance') + +libevent = dependency('libevent_pthreads', required : opt_cam) +if not libevent.found() + libevent = dependency('libevent_pthreads', required : opt_lc_compliance) +endif + subdir('lc-compliance') subdir('cam') From patchwork Wed Oct 19 23:15:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 17649 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 9414FC0DA4 for ; Wed, 19 Oct 2022 23:16:16 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 492B462E8D; Thu, 20 Oct 2022 01:16:16 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1666221376; bh=vtw9zoSqNVO395XdNhpi1zojOF0HCncIvVluewn+jWM=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=01rMaOXUT/guaAEal/snFy3IUK7Izsa2H9gmI26rJxrubHEJFoYpF9uzOxtwSnwh2 iacmKnSy0qYFtb3v4b7i5rkSQ4dJGvBPgeD7/FTlmieXt6txmoKYcuBEDWf8XQ0ImI oB38RXTzmuyCJ5OIwEYgqdjaTu6xa9talH5k9CXCyT/13as7upO7QqUcduwZzjVmem xjtVtrBoQr+Hrzgnpyb+DiQ074bpFfXOwaPp7cSwoWehBMDMxcFT3qvk4X3jMKQ4zz J1gT+La4SIqsRlaxwnyp/koN9xhhBX0sL9cmSrUL6xxMn+MrixsDUpVoG/zWTvkLUL 469YsUycN6DeA== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 784BE62E7D for ; Thu, 20 Oct 2022 01:16:12 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="LhBTwT/u"; dkim-atps=neutral Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 149CF8BF for ; Thu, 20 Oct 2022 01:16:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1666221372; bh=vtw9zoSqNVO395XdNhpi1zojOF0HCncIvVluewn+jWM=; h=From:To:Subject:Date:In-Reply-To:References:From; b=LhBTwT/u2Q36R76gppwsc0tm0arPd7leTJAf8u8NXoLP2GAGQsYYyt6DJHbVpHtH2 2/2PVtUg60GWbkiaJR+gm69hmHUY/uz/L161Cuj9h5/Ox5UPn+19mGbaP67ZEHNRy3 iTGQcVfRKIhggs6syqpvdGInpS3SA+Ux34b5omM8= To: libcamera-devel@lists.libcamera.org Date: Thu, 20 Oct 2022 02:15:36 +0300 Message-Id: <20221019231537.26880-6-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221019231537.26880-1-laurent.pinchart@ideasonboard.com> References: <20221019231537.26880-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v1 5/6] apps: Move libtiff dependency to src/apps/meson.build X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Laurent Pinchart via libcamera-devel From: Laurent Pinchart Reply-To: Laurent Pinchart Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" libtiff is a shared dependency between cam and qcam, move it to src/apps/. The shared dependency will be used to condition compilation of source files in an upcoming application static library. Signed-off-by: Laurent Pinchart Reviewed-by: Paul Elder Reviewed-by: Kieran Bingham --- src/apps/cam/meson.build | 1 - src/apps/meson.build | 2 ++ src/apps/qcam/meson.build | 5 ++--- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/apps/cam/meson.build b/src/apps/cam/meson.build index 4b6099ddab63..297de64fbdd9 100644 --- a/src/apps/cam/meson.build +++ b/src/apps/cam/meson.build @@ -24,7 +24,6 @@ cam_cpp_args = [] libdrm = dependency('libdrm', required : false) libjpeg = dependency('libjpeg', required : false) libsdl2 = dependency('SDL2', required : false) -libtiff = dependency('libtiff-4', required : false) if libdrm.found() cam_cpp_args += [ '-DHAVE_KMS' ] diff --git a/src/apps/meson.build b/src/apps/meson.build index 159deb0b7fc2..95f1f5190c7a 100644 --- a/src/apps/meson.build +++ b/src/apps/meson.build @@ -8,6 +8,8 @@ if not libevent.found() libevent = dependency('libevent_pthreads', required : opt_lc_compliance) endif +libtiff = dependency('libtiff-4', required : false) + subdir('lc-compliance') subdir('cam') diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build index d5916d0df532..e298101e2c43 100644 --- a/src/apps/qcam/meson.build +++ b/src/apps/qcam/meson.build @@ -38,8 +38,7 @@ qcam_resources = files([ qt5_cpp_args = ['-DQT_NO_KEYWORDS'] -tiff_dep = dependency('libtiff-4', required : false) -if tiff_dep.found() +if libtiff.found() qt5_cpp_args += ['-DHAVE_TIFF'] qcam_sources += files([ '../cam/dng_writer.cpp', @@ -77,7 +76,7 @@ qcam = executable('qcam', qcam_sources, resources, dependencies : [ libatomic, libcamera_public, + libtiff, qt5_dep, - tiff_dep, ], cpp_args : qt5_cpp_args) From patchwork Wed Oct 19 23:15:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 17650 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 290EAC327C for ; Wed, 19 Oct 2022 23:16:17 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id D460D62E8C; Thu, 20 Oct 2022 01:16:16 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1666221376; bh=pCr3sJUk3p4so3UXHmEcJQE/it87CV9I2iElBI3Gf2I=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=nIEdFNw1bW6I8uUlR/LYYgXNbY9FkcV4+zmRC7Jpz3jZC1DhSqfGlNshzEmYxHgx+ C2m1uIbEnqMwwkwlvn0yn1vI+rtqzBLC8yZsavl3+ObjGpoxUOW1ZXZJ6w6jgBYSoM nHD0W9sDZurRANVLsBtVrHKdPoIzhWSaQKxpQkLVb5dSOLHLY/quUPmEIibWoMIjMU MxE9HIN1KWmedtwRJ37bM6MWUsd+C9ELTtWa+lW8k5g/U6pBiIr4PdW5pT1pmyNOE/ H8FDME8po4hsn6iFXDP3eXZJ1KIfxoNUqR7z32DFUryts5gu+7rsaPnyQHr4+HBr8H yNesYx1AflOTQ== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 6E62A62E85 for ; Thu, 20 Oct 2022 01:16:14 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="vrax0qJE"; dkim-atps=neutral Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id ECDE88BF for ; Thu, 20 Oct 2022 01:16:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1666221374; bh=pCr3sJUk3p4so3UXHmEcJQE/it87CV9I2iElBI3Gf2I=; h=From:To:Subject:Date:In-Reply-To:References:From; b=vrax0qJEpPbBLYGYLpLwgAmaq9+aaUOyY6GTxiPEDLl1UGLqECekyxeXRalKXew21 h5iUqRPhESCWgRriHjrocZZc4rnMAiQojs2B9rksOeVn80cD1ubZlE5J0pxvgboQTz 1hNezO0kGPiKmStGT7jcc/e2A09brNTJxRL5cmT8= To: libcamera-devel@lists.libcamera.org Date: Thu, 20 Oct 2022 02:15:37 +0300 Message-Id: <20221019231537.26880-7-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221019231537.26880-1-laurent.pinchart@ideasonboard.com> References: <20221019231537.26880-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v1 6/6] apps: Shared common source between applications X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Laurent Pinchart via libcamera-devel From: Laurent Pinchart Reply-To: Laurent Pinchart Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Multiple source files in the src/apps/cam/ directory are used by cam, qcam and lc-compliance. They are compiled separately for each application. Move them to the src/apps/ directory and compile them in a static library to decrease the number of compilation operations. Signed-off-by: Laurent Pinchart --- src/apps/cam/camera_session.cpp | 5 +++-- src/apps/cam/camera_session.h | 2 +- src/apps/cam/drm.cpp | 2 +- src/apps/cam/file_sink.cpp | 5 +++-- src/apps/cam/main.cpp | 7 ++++--- src/apps/cam/meson.build | 14 ++------------ src/apps/cam/sdl_sink.cpp | 5 +++-- src/apps/cam/sdl_texture.h | 2 +- src/apps/{cam => }/dng_writer.cpp | 0 src/apps/{cam => }/dng_writer.h | 0 src/apps/{cam => }/event_loop.cpp | 0 src/apps/{cam => }/event_loop.h | 0 src/apps/{cam => }/image.cpp | 0 src/apps/{cam => }/image.h | 0 src/apps/lc-compliance/main.cpp | 2 +- src/apps/lc-compliance/meson.build | 3 +-- src/apps/lc-compliance/simple_capture.h | 2 +- src/apps/meson.build | 25 +++++++++++++++++++++++++ src/apps/{cam => }/options.cpp | 0 src/apps/{cam => }/options.h | 0 src/apps/qcam/format_converter.cpp | 2 +- src/apps/qcam/main.cpp | 4 ++-- src/apps/qcam/main_window.cpp | 4 ++-- src/apps/qcam/main_window.h | 2 +- src/apps/qcam/meson.build | 13 ++----------- src/apps/qcam/viewfinder_gl.cpp | 2 +- src/apps/qcam/viewfinder_qt.cpp | 2 +- src/apps/{cam => }/stream_options.cpp | 0 src/apps/{cam => }/stream_options.h | 0 29 files changed, 56 insertions(+), 47 deletions(-) rename src/apps/{cam => }/dng_writer.cpp (100%) rename src/apps/{cam => }/dng_writer.h (100%) rename src/apps/{cam => }/event_loop.cpp (100%) rename src/apps/{cam => }/event_loop.h (100%) rename src/apps/{cam => }/image.cpp (100%) rename src/apps/{cam => }/image.h (100%) rename src/apps/{cam => }/options.cpp (100%) rename src/apps/{cam => }/options.h (100%) rename src/apps/{cam => }/stream_options.cpp (100%) rename src/apps/{cam => }/stream_options.h (100%) diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp index 6b409c983b86..c581410e4dec 100644 --- a/src/apps/cam/camera_session.cpp +++ b/src/apps/cam/camera_session.cpp @@ -13,9 +13,11 @@ #include #include +#include "../event_loop.h" +#include "../stream_options.h" + #include "camera_session.h" #include "capture_script.h" -#include "event_loop.h" #include "file_sink.h" #ifdef HAVE_KMS #include "kms_sink.h" @@ -24,7 +26,6 @@ #ifdef HAVE_SDL #include "sdl_sink.h" #endif -#include "stream_options.h" using namespace libcamera; diff --git a/src/apps/cam/camera_session.h b/src/apps/cam/camera_session.h index d562caae0794..46748d5c98ac 100644 --- a/src/apps/cam/camera_session.h +++ b/src/apps/cam/camera_session.h @@ -21,7 +21,7 @@ #include #include -#include "options.h" +#include "../options.h" class CaptureScript; class FrameSink; diff --git a/src/apps/cam/drm.cpp b/src/apps/cam/drm.cpp index 2e4d7985245d..3ad33175fdd3 100644 --- a/src/apps/cam/drm.cpp +++ b/src/apps/cam/drm.cpp @@ -24,7 +24,7 @@ #include -#include "event_loop.h" +#include "../event_loop.h" namespace DRM { diff --git a/src/apps/cam/file_sink.cpp b/src/apps/cam/file_sink.cpp index 9d60c04e1cf4..dc109af729fe 100644 --- a/src/apps/cam/file_sink.cpp +++ b/src/apps/cam/file_sink.cpp @@ -15,9 +15,10 @@ #include -#include "dng_writer.h" +#include "../dng_writer.h" +#include "../image.h" + #include "file_sink.h" -#include "image.h" using namespace libcamera; diff --git a/src/apps/cam/main.cpp b/src/apps/cam/main.cpp index d70130e2ab81..85a678f86819 100644 --- a/src/apps/cam/main.cpp +++ b/src/apps/cam/main.cpp @@ -14,11 +14,12 @@ #include #include +#include "../event_loop.h" +#include "../options.h" +#include "../stream_options.h" + #include "camera_session.h" -#include "event_loop.h" #include "main.h" -#include "options.h" -#include "stream_options.h" using namespace libcamera; diff --git a/src/apps/cam/meson.build b/src/apps/cam/meson.build index 297de64fbdd9..48c834ace71b 100644 --- a/src/apps/cam/meson.build +++ b/src/apps/cam/meson.build @@ -10,16 +10,12 @@ cam_enabled = true cam_sources = files([ 'camera_session.cpp', 'capture_script.cpp', - 'event_loop.cpp', 'file_sink.cpp', 'frame_sink.cpp', - 'image.cpp', 'main.cpp', - 'options.cpp', - 'stream_options.cpp', ]) -cam_cpp_args = [] +cam_cpp_args = [apps_cpp_args] libdrm = dependency('libdrm', required : false) libjpeg = dependency('libjpeg', required : false) @@ -49,14 +45,8 @@ if libsdl2.found() endif endif -if libtiff.found() - cam_cpp_args += ['-DHAVE_TIFF'] - cam_sources += files([ - 'dng_writer.cpp', - ]) -endif - cam = executable('cam', cam_sources, + link_with : apps_lib, dependencies : [ libatomic, libcamera_public, diff --git a/src/apps/cam/sdl_sink.cpp b/src/apps/cam/sdl_sink.cpp index ee177227dbca..ec9dd1868332 100644 --- a/src/apps/cam/sdl_sink.cpp +++ b/src/apps/cam/sdl_sink.cpp @@ -19,8 +19,9 @@ #include #include -#include "event_loop.h" -#include "image.h" +#include "../event_loop.h" +#include "../image.h" + #ifdef HAVE_LIBJPEG #include "sdl_texture_mjpg.h" #endif diff --git a/src/apps/cam/sdl_texture.h b/src/apps/cam/sdl_texture.h index 6ccd85eab390..6890f239ddd6 100644 --- a/src/apps/cam/sdl_texture.h +++ b/src/apps/cam/sdl_texture.h @@ -11,7 +11,7 @@ #include -#include "image.h" +#include "../image.h" class SDLTexture { diff --git a/src/apps/cam/dng_writer.cpp b/src/apps/dng_writer.cpp similarity index 100% rename from src/apps/cam/dng_writer.cpp rename to src/apps/dng_writer.cpp diff --git a/src/apps/cam/dng_writer.h b/src/apps/dng_writer.h similarity index 100% rename from src/apps/cam/dng_writer.h rename to src/apps/dng_writer.h diff --git a/src/apps/cam/event_loop.cpp b/src/apps/event_loop.cpp similarity index 100% rename from src/apps/cam/event_loop.cpp rename to src/apps/event_loop.cpp diff --git a/src/apps/cam/event_loop.h b/src/apps/event_loop.h similarity index 100% rename from src/apps/cam/event_loop.h rename to src/apps/event_loop.h diff --git a/src/apps/cam/image.cpp b/src/apps/image.cpp similarity index 100% rename from src/apps/cam/image.cpp rename to src/apps/image.cpp diff --git a/src/apps/cam/image.h b/src/apps/image.h similarity index 100% rename from src/apps/cam/image.h rename to src/apps/image.h diff --git a/src/apps/lc-compliance/main.cpp b/src/apps/lc-compliance/main.cpp index 7eb52ae4c094..2cc6b77fc78e 100644 --- a/src/apps/lc-compliance/main.cpp +++ b/src/apps/lc-compliance/main.cpp @@ -15,7 +15,7 @@ #include #include "environment.h" -#include "../cam/options.h" +#include "../options.h" using namespace libcamera; diff --git a/src/apps/lc-compliance/meson.build b/src/apps/lc-compliance/meson.build index 05d622be0a40..51d9075ac30b 100644 --- a/src/apps/lc-compliance/meson.build +++ b/src/apps/lc-compliance/meson.build @@ -11,8 +11,6 @@ endif lc_compliance_enabled = true lc_compliance_sources = files([ - '../cam/event_loop.cpp', - '../cam/options.cpp', 'environment.cpp', 'main.cpp', 'simple_capture.cpp', @@ -21,6 +19,7 @@ lc_compliance_sources = files([ lc_compliance = executable('lc-compliance', lc_compliance_sources, cpp_args : [ '-fexceptions' ], + link_with : apps_lib, dependencies : [ libatomic, libcamera_public, diff --git a/src/apps/lc-compliance/simple_capture.h b/src/apps/lc-compliance/simple_capture.h index 9d31f7cb2e53..5a64395d986c 100644 --- a/src/apps/lc-compliance/simple_capture.h +++ b/src/apps/lc-compliance/simple_capture.h @@ -11,7 +11,7 @@ #include -#include "../cam/event_loop.h" +#include "../event_loop.h" class SimpleCapture { diff --git a/src/apps/meson.build b/src/apps/meson.build index 95f1f5190c7a..e1879806c99e 100644 --- a/src/apps/meson.build +++ b/src/apps/meson.build @@ -10,6 +10,31 @@ endif libtiff = dependency('libtiff-4', required : false) +apps_sources = files([ + 'image.cpp', + 'options.cpp', + 'stream_options.cpp', +]) + +apps_cpp_args = [] + +if libevent.found() + apps_sources += files([ + 'event_loop.cpp', + ]) +endif + +if libtiff.found() + apps_cpp_args += ['-DHAVE_TIFF'] + apps_sources += files([ + 'dng_writer.cpp', + ]) +endif + +apps_lib = static_library('apps', apps_sources, + cpp_args : apps_cpp_args, + dependencies : [libcamera_public]) + subdir('lc-compliance') subdir('cam') diff --git a/src/apps/cam/options.cpp b/src/apps/options.cpp similarity index 100% rename from src/apps/cam/options.cpp rename to src/apps/options.cpp diff --git a/src/apps/cam/options.h b/src/apps/options.h similarity index 100% rename from src/apps/cam/options.h rename to src/apps/options.h diff --git a/src/apps/qcam/format_converter.cpp b/src/apps/qcam/format_converter.cpp index 9331da0ce7a3..0390e0184454 100644 --- a/src/apps/qcam/format_converter.cpp +++ b/src/apps/qcam/format_converter.cpp @@ -14,7 +14,7 @@ #include -#include "../cam/image.h" +#include "../image.h" #define RGBSHIFT 8 #ifndef MAX diff --git a/src/apps/qcam/main.cpp b/src/apps/qcam/main.cpp index d3f01a85f1fb..0373c78d53c8 100644 --- a/src/apps/qcam/main.cpp +++ b/src/apps/qcam/main.cpp @@ -13,8 +13,8 @@ #include -#include "../cam/options.h" -#include "../cam/stream_options.h" +#include "../options.h" +#include "../stream_options.h" #include "main_window.h" #include "message_handler.h" diff --git a/src/apps/qcam/main_window.cpp b/src/apps/qcam/main_window.cpp index f553ccb01805..a90e95d545e1 100644 --- a/src/apps/qcam/main_window.cpp +++ b/src/apps/qcam/main_window.cpp @@ -26,8 +26,8 @@ #include #include -#include "../cam/dng_writer.h" -#include "../cam/image.h" +#include "../dng_writer.h" +#include "../image.h" #include "cam_select_dialog.h" #ifndef QT_NO_OPENGL diff --git a/src/apps/qcam/main_window.h b/src/apps/qcam/main_window.h index 95b64124336f..8d378a1ff768 100644 --- a/src/apps/qcam/main_window.h +++ b/src/apps/qcam/main_window.h @@ -27,7 +27,7 @@ #include #include -#include "../cam/stream_options.h" +#include "../stream_options.h" #include "viewfinder.h" diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build index e298101e2c43..eb0712d91351 100644 --- a/src/apps/qcam/meson.build +++ b/src/apps/qcam/meson.build @@ -15,9 +15,6 @@ endif qcam_enabled = true qcam_sources = files([ - '../cam/image.cpp', - '../cam/options.cpp', - '../cam/stream_options.cpp', 'cam_select_dialog.cpp', 'format_converter.cpp', 'main.cpp', @@ -36,14 +33,7 @@ qcam_resources = files([ 'assets/feathericons/feathericons.qrc', ]) -qt5_cpp_args = ['-DQT_NO_KEYWORDS'] - -if libtiff.found() - qt5_cpp_args += ['-DHAVE_TIFF'] - qcam_sources += files([ - '../cam/dng_writer.cpp', - ]) -endif +qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', dependencies : qt5_dep, args : '-fPIC') @@ -73,6 +63,7 @@ resources = qt5.preprocess(moc_headers: qcam_moc_headers, qcam = executable('qcam', qcam_sources, resources, install : true, + link_with : apps_lib, dependencies : [ libatomic, libcamera_public, diff --git a/src/apps/qcam/viewfinder_gl.cpp b/src/apps/qcam/viewfinder_gl.cpp index 38ddad58e09e..7b791765734e 100644 --- a/src/apps/qcam/viewfinder_gl.cpp +++ b/src/apps/qcam/viewfinder_gl.cpp @@ -16,7 +16,7 @@ #include -#include "../cam/image.h" +#include "../image.h" static const QList supportedFormats{ /* YUV - packed (single plane) */ diff --git a/src/apps/qcam/viewfinder_qt.cpp b/src/apps/qcam/viewfinder_qt.cpp index c20fd6bc8fc2..e4efc587c759 100644 --- a/src/apps/qcam/viewfinder_qt.cpp +++ b/src/apps/qcam/viewfinder_qt.cpp @@ -20,7 +20,7 @@ #include #include -#include "../cam/image.h" +#include "../image.h" #include "format_converter.h" diff --git a/src/apps/cam/stream_options.cpp b/src/apps/stream_options.cpp similarity index 100% rename from src/apps/cam/stream_options.cpp rename to src/apps/stream_options.cpp diff --git a/src/apps/cam/stream_options.h b/src/apps/stream_options.h similarity index 100% rename from src/apps/cam/stream_options.h rename to src/apps/stream_options.h