 |
Sayonara Player
|
21 #ifndef ENGINE_UTILS_H
22 #define ENGINE_UTILS_H
24 #include "Utils/typedefs.h"
26 #include <type_traits>
59 T* data()
const {
return obj; }
67 void config_queue(GstElement* queue, gulong max_time_ms=100);
88 bool tee_connect(GstElement* tee, GstElement* queue,
const QString& queue_name);
129 bool create_element(GstElement** elem,
const QString& elem_name,
const QString& name);
181 std::string(
"There's a wrong value somewhere") + value;
186 template<
typename GlibObject,
typename T>
193 void set_value(GlibObject*
object,
const gchar* key, T value, std::true_type)
202 template<
typename GlibObject,
typename T>
209 void set_value(GlibObject*
object,
const gchar* key, T value, std::false_type)
211 g_object_set(G_OBJECT(
object), key, value,
nullptr);
215 template<
typename GlibObject,
typename T>
222 void set_value(GlibObject*
object,
const gchar* key, T value)
224 constexpr
bool b = (std::is_integral<T>::value) && (
sizeof(T) >
sizeof(bool));
225 set_value(
object, key, value, std::integral_constant<bool, b>());
229 template<
typename GlibObject,
typename First>
236 void set_values(GlibObject*
object,
const gchar* key, First value)
242 template<
typename GlibObject,
typename First,
typename... Args>
250 void set_values(GlibObject*
object,
const gchar* key, First value, Args... args)
253 set_values(
object, std::forward<Args>(args)...);
257 template<
typename GlibObject>
267 g_object_set_property(G_OBJECT(
object), key, &val);
271 template<
typename GlibObject>
281 g_object_set_property(G_OBJECT(
object), key, &val);
286 template<
typename GlibObject>
296 g_object_set_property(G_OBJECT(
object), key, &val);
300 template<
typename GlibObject>
310 g_object_set_property(G_OBJECT(
object), key, &val);
347 bool set_state(GstElement* element, GstState state);
375 bool create_bin(GstElement** bin,
const Elements& elements,
const QString& prefix);
392 void unlink_elements(
const Elements& elements);
399 bool add_elements(GstBin* bin,
const Elements& elements);
401 void remove_elements(GstBin* bin,
const Elements& elements);
411 #endif // ENGINE_UTILS_H
bool create_ghost_pad(GstBin *bin, GstElement *e)
create_ghost_pad
bool add_elements(GstBin *bin, const Elements &elements)
add_elements
MilliSeconds get_time_to_go(GstElement *element)
get_time_to_go
void set_int64_value(GlibObject *object, const gchar *key, gint64 value)
set_int64_value
Definition: EngineUtils.h:264
bool check_pitch_available()
check_pitch_available
GValue get_int(gint value)
get_int
void config_sink(GstElement *sink)
config_sink
bool set_state(GstElement *element, GstState state)
set_state
void set_values(GlibObject *object, const gchar *key, First value)
set_values
Definition: EngineUtils.h:236
GValue get_int64(gint64 value)
get_int64
bool check_plugin_available(const gchar *str)
check_plugin_available
void set_uint_value(GlibObject *object, const gchar *key, guint value)
set_uint_value
Definition: EngineUtils.h:307
void set_passthrough(GstElement *e, bool b)
set_passthrough
void unref_elements(const Elements &elements)
unref_elements
void set_uint64_value(GlibObject *object, const gchar *key, guint64 value)
set_uint64_value
Definition: EngineUtils.h:293
bool test_and_error(void *element, const QString &errorstr)
test_and_error
MilliSeconds get_position_ms(GstElement *element)
get_position_ms
Definition: EngineUtils.h:33
bool check_lame_available()
check_lame_available
GValue get_uint64(guint64 value)
get_uint64
Class for compiler warnings.
Definition: EngineUtils.h:177
Definition: EngineUtils.h:46
bool tee_connect(GstElement *tee, GstElement *queue, const QString &queue_name)
tee_connect
GValue get_uint(guint value)
get_uint
void set_value(GlibObject *object, const gchar *key, T value, std::true_type)
set_value
Definition: EngineUtils.h:193
MilliSeconds get_duration_ms(GstElement *element)
get_duration_ms
bool create_element(GstElement **elem, const QString &elem_name)
create_element
bool link_elements(const Elements &elements)
link_elements
bool test_and_error_bool(bool b, const QString &errorstr)
test_and_error_bool
void config_queue(GstElement *queue, gulong max_time_ms=100)
config_queue
void set_int_value(GlibObject *object, const gchar *key, gint value)
set_int_value
Definition: EngineUtils.h:278
bool has_element(GstBin *bin, GstElement *element)
has_element
GstState get_state(GstElement *element)
get_state
bool create_bin(GstElement **bin, const Elements &elements, const QString &prefix)
create_bin
MilliSeconds get_update_interval()
get_update_interval
void config_lame(GstElement *lame)
config_lame