lorgnette: add support for brother5 driver This driver is loaded as a DLC package and follows the standard DLC logic for scanner drivers in lorgnette. BUG=b:496201239 TEST=manual Change-Id: I3ea3edd59a9bb5a1b2636708c5b898320c85c2d9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/7855659 Commit-Queue: Paul Moy <pmoy@chromium.org> Tested-by: Paul Moy <pmoy@chromium.org> Reviewed-by: Benjamin Gordon <bmgordon@chromium.org>
diff --git a/lorgnette/dlc_client.cc b/lorgnette/dlc_client.cc index 9eb0c02..17df31d 100644 --- a/lorgnette/dlc_client.cc +++ b/lorgnette/dlc_client.cc
@@ -4,13 +4,13 @@ #include "lorgnette/dlc_client.h" +#include <string> + #include <base/functional/bind.h> #include <brillo/errors/error.h> #include <chromeos/constants/lorgnette_dlc.h> #include <dlcservice/proto_bindings/dlcservice.pb.h> -#include <string> - #include "base/files/file_path.h" #include "base/strings/strcat.h" #include "base/task/single_thread_task_runner.h" @@ -18,8 +18,9 @@ namespace lorgnette { DlcClient::DlcClient() - : supported_dlc_ids_(std::set<std::string>( - {kSaneBackendsPfuDlcId, kSaneBackendsCanonDlcId})) {} + : supported_dlc_ids_( + std::set<std::string>({kSaneBackendsPfuDlcId, kSaneBackendsCanonDlcId, + kSaneBackendsBrother5DlcId})) {} void DlcClient::Init( std::unique_ptr<org::chromium::DlcServiceInterfaceProxyInterface>
diff --git a/lorgnette/init/lorgnette.conf b/lorgnette/init/lorgnette.conf index c16d456..48d1ac8 100644 --- a/lorgnette/init/lorgnette.conf +++ b/lorgnette/init/lorgnette.conf
@@ -28,6 +28,12 @@ # pass --clean. systemd-tmpfiles --create --remove --clean \ /usr/lib/tmpfiles.d/50-lorgnette.conf + + # Run DLC-specific tmpfiles clauses, if they exist. + BROTHER5="/usr/lib/tmpfiles.d/70-brother5.conf" + if [ -f "${BROTHER5}" ]; then + systemd-tmpfiles --create --remove --clean "${BROTHER5}" + fi end script exec syslog-cat --identifier="${UPSTART_JOB}" -- \
diff --git a/lorgnette/usb/usb_device.cc b/lorgnette/usb/usb_device.cc index 5eb826d..cfebde3 100644 --- a/lorgnette/usb/usb_device.cc +++ b/lorgnette/usb/usb_device.cc
@@ -24,6 +24,10 @@ const char kScannerTypeMFP[] = "multi-function peripheral"; // Matches SANE. +// Scanners requiring the sane-backends-brother5 DLC. +std::set<VidPid> kScannersRequiringSaneBackendsBrother5Dlc = {{0x04f9, 0x0706}, + {0x04f9, 0x0459}}; + // Scanners requiring the sane-backends-pfu DLC. std::set<VidPid> kScannersRequiringSaneBackendsPfuDlc = { {0x04c5, 0x132e}, {0x04c5, 0x15fc}, {0x04c5, 0x15ff}, @@ -53,6 +57,8 @@ &default_dlc_backend_scanners_); SetScannerIds(kScannerRequiringSaneBackendsCanonDlc, kSaneBackendsCanonDlcId, &default_dlc_backend_scanners_); + SetScannerIds(kScannersRequiringSaneBackendsBrother5Dlc, + kSaneBackendsBrother5DlcId, &default_dlc_backend_scanners_); dlc_backend_scanners_ = &default_dlc_backend_scanners_; }
diff --git a/system_api/constants/lorgnette_dlc.h b/system_api/constants/lorgnette_dlc.h index d6f5d69..dd71cd7 100644 --- a/system_api/constants/lorgnette_dlc.h +++ b/system_api/constants/lorgnette_dlc.h
@@ -16,6 +16,9 @@ // ID of the sane-backends-canon DLC. inline constexpr char kSaneBackendsCanonDlcId[] = "sane-backends-canon"; +// ID of the sane-backends-brother5 DLC. +inline constexpr char kSaneBackendsBrother5DlcId[] = "sane-backends-brother5"; + } // namespace lorgnette #endif // SYSTEM_API_CONSTANTS_LORGNETTE_DLC_H_