25 #include "Utils/typedefs.h" 26 #include <type_traits> 35 void config_queue(GstElement* queue, gulong max_time_ms=100);
36 void config_sink(GstElement* sink);
37 void config_lame(GstElement* lame);
39 bool tee_connect(GstElement* tee, GstElement* queue,
const QString& queue_name);
40 bool has_element(GstBin* bin, GstElement* element);
41 bool test_and_error(
void* element,
const QString& errorstr);
42 bool test_and_error_bool(
bool b,
const QString& errorstr);
43 bool create_element(GstElement** elem,
const QString& elem_name);
44 bool create_element(GstElement** elem,
const QString& elem_name,
const QString& name);
46 void set_passthrough(GstElement* e,
bool b);
48 GValue get_int64(gint64 value);
49 GValue get_uint64(guint64 value);
50 GValue get_uint(guint value);
51 GValue get_int(gint value);
58 std::string(
"There's a wrong value somewhere") + value;
62 template<
typename GlibObject,
typename T>
63 void set_value(GlibObject*
object,
const gchar* key, T value, std::true_type)
71 template<
typename GlibObject,
typename T>
72 void set_value(GlibObject*
object,
const gchar* key, T value, std::false_type)
74 g_object_set(G_OBJECT(
object), key, value,
nullptr);
77 template<
typename GlibObject,
typename T>
78 void set_value(GlibObject*
object,
const gchar* key, T value)
80 constexpr
bool b = (std::is_integral<T>::value) && (
sizeof(T) >
sizeof(bool));
81 set_value(
object, key, value, std::integral_constant<bool, b>());
84 template<
typename GlibObject,
typename First>
85 void set_values(GlibObject*
object,
const gchar* key, First value)
87 set_value(
object, key, value);
90 template<
typename GlibObject,
typename First,
typename... Args>
91 void set_values(GlibObject*
object,
const gchar* key, First value, Args... args)
93 set_value(
object, key, value);
94 set_values(
object, std::forward<Args>(args)...);
97 template<
typename GlibObject>
98 void set_int64_value(GlibObject*
object,
const gchar* key, gint64 value)
100 GValue val = get_int64(value);
101 g_object_set_property(G_OBJECT(
object), key, &val);
104 template<
typename GlibObject>
105 void set_int_value(GlibObject*
object,
const gchar* key, gint value)
107 GValue val = get_int(value);
108 g_object_set_property(G_OBJECT(
object), key, &val);
111 template<
typename GlibObject>
112 void set_uint64_value(GlibObject*
object,
const gchar* key, guint64 value)
114 GValue val = get_uint64(value);
115 g_object_set_property(G_OBJECT(
object), key, &val);
117 template<
typename GlibObject>
118 void set_uint_value(GlibObject*
object,
const gchar* key, guint value)
120 GValue val = get_uint(value);
121 g_object_set_property(G_OBJECT(
object), key, &val);
124 MilliSeconds get_duration_ms(GstElement* element);
125 MilliSeconds get_position_ms(GstElement* element);
126 MilliSeconds get_time_to_go(GstElement* element);
128 GstState get_state(GstElement* element);
129 bool set_state(GstElement* element, GstState state);
131 bool check_plugin_available(
const gchar* str);
132 bool check_lame_available();
133 bool check_pitch_available();
135 bool create_bin(GstElement** bin,
const QList<GstElement*>& elements,
const QString& prefix);
137 bool create_ghost_pad(GstBin* bin, GstElement* e);
144 #endif // ENGINEUTILS_H Definition: AbstractEngine.h:32
Definition: EngineUtils.h:54
Definition: org_mpris_media_player2_adaptor.h:20