/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * Copyright (C) 2020, Google Inc. * * vivid.cpp - Pipeline handler for the vivid capture device */ #include #include "libcamera/internal/camera.h" #include "libcamera/internal/device_enumerator.h" #include "libcamera/internal/pipeline_handler.h" /* * Explicitly disable the unused-parameter warning in this pipeline handler. * * Parameters are left unused while they are introduced incrementally, so for * documentation purposes only we disable this warning so that we can compile * each commit independently without breaking the flow of the development * additions. * * This is not recommended practice within libcamera, please listen to your * compiler warnings. */ #pragma GCC diagnostic ignored "-Wunused-parameter" namespace libcamera { LOG_DEFINE_CATEGORY(VIVID) class PipelineHandlerVivid : public PipelineHandler { public: PipelineHandlerVivid(CameraManager *manager); std::unique_ptr generateConfiguration(Camera *camera, Span roles) override; int configure(Camera *camera, CameraConfiguration *config) override; int exportFrameBuffers(Camera *camera, Stream *stream, std::vector> *buffers) override; int start(Camera *camera, const ControlList *controls) override; void stopDevice(Camera *camera) override; int queueRequestDevice(Camera *camera, Request *request) override; bool match(DeviceEnumerator *enumerator) override; }; PipelineHandlerVivid::PipelineHandlerVivid(CameraManager *manager) : PipelineHandler(manager) { } std::unique_ptr PipelineHandlerVivid::generateConfiguration(Camera *camera, Span roles) { return std::unique_ptr(nullptr); } int PipelineHandlerVivid::configure(Camera *camera, CameraConfiguration *config) { return -1; } int PipelineHandlerVivid::exportFrameBuffers(Camera *camera, Stream *stream, std::vector> *buffers) { return -1; } int PipelineHandlerVivid::start(Camera *camera, const ControlList *controls) { return -1; } void PipelineHandlerVivid::stopDevice(Camera *camera) { } int PipelineHandlerVivid::queueRequestDevice(Camera *camera, Request *request) { return -1; } bool PipelineHandlerVivid::match(DeviceEnumerator *enumerator) { DeviceMatch dm("vivid"); dm.add("vivid-000-vid-cap"); MediaDevice *media = acquireMediaDevice(enumerator, dm); if (!media) return false; LOG(VIVID, Debug) << "Obtained Vivid Device"; return false; // Prevent infinite loops for now } REGISTER_PIPELINE_HANDLER(PipelineHandlerVivid) } /* namespace libcamera */