Blackjack Decision Maker
libcamera_app_options.hpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (C) 2020, Raspberry Pi (Trading) Ltd.
4  *
5  * options.hpp - common program options
6  */
7 
8 #pragma once
9 
10 #include <fstream>
11 #include <iostream>
12 
13 #include <libcamera/camera.h>
14 #include <libcamera/camera_manager.h>
15 #include <libcamera/control_ids.h>
16 #include <libcamera/property_ids.h>
17 #include <libcamera/transform.h>
18 
20  EXPOSURE_NORMAL = libcamera::controls::ExposureNormal,
21  EXPOSURE_SHORT = libcamera::controls::ExposureShort,
22  EXPOSURE_CUSTOM = libcamera::controls::ExposureCustom
23 };
24 
26  METERING_CENTRE = libcamera::controls::MeteringCentreWeighted,
27  METERING_SPOT = libcamera::controls::MeteringSpot,
28  METERING_MATRIX = libcamera::controls::MeteringMatrix,
29  METERING_CUSTOM = libcamera::controls::MeteringCustom
30 };
31 
33  WB_AUTO = libcamera::controls::AwbAuto,
34  WB_NORMAL = libcamera::controls::AwbAuto,
35  WB_INCANDESCENT = libcamera::controls::AwbIncandescent,
36  WB_TUNGSTEN = libcamera::controls::AwbTungsten,
37  WB_FLUORESCENT = libcamera::controls::AwbFluorescent,
38  WB_INDOOR = libcamera::controls::AwbIndoor,
39  WB_DAYLIGHT = libcamera::controls::AwbDaylight,
40  WB_CLOUDY = libcamera::controls::AwbCloudy,
41  WB_CUSTOM = libcamera::controls::AwbAuto
42 };
43 
44 class Options
45 {
46 public:
48  {
49  timeout=1000;
53  saturation=1.0f;
54  contrast=1.0f;
55  sharpness=1.0f;
56  brightness=0.0f;
57  shutter=0.0f;
58  gain=0.0f;
59  ev=0.0f;
62  denoise="auto";
63  verbose=false;
64  transform=libcamera::Transform::Identity;
65  camera=0;
66  }
67 
68  virtual ~Options() {}
69 
70  virtual void Print() const;
71 
72  void setMetering(Metering_Modes meteringmode){metering_index=meteringmode;}
75 
78  int getWhiteBalance(){return awb_index;}
79 
80  bool help;
81  bool version;
83  bool verbose;
84  uint64_t timeout; // in ms
85  unsigned int photo_width, photo_height;
86  unsigned int video_width, video_height;
87  bool rawfull;
88  libcamera::Transform transform;
90  float shutter;
91  float gain;
92  float ev;
93  float awb_gain_r;
94  float awb_gain_b;
95  float brightness;
96  float contrast;
97  float saturation;
98  float sharpness;
99  float framerate;
100  std::string denoise;
101  std::string info_text;
102  unsigned int camera;
103 
104 protected:
108 
109 private:
110 };
Definition: libcamera_app_options.hpp:45
bool help
Definition: libcamera_app_options.hpp:80
bool list_cameras
Definition: libcamera_app_options.hpp:82
int getExposureMode()
Definition: libcamera_app_options.hpp:76
float ev
Definition: libcamera_app_options.hpp:92
float contrast
Definition: libcamera_app_options.hpp:96
bool rawfull
Definition: libcamera_app_options.hpp:87
std::string denoise
Definition: libcamera_app_options.hpp:100
float gain
Definition: libcamera_app_options.hpp:91
float saturation
Definition: libcamera_app_options.hpp:97
int getMeteringMode()
Definition: libcamera_app_options.hpp:77
float roi_width
Definition: libcamera_app_options.hpp:89
float awb_gain_b
Definition: libcamera_app_options.hpp:94
unsigned int photo_width
Definition: libcamera_app_options.hpp:85
libcamera::Transform transform
Definition: libcamera_app_options.hpp:88
int exposure_index
Definition: libcamera_app_options.hpp:106
std::string info_text
Definition: libcamera_app_options.hpp:101
void setExposureMode(Exposure_Modes exp)
Definition: libcamera_app_options.hpp:74
unsigned int photo_height
Definition: libcamera_app_options.hpp:85
unsigned int video_height
Definition: libcamera_app_options.hpp:86
float roi_height
Definition: libcamera_app_options.hpp:89
int metering_index
Definition: libcamera_app_options.hpp:105
unsigned int camera
Definition: libcamera_app_options.hpp:102
void setMetering(Metering_Modes meteringmode)
Definition: libcamera_app_options.hpp:72
float awb_gain_r
Definition: libcamera_app_options.hpp:93
float brightness
Definition: libcamera_app_options.hpp:95
bool version
Definition: libcamera_app_options.hpp:81
void setWhiteBalance(WhiteBalance_Modes wb)
Definition: libcamera_app_options.hpp:73
float roi_y
Definition: libcamera_app_options.hpp:89
uint64_t timeout
Definition: libcamera_app_options.hpp:84
virtual void Print() const
Definition: libcamera_app_options.cpp:9
Options()
Definition: libcamera_app_options.hpp:47
bool verbose
Definition: libcamera_app_options.hpp:83
float roi_x
Definition: libcamera_app_options.hpp:89
float shutter
Definition: libcamera_app_options.hpp:90
int getWhiteBalance()
Definition: libcamera_app_options.hpp:78
unsigned int video_width
Definition: libcamera_app_options.hpp:86
float framerate
Definition: libcamera_app_options.hpp:99
float sharpness
Definition: libcamera_app_options.hpp:98
int awb_index
Definition: libcamera_app_options.hpp:107
virtual ~Options()
Definition: libcamera_app_options.hpp:68
WhiteBalance_Modes
Definition: libcamera_app_options.hpp:32
@ WB_INDOOR
Definition: libcamera_app_options.hpp:38
@ WB_TUNGSTEN
Definition: libcamera_app_options.hpp:36
@ WB_INCANDESCENT
Definition: libcamera_app_options.hpp:35
@ WB_AUTO
Definition: libcamera_app_options.hpp:33
@ WB_CUSTOM
Definition: libcamera_app_options.hpp:41
@ WB_DAYLIGHT
Definition: libcamera_app_options.hpp:39
@ WB_NORMAL
Definition: libcamera_app_options.hpp:34
@ WB_CLOUDY
Definition: libcamera_app_options.hpp:40
@ WB_FLUORESCENT
Definition: libcamera_app_options.hpp:37
Exposure_Modes
Definition: libcamera_app_options.hpp:19
@ EXPOSURE_SHORT
Definition: libcamera_app_options.hpp:21
@ EXPOSURE_NORMAL
Definition: libcamera_app_options.hpp:20
@ EXPOSURE_CUSTOM
Definition: libcamera_app_options.hpp:22
Metering_Modes
Definition: libcamera_app_options.hpp:25
@ METERING_CENTRE
Definition: libcamera_app_options.hpp:26
@ METERING_SPOT
Definition: libcamera_app_options.hpp:27
@ METERING_MATRIX
Definition: libcamera_app_options.hpp:28
@ METERING_CUSTOM
Definition: libcamera_app_options.hpp:29