summaryrefslogtreecommitdiff
path: root/src/camera/ov9281.h
diff options
context:
space:
mode:
authorNikita Kostovsky <nikita@kostovsky.me>2025-11-14 21:05:12 +0100
committerNikita Kostovsky <nikita@kostovsky.me>2025-11-14 21:05:12 +0100
commit5df63c0bc7e3d6f1850d04f5bafbae2dd6fa619e (patch)
tree7b98d59baec4aac62cab374e95795a2ce6b88d03 /src/camera/ov9281.h
parent36ef6a75e3418d88227e84ab175c0057e860c151 (diff)
organize things a bit, populate ICamera
Diffstat (limited to 'src/camera/ov9281.h')
-rw-r--r--src/camera/ov9281.h90
1 files changed, 0 insertions, 90 deletions
diff --git a/src/camera/ov9281.h b/src/camera/ov9281.h
deleted file mode 100644
index e4b7417..0000000
--- a/src/camera/ov9281.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#pragma once
-
-#include <map>
-#include <memory>
-#include <vector>
-
-#include <libcamera/formats.h>
-
-#include <QObject>
-
-#include "icamera.h"
-
-namespace libcamera {
-class Camera;
-class CameraConfiguration;
-class CameraManager;
-class FrameBufferAllocator;
-class Request;
-} // namespace libcamera
-
-class Image;
-class Pixels;
-
-class OV9281 : public QObject, public ICamera
-{
- // Q_OBJECT
-
-public:
- ~OV9281();
-
-public:
- static std::vector<std::shared_ptr<OV9281>> search(
- std::unique_ptr<libcamera::CameraManager> &manager);
-
- // public functions
-public:
- bool startStream() override;
- void printControls();
-
- bool setExposureTimeUs(int value) override
- {
- assert(false);
- return false;
- };
- bool setGain(int value) override
- {
- assert(false);
- return false;
- };
- bool setLaserLevel(int value) override
- {
- assert(false);
- return false;
- };
-
- // signals
-public:
- // TODO: image->pixels in separate thread
- // TODO: respect sender/receiver threads
- // libcamera::Signal<std::shared_ptr<Pixels>> newPixels;
- // libcamera::Signal<std::shared_ptr<Image>> newImage;
-
-private:
- explicit OV9281(const std::shared_ptr<libcamera::Camera> &camera);
-
- // private functions
-private:
- bool init();
- bool validateConfig();
- bool applyConfig();
-
- void onRequestCompleted(libcamera::Request *completed_request);
-
- // constants
-private:
- static inline constexpr auto pixelFormat{libcamera::formats::R8};
- static inline constexpr unsigned int bufferCount{2};
- static inline constexpr size_t desiredFPS{144};
-
- // member variables
-private:
- std::shared_ptr<libcamera::Camera> m_camera{nullptr};
- std::unique_ptr<libcamera::CameraConfiguration> m_config{nullptr};
- std::map<int, std::pair<void *, unsigned int>> m_mappedBuffers;
- std::vector<std::unique_ptr<libcamera::Request>> m_requests;
- std::unique_ptr<libcamera::FrameBufferAllocator> m_allocator{nullptr};
-
- // TODO: set exposureTime from outside
- int32_t m_exposureTime{3000};
-};