Message ID | 20221024000356.29521-8-laurent.pinchart@ideasonboard.com |
---|---|
State | Accepted |
Headers | show |
Series |
|
Related | show |
On Mon, Oct 24, 2022 at 03:03:50AM +0300, Laurent Pinchart wrote: > The StreamRole enum has enumerators such as 'Raw' that are too generic > to be in the global libcamera namespace. Turn it into a scoped enum to > avoid namespace clashes, and update users accordingly. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> > --- > include/libcamera/stream.h | 2 +- > src/apps/lc-compliance/capture_test.cpp | 17 ++++++++++++----- > src/gstreamer/gstlibcamerapad.cpp | 20 +++++++++++++++----- > 3 files changed, 28 insertions(+), 11 deletions(-) > > diff --git a/include/libcamera/stream.h b/include/libcamera/stream.h > index efec695ad317..29235ddf0d8a 100644 > --- a/include/libcamera/stream.h > +++ b/include/libcamera/stream.h > @@ -62,7 +62,7 @@ private: > StreamFormats formats_; > }; > > -enum StreamRole { > +enum class StreamRole { > Raw, > StillCapture, > VideoRecording, > diff --git a/src/apps/lc-compliance/capture_test.cpp b/src/apps/lc-compliance/capture_test.cpp > index 52578207c11f..1dcfcf92fc8c 100644 > --- a/src/apps/lc-compliance/capture_test.cpp > +++ b/src/apps/lc-compliance/capture_test.cpp > @@ -16,7 +16,12 @@ > using namespace libcamera; > > const std::vector<int> NUMREQUESTS = { 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 }; > -const std::vector<StreamRole> ROLES = { Raw, StillCapture, VideoRecording, Viewfinder }; > +const std::vector<StreamRole> ROLES = { > + StreamRole::Raw, > + StreamRole::StillCapture, > + StreamRole::VideoRecording, > + StreamRole::Viewfinder > +}; > > class SingleStream : public testing::TestWithParam<std::tuple<StreamRole, int>> > { > @@ -54,10 +59,12 @@ void SingleStream::TearDown() > > std::string SingleStream::nameParameters(const testing::TestParamInfo<SingleStream::ParamType> &info) > { > - std::map<StreamRole, std::string> rolesMap = { { Raw, "Raw" }, > - { StillCapture, "StillCapture" }, > - { VideoRecording, "VideoRecording" }, > - { Viewfinder, "Viewfinder" } }; > + std::map<StreamRole, std::string> rolesMap = { > + { StreamRole::Raw, "Raw" }, > + { StreamRole::StillCapture, "StillCapture" }, > + { StreamRole::VideoRecording, "VideoRecording" }, > + { StreamRole::Viewfinder, "Viewfinder" } > + }; > > std::string roleName = rolesMap[std::get<0>(info.param)]; > std::string numRequestsName = std::to_string(std::get<1>(info.param)); > diff --git a/src/gstreamer/gstlibcamerapad.cpp b/src/gstreamer/gstlibcamerapad.cpp > index 87b4057ac101..9e710a479368 100644 > --- a/src/gstreamer/gstlibcamerapad.cpp > +++ b/src/gstreamer/gstlibcamerapad.cpp > @@ -54,7 +54,7 @@ gst_libcamera_pad_get_property(GObject *object, guint prop_id, GValue *value, > > switch (prop_id) { > case PROP_STREAM_ROLE: > - g_value_set_enum(value, self->role); > + g_value_set_enum(value, static_cast<gint>(self->role)); > break; > default: > G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); > @@ -87,9 +87,19 @@ gst_libcamera_stream_role_get_type() > { > static GType type = 0; > static const GEnumValue values[] = { > - { StillCapture, "libcamera::StillCapture", "still-capture" }, > - { VideoRecording, "libcamera::VideoRecording", "video-recording" }, > - { Viewfinder, "libcamera::Viewfinder", "view-finder" }, > + { > + static_cast<gint>(StreamRole::StillCapture), > + "libcamera::StillCapture", > + "still-capture", > + }, { > + static_cast<gint>(StreamRole::VideoRecording), > + "libcamera::VideoRecording", > + "video-recording", > + }, { > + static_cast<gint>(StreamRole::Viewfinder), > + "libcamera::Viewfinder", > + "view-finder", > + }, > { 0, NULL, NULL } > }; > > @@ -110,7 +120,7 @@ gst_libcamera_pad_class_init(GstLibcameraPadClass *klass) > auto *spec = g_param_spec_enum("stream-role", "Stream Role", > "The selected stream role", > gst_libcamera_stream_role_get_type(), > - VideoRecording, > + static_cast<gint>(StreamRole::VideoRecording), > (GParamFlags)(GST_PARAM_MUTABLE_READY > | G_PARAM_CONSTRUCT > | G_PARAM_READWRITE > -- > Regards, > > Laurent Pinchart >
Hi Laurent On Mon, Oct 24, 2022 at 03:03:50AM +0300, Laurent Pinchart via libcamera-devel wrote: > The StreamRole enum has enumerators such as 'Raw' that are too generic > to be in the global libcamera namespace. Turn it into a scoped enum to > avoid namespace clashes, and update users accordingly. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> > --- > include/libcamera/stream.h | 2 +- > src/apps/lc-compliance/capture_test.cpp | 17 ++++++++++++----- > src/gstreamer/gstlibcamerapad.cpp | 20 +++++++++++++++----- > 3 files changed, 28 insertions(+), 11 deletions(-) > > diff --git a/include/libcamera/stream.h b/include/libcamera/stream.h > index efec695ad317..29235ddf0d8a 100644 > --- a/include/libcamera/stream.h > +++ b/include/libcamera/stream.h > @@ -62,7 +62,7 @@ private: > StreamFormats formats_; > }; > > -enum StreamRole { > +enum class StreamRole { > Raw, > StillCapture, > VideoRecording, > diff --git a/src/apps/lc-compliance/capture_test.cpp b/src/apps/lc-compliance/capture_test.cpp > index 52578207c11f..1dcfcf92fc8c 100644 > --- a/src/apps/lc-compliance/capture_test.cpp > +++ b/src/apps/lc-compliance/capture_test.cpp > @@ -16,7 +16,12 @@ > using namespace libcamera; > > const std::vector<int> NUMREQUESTS = { 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 }; > -const std::vector<StreamRole> ROLES = { Raw, StillCapture, VideoRecording, Viewfinder }; > +const std::vector<StreamRole> ROLES = { > + StreamRole::Raw, > + StreamRole::StillCapture, > + StreamRole::VideoRecording, > + StreamRole::Viewfinder > +}; > > class SingleStream : public testing::TestWithParam<std::tuple<StreamRole, int>> > { > @@ -54,10 +59,12 @@ void SingleStream::TearDown() > > std::string SingleStream::nameParameters(const testing::TestParamInfo<SingleStream::ParamType> &info) > { > - std::map<StreamRole, std::string> rolesMap = { { Raw, "Raw" }, > - { StillCapture, "StillCapture" }, > - { VideoRecording, "VideoRecording" }, > - { Viewfinder, "Viewfinder" } }; > + std::map<StreamRole, std::string> rolesMap = { > + { StreamRole::Raw, "Raw" }, > + { StreamRole::StillCapture, "StillCapture" }, > + { StreamRole::VideoRecording, "VideoRecording" }, > + { StreamRole::Viewfinder, "Viewfinder" } > + }; > > std::string roleName = rolesMap[std::get<0>(info.param)]; > std::string numRequestsName = std::to_string(std::get<1>(info.param)); > diff --git a/src/gstreamer/gstlibcamerapad.cpp b/src/gstreamer/gstlibcamerapad.cpp > index 87b4057ac101..9e710a479368 100644 > --- a/src/gstreamer/gstlibcamerapad.cpp > +++ b/src/gstreamer/gstlibcamerapad.cpp > @@ -54,7 +54,7 @@ gst_libcamera_pad_get_property(GObject *object, guint prop_id, GValue *value, > > switch (prop_id) { > case PROP_STREAM_ROLE: > - g_value_set_enum(value, self->role); > + g_value_set_enum(value, static_cast<gint>(self->role)); > break; > default: > G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); > @@ -87,9 +87,19 @@ gst_libcamera_stream_role_get_type() > { > static GType type = 0; > static const GEnumValue values[] = { > - { StillCapture, "libcamera::StillCapture", "still-capture" }, > - { VideoRecording, "libcamera::VideoRecording", "video-recording" }, > - { Viewfinder, "libcamera::Viewfinder", "view-finder" }, > + { > + static_cast<gint>(StreamRole::StillCapture), > + "libcamera::StillCapture", > + "still-capture", > + }, { > + static_cast<gint>(StreamRole::VideoRecording), > + "libcamera::VideoRecording", > + "video-recording", > + }, { > + static_cast<gint>(StreamRole::Viewfinder), > + "libcamera::Viewfinder", > + "view-finder", > + }, > { 0, NULL, NULL } > }; > > @@ -110,7 +120,7 @@ gst_libcamera_pad_class_init(GstLibcameraPadClass *klass) > auto *spec = g_param_spec_enum("stream-role", "Stream Role", > "The selected stream role", > gst_libcamera_stream_role_get_type(), > - VideoRecording, > + static_cast<gint>(StreamRole::VideoRecording), > (GParamFlags)(GST_PARAM_MUTABLE_READY > | G_PARAM_CONSTRUCT > | G_PARAM_READWRITE > -- > Regards, > > Laurent Pinchart >
diff --git a/include/libcamera/stream.h b/include/libcamera/stream.h index efec695ad317..29235ddf0d8a 100644 --- a/include/libcamera/stream.h +++ b/include/libcamera/stream.h @@ -62,7 +62,7 @@ private: StreamFormats formats_; }; -enum StreamRole { +enum class StreamRole { Raw, StillCapture, VideoRecording, diff --git a/src/apps/lc-compliance/capture_test.cpp b/src/apps/lc-compliance/capture_test.cpp index 52578207c11f..1dcfcf92fc8c 100644 --- a/src/apps/lc-compliance/capture_test.cpp +++ b/src/apps/lc-compliance/capture_test.cpp @@ -16,7 +16,12 @@ using namespace libcamera; const std::vector<int> NUMREQUESTS = { 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 }; -const std::vector<StreamRole> ROLES = { Raw, StillCapture, VideoRecording, Viewfinder }; +const std::vector<StreamRole> ROLES = { + StreamRole::Raw, + StreamRole::StillCapture, + StreamRole::VideoRecording, + StreamRole::Viewfinder +}; class SingleStream : public testing::TestWithParam<std::tuple<StreamRole, int>> { @@ -54,10 +59,12 @@ void SingleStream::TearDown() std::string SingleStream::nameParameters(const testing::TestParamInfo<SingleStream::ParamType> &info) { - std::map<StreamRole, std::string> rolesMap = { { Raw, "Raw" }, - { StillCapture, "StillCapture" }, - { VideoRecording, "VideoRecording" }, - { Viewfinder, "Viewfinder" } }; + std::map<StreamRole, std::string> rolesMap = { + { StreamRole::Raw, "Raw" }, + { StreamRole::StillCapture, "StillCapture" }, + { StreamRole::VideoRecording, "VideoRecording" }, + { StreamRole::Viewfinder, "Viewfinder" } + }; std::string roleName = rolesMap[std::get<0>(info.param)]; std::string numRequestsName = std::to_string(std::get<1>(info.param)); diff --git a/src/gstreamer/gstlibcamerapad.cpp b/src/gstreamer/gstlibcamerapad.cpp index 87b4057ac101..9e710a479368 100644 --- a/src/gstreamer/gstlibcamerapad.cpp +++ b/src/gstreamer/gstlibcamerapad.cpp @@ -54,7 +54,7 @@ gst_libcamera_pad_get_property(GObject *object, guint prop_id, GValue *value, switch (prop_id) { case PROP_STREAM_ROLE: - g_value_set_enum(value, self->role); + g_value_set_enum(value, static_cast<gint>(self->role)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); @@ -87,9 +87,19 @@ gst_libcamera_stream_role_get_type() { static GType type = 0; static const GEnumValue values[] = { - { StillCapture, "libcamera::StillCapture", "still-capture" }, - { VideoRecording, "libcamera::VideoRecording", "video-recording" }, - { Viewfinder, "libcamera::Viewfinder", "view-finder" }, + { + static_cast<gint>(StreamRole::StillCapture), + "libcamera::StillCapture", + "still-capture", + }, { + static_cast<gint>(StreamRole::VideoRecording), + "libcamera::VideoRecording", + "video-recording", + }, { + static_cast<gint>(StreamRole::Viewfinder), + "libcamera::Viewfinder", + "view-finder", + }, { 0, NULL, NULL } }; @@ -110,7 +120,7 @@ gst_libcamera_pad_class_init(GstLibcameraPadClass *klass) auto *spec = g_param_spec_enum("stream-role", "Stream Role", "The selected stream role", gst_libcamera_stream_role_get_type(), - VideoRecording, + static_cast<gint>(StreamRole::VideoRecording), (GParamFlags)(GST_PARAM_MUTABLE_READY | G_PARAM_CONSTRUCT | G_PARAM_READWRITE
The StreamRole enum has enumerators such as 'Raw' that are too generic to be in the global libcamera namespace. Turn it into a scoped enum to avoid namespace clashes, and update users accordingly. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- include/libcamera/stream.h | 2 +- src/apps/lc-compliance/capture_test.cpp | 17 ++++++++++++----- src/gstreamer/gstlibcamerapad.cpp | 20 +++++++++++++++----- 3 files changed, 28 insertions(+), 11 deletions(-)