matroxsrc: change device property to an enum property named system
Easier to choose system type, and language matches up with Matrox terminology
This commit is contained in:
parent
dd0a7bf93e
commit
bf76de5b03
@ -83,7 +83,7 @@ gst_matroxsrc_callback (MIL_INT HookType, MIL_ID EventId, void *UserDataPtr);
|
|||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_DEVICE,
|
PROP_SYSTEM,
|
||||||
PROP_BOARD,
|
PROP_BOARD,
|
||||||
PROP_CHANNEL,
|
PROP_CHANNEL,
|
||||||
PROP_CONFIG_FILE,
|
PROP_CONFIG_FILE,
|
||||||
@ -92,7 +92,7 @@ enum
|
|||||||
PROP_BAYER_MODE
|
PROP_BAYER_MODE
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DEFAULT_PROP_DEVICE "M_SYSTEM_DEFAULT"
|
#define DEFAULT_PROP_SYSTEM 0
|
||||||
#define DEFAULT_PROP_BOARD -1
|
#define DEFAULT_PROP_BOARD -1
|
||||||
#define DEFAULT_PROP_CHANNEL -1
|
#define DEFAULT_PROP_CHANNEL -1
|
||||||
#define DEFAULT_PROP_CONFIG_FILE "M_DEFAULT"
|
#define DEFAULT_PROP_CONFIG_FILE "M_DEFAULT"
|
||||||
@ -120,6 +120,40 @@ gst_matrox_bayer_mode_get_type (void)
|
|||||||
return matrox_bayer_mode_type;
|
return matrox_bayer_mode_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const GEnumValue matrox_system_enum[] = {
|
||||||
|
{0, "Default from MilConfig", "M_SYSTEM_DEFAULT"},
|
||||||
|
{1, "Clarity UHD", "M_SYSTEM_CLARITY_UHD"},
|
||||||
|
{2, "GigE Vision", "M_SYSTEM_GIGE_VISION"},
|
||||||
|
{3, "Host", "M_SYSTEM_HOST"},
|
||||||
|
{4, "Iris GTR", "M_SYSTEM_IRIS_GTR"},
|
||||||
|
{5, "Morphis Dual/Quad", "M_SYSTEM_MORPHIS"},
|
||||||
|
{6, "Morphis QxT", "M_SYSTEM_MORPHISQXT"},
|
||||||
|
{7, "Orion HD", "M_SYSTEM_ORION_HD"},
|
||||||
|
{8, "Radient eCL", "M_SYSTEM_RADIENT"},
|
||||||
|
{9, "Radient eV-CL", "M_SYSTEM_RADIENTEVCL"},
|
||||||
|
{10, "Radient eV-CLHS", "M_SYSTEM_RADIENTCLHS"},
|
||||||
|
{11, "Radient eV-CXP", "M_SYSTEM_RADIENTCXP"},
|
||||||
|
{12, "RadientPro CL", "M_SYSTEM_RADIENTPRO"},
|
||||||
|
{13, "Rapixo CXP", "M_SYSTEM_RAPIXOCXP"},
|
||||||
|
{14, "Solios", "M_SYSTEM_SOLIOS"},
|
||||||
|
{15, "USB3 Vision", "M_SYSTEM_USB3_VISION"},
|
||||||
|
{0, NULL, NULL},
|
||||||
|
};
|
||||||
|
|
||||||
|
#define GST_TYPE_MATROX_SYSTEM (gst_matrox_system_get_type())
|
||||||
|
static GType
|
||||||
|
gst_matrox_system_get_type (void)
|
||||||
|
{
|
||||||
|
static GType matrox_system_type = 0;
|
||||||
|
|
||||||
|
|
||||||
|
if (!matrox_system_type) {
|
||||||
|
matrox_system_type =
|
||||||
|
g_enum_register_static ("GstMatroxSystem", matrox_system_enum);
|
||||||
|
}
|
||||||
|
return matrox_system_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* pad templates */
|
/* pad templates */
|
||||||
|
|
||||||
@ -198,10 +232,10 @@ gst_matroxsrc_class_init (GstMatroxSrcClass * klass)
|
|||||||
gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_matroxsrc_create);
|
gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_matroxsrc_create);
|
||||||
|
|
||||||
/* Install GObject properties */
|
/* Install GObject properties */
|
||||||
g_object_class_install_property (gobject_class, PROP_DEVICE,
|
g_object_class_install_property (gobject_class, PROP_SYSTEM,
|
||||||
g_param_spec_string ("device", "Device",
|
g_param_spec_enum ("system", "System",
|
||||||
"System descriptor, default is specified in MilConfig",
|
"System descriptor, default is specified in MilConfig",
|
||||||
DEFAULT_PROP_DEVICE,
|
GST_TYPE_MATROX_SYSTEM, DEFAULT_PROP_SYSTEM,
|
||||||
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
|
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
|
||||||
g_object_class_install_property (gobject_class, PROP_BOARD,
|
g_object_class_install_property (gobject_class, PROP_BOARD,
|
||||||
g_param_spec_int ("board", "Board",
|
g_param_spec_int ("board", "Board",
|
||||||
@ -226,13 +260,13 @@ gst_matroxsrc_class_init (GstMatroxSrcClass * klass)
|
|||||||
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TIMEOUT,
|
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TIMEOUT,
|
||||||
g_param_spec_int ("timeout", "Timeout (ms)",
|
g_param_spec_int ("timeout", "Timeout (ms)",
|
||||||
"Timeout in ms (0 to use default)", 0, G_MAXINT, DEFAULT_PROP_TIMEOUT,
|
"Timeout in ms (0 to use default)", 0, G_MAXINT, DEFAULT_PROP_TIMEOUT,
|
||||||
G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE));
|
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
|
||||||
g_object_class_install_property (gobject_class, PROP_BAYER_MODE,
|
g_object_class_install_property (gobject_class, PROP_BAYER_MODE,
|
||||||
g_param_spec_enum ("bayer-mode", "Bayer mode",
|
g_param_spec_enum ("bayer-mode", "Bayer mode",
|
||||||
"Pull Bayer frames as raw bayer, grayscale, or demosaiced RGB",
|
"Pull Bayer frames as raw bayer, grayscale, or demosaiced RGB",
|
||||||
GST_TYPE_MATROX_BAYER_MODE, DEFAULT_PROP_BAYER_MODE,
|
GST_TYPE_MATROX_BAYER_MODE, DEFAULT_PROP_BAYER_MODE,
|
||||||
G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE |
|
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
|
||||||
GST_PARAM_MUTABLE_READY));
|
GST_PARAM_MUTABLE_READY)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -285,7 +319,7 @@ gst_matroxsrc_init (GstMatroxSrc * src)
|
|||||||
gst_base_src_set_format (GST_BASE_SRC (src), GST_FORMAT_TIME);
|
gst_base_src_set_format (GST_BASE_SRC (src), GST_FORMAT_TIME);
|
||||||
|
|
||||||
/* initialize member variables */
|
/* initialize member variables */
|
||||||
src->device = g_strdup (DEFAULT_PROP_DEVICE);
|
src->system = DEFAULT_PROP_SYSTEM;
|
||||||
src->board = DEFAULT_PROP_BOARD;
|
src->board = DEFAULT_PROP_BOARD;
|
||||||
src->channel = DEFAULT_PROP_CHANNEL;
|
src->channel = DEFAULT_PROP_CHANNEL;
|
||||||
src->config_file = g_strdup (DEFAULT_PROP_CONFIG_FILE);
|
src->config_file = g_strdup (DEFAULT_PROP_CONFIG_FILE);
|
||||||
@ -306,8 +340,10 @@ gst_matroxsrc_init (GstMatroxSrc * src)
|
|||||||
|
|
||||||
gst_matroxsrc_reset (src);
|
gst_matroxsrc_reset (src);
|
||||||
|
|
||||||
|
if (src->MilApplication == M_NULL) {
|
||||||
src->MilApplication = gst_matroxsrc_milapp_get ();
|
src->MilApplication = gst_matroxsrc_milapp_get ();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
gst_matroxsrc_set_property (GObject * object, guint property_id,
|
gst_matroxsrc_set_property (GObject * object, guint property_id,
|
||||||
@ -318,9 +354,8 @@ gst_matroxsrc_set_property (GObject * object, guint property_id,
|
|||||||
src = GST_MATROX_SRC (object);
|
src = GST_MATROX_SRC (object);
|
||||||
|
|
||||||
switch (property_id) {
|
switch (property_id) {
|
||||||
case PROP_DEVICE:
|
case PROP_SYSTEM:
|
||||||
g_free (src->device);
|
src->system = g_value_get_enum (value);
|
||||||
src->device = g_strdup (g_value_get_string (value));
|
|
||||||
break;
|
break;
|
||||||
case PROP_NUM_CAPTURE_BUFFERS:
|
case PROP_NUM_CAPTURE_BUFFERS:
|
||||||
if (src->acq_started) {
|
if (src->acq_started) {
|
||||||
@ -363,8 +398,8 @@ gst_matroxsrc_get_property (GObject * object, guint property_id,
|
|||||||
src = GST_MATROX_SRC (object);
|
src = GST_MATROX_SRC (object);
|
||||||
|
|
||||||
switch (property_id) {
|
switch (property_id) {
|
||||||
case PROP_DEVICE:
|
case PROP_SYSTEM:
|
||||||
g_value_set_string (value, src->device);
|
g_value_set_enum (value, src->system);
|
||||||
break;
|
break;
|
||||||
case PROP_NUM_CAPTURE_BUFFERS:
|
case PROP_NUM_CAPTURE_BUFFERS:
|
||||||
g_value_set_uint (value, src->num_capture_buffers);
|
g_value_set_uint (value, src->num_capture_buffers);
|
||||||
@ -415,7 +450,6 @@ gst_matroxsrc_finalize (GObject * object)
|
|||||||
src = GST_MATROX_SRC (object);
|
src = GST_MATROX_SRC (object);
|
||||||
|
|
||||||
/* clean up object here */
|
/* clean up object here */
|
||||||
g_free (src->device);
|
|
||||||
g_free (src->config_file);
|
g_free (src->config_file);
|
||||||
|
|
||||||
gst_matroxsrc_reset (src);
|
gst_matroxsrc_reset (src);
|
||||||
@ -452,11 +486,13 @@ gst_matroxsrc_start (GstBaseSrc * bsrc)
|
|||||||
/* create System */
|
/* create System */
|
||||||
if (src->board == -1) {
|
if (src->board == -1) {
|
||||||
ret =
|
ret =
|
||||||
MsysAlloc (src->MilApplication, src->device, M_DEFAULT, M_DEFAULT,
|
MsysAlloc (src->MilApplication,
|
||||||
|
matrox_system_enum[src->system].value_nick, M_DEFAULT, M_DEFAULT,
|
||||||
&src->MilSystem);
|
&src->MilSystem);
|
||||||
} else {
|
} else {
|
||||||
ret =
|
ret =
|
||||||
MsysAlloc (src->MilApplication, src->device, src->board, M_DEFAULT,
|
MsysAlloc (src->MilApplication,
|
||||||
|
matrox_system_enum[src->system].value_nick, src->board, M_DEFAULT,
|
||||||
&src->MilSystem);
|
&src->MilSystem);
|
||||||
}
|
}
|
||||||
if (ret == M_NULL) {
|
if (ret == M_NULL) {
|
||||||
|
|||||||
@ -54,7 +54,7 @@ struct _GstMatroxSrc
|
|||||||
MIL_ID *MilGrabBufferList;
|
MIL_ID *MilGrabBufferList;
|
||||||
|
|
||||||
/* properties */
|
/* properties */
|
||||||
gchar *device;
|
gint system;
|
||||||
gint board;
|
gint board;
|
||||||
gint channel;
|
gint channel;
|
||||||
gchar *config_file;
|
gchar *config_file;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user