Files
go-gst/gst/g_param_spec_constructors.go

132 lines
4.1 KiB
Go

package gst
// #include "gst.go.h"
import "C"
import "github.com/tinyzimmer/go-glib/glib"
// NewStringParam returns a new ParamSpec that will hold a string value.
func NewStringParam(name, nick, blurb string, defaultValue *string, flags ParameterFlags) *ParamSpec {
var cdefault *C.gchar
if defaultValue != nil {
cdefault = C.CString(*defaultValue)
}
paramSpec := C.g_param_spec_string(
(*C.gchar)(C.CString(name)),
(*C.gchar)(C.CString(nick)),
(*C.gchar)(C.CString(blurb)),
(*C.gchar)(cdefault),
C.GParamFlags(flags),
)
return &ParamSpec{paramSpec: paramSpec}
}
// NewBoolParam creates a new ParamSpec that will hold a boolean value.
func NewBoolParam(name, nick, blurb string, defaultValue bool, flags ParameterFlags) *ParamSpec {
paramSpec := C.g_param_spec_boolean(
(*C.gchar)(C.CString(name)),
(*C.gchar)(C.CString(nick)),
(*C.gchar)(C.CString(blurb)),
gboolean(defaultValue),
C.GParamFlags(flags),
)
return &ParamSpec{paramSpec: paramSpec}
}
// NewIntParam creates a new ParamSpec that will hold a signed integer value.
func NewIntParam(name, nick, blurb string, min, max, defaultValue int, flags ParameterFlags) *ParamSpec {
paramSpec := C.g_param_spec_int(
(*C.gchar)(C.CString(name)),
(*C.gchar)(C.CString(nick)),
(*C.gchar)(C.CString(blurb)),
C.gint(min),
C.gint(max),
C.gint(defaultValue),
C.GParamFlags(flags),
)
return &ParamSpec{paramSpec: paramSpec}
}
// NewUintParam creates a new ParamSpec that will hold an unsigned integer value.
func NewUintParam(name, nick, blurb string, min, max, defaultValue uint, flags ParameterFlags) *ParamSpec {
paramSpec := C.g_param_spec_uint(
(*C.gchar)(C.CString(name)),
(*C.gchar)(C.CString(nick)),
(*C.gchar)(C.CString(blurb)),
C.guint(min),
C.guint(max),
C.guint(defaultValue),
C.GParamFlags(flags),
)
return &ParamSpec{paramSpec: paramSpec}
}
// NewInt64Param creates a new ParamSpec that will hold a signed 64-bit integer value.
func NewInt64Param(name, nick, blurb string, min, max, defaultValue int64, flags ParameterFlags) *ParamSpec {
paramSpec := C.g_param_spec_int64(
(*C.gchar)(C.CString(name)),
(*C.gchar)(C.CString(nick)),
(*C.gchar)(C.CString(blurb)),
C.gint64(min),
C.gint64(max),
C.gint64(defaultValue),
C.GParamFlags(flags),
)
return &ParamSpec{paramSpec: paramSpec}
}
// NewUint64Param creates a new ParamSpec that will hold an unsigned 64-bit integer value.
func NewUint64Param(name, nick, blurb string, min, max, defaultValue uint64, flags ParameterFlags) *ParamSpec {
paramSpec := C.g_param_spec_uint64(
(*C.gchar)(C.CString(name)),
(*C.gchar)(C.CString(nick)),
(*C.gchar)(C.CString(blurb)),
C.guint64(min),
C.guint64(max),
C.guint64(defaultValue),
C.GParamFlags(flags),
)
return &ParamSpec{paramSpec: paramSpec}
}
// NewFloat32Param creates a new ParamSpec that will hold a 32-bit float value.
func NewFloat32Param(name, nick, blurb string, min, max, defaultValue float32, flags ParameterFlags) *ParamSpec {
paramSpec := C.g_param_spec_float(
(*C.gchar)(C.CString(name)),
(*C.gchar)(C.CString(nick)),
(*C.gchar)(C.CString(blurb)),
C.gfloat(min),
C.gfloat(max),
C.gfloat(defaultValue),
C.GParamFlags(flags),
)
return &ParamSpec{paramSpec: paramSpec}
}
// NewFloat64Param creates a new ParamSpec that will hold a 64-bit float value.
func NewFloat64Param(name, nick, blurb string, min, max, defaultValue float64, flags ParameterFlags) *ParamSpec {
paramSpec := C.g_param_spec_double(
(*C.gchar)(C.CString(name)),
(*C.gchar)(C.CString(nick)),
(*C.gchar)(C.CString(blurb)),
C.gdouble(min),
C.gdouble(max),
C.gdouble(defaultValue),
C.GParamFlags(flags),
)
return &ParamSpec{paramSpec: paramSpec}
}
// NewBoxedParam creates a new ParamSpec containing a boxed type. Some helper type castings are included
// in these bindings.
func NewBoxedParam(name, nick, blurb string, boxedType glib.Type, flags ParameterFlags) *ParamSpec {
paramSpec := C.g_param_spec_boxed(
(*C.gchar)(C.CString(name)),
(*C.gchar)(C.CString(nick)),
(*C.gchar)(C.CString(blurb)),
C.GType(boxedType),
C.GParamFlags(flags),
)
return &ParamSpec{paramSpec: paramSpec}
}