 |
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; }
90 bool connectTee(GstElement* tee, GstElement* queue,
const QString& queue_name);
131 bool createElement(GstElement** elem,
const QString& elem_name,
const QString& name);
183 std::string(
"There's a wrong value somewhere") + value;
188 template<
typename GlibObject,
typename T>
195 void setValue(GlibObject*
object,
const gchar* key, T value, std::true_type)
204 template<
typename GlibObject,
typename T>
211 void setValue(GlibObject*
object,
const gchar* key, T value, std::false_type)
213 g_object_set(G_OBJECT(
object), key, value,
nullptr);
217 template<
typename GlibObject,
typename T>
224 void setValue(GlibObject*
object,
const gchar* key, T value)
226 constexpr
bool b = (std::is_integral<T>::value) && (
sizeof(T) >
sizeof(bool));
227 setValue(
object, key, value, std::integral_constant<bool, b>());
231 template<
typename GlibObject,
typename First>
238 void setValues(GlibObject*
object,
const gchar* key, First value)
244 template<
typename GlibObject,
typename First,
typename... Args>
252 void setValues(GlibObject*
object,
const gchar* key, First value, Args... args)
255 setValues(
object, std::forward<Args>(args)...);
259 template<
typename GlibObject>
269 g_object_set_property(G_OBJECT(
object), key, &val);
273 template<
typename GlibObject>
282 GValue val =
getInt(value);
283 g_object_set_property(G_OBJECT(
object), key, &val);
288 template<
typename GlibObject>
298 g_object_set_property(G_OBJECT(
object), key, &val);
302 template<
typename GlibObject>
312 g_object_set_property(G_OBJECT(
object), key, &val);
349 bool setState(GstElement* element, GstState state);
394 void unlinkElements(
const Elements& elements);
403 void removeElements(GstBin* bin,
const Elements& elements);
413 #endif // ENGINE_UTILS_H
MilliSeconds getPositionMs(GstElement *element)
get_position_ms
void configureQueue(GstElement *queue, guint64 max_time_ms=100)
config_queue
void setPassthrough(GstElement *e, bool b)
set_passthrough
bool hasElement(GstBin *bin, GstElement *element)
has_element
bool isPluginAvailable(const gchar *str)
check_plugin_available
GValue getUint(guint value)
get_uint
void unrefElements(const Elements &elements)
unref_elements
bool addElements(GstBin *bin, const Elements &elements)
add_elements
void configureLame(GstElement *lame)
config_lame
Definition: EngineUtils.h:33
void setValues(GlibObject *object, const gchar *key, First value)
set_values
Definition: EngineUtils.h:238
GValue getInt64(gint64 value)
get_int64
bool createElement(GstElement **elem, const QString &elem_name)
create_element
void configureSink(GstElement *sink)
config_sink
void setInt64Value(GlibObject *object, const gchar *key, gint64 value)
set_int64_value
Definition: EngineUtils.h:266
Class for compiler warnings.
Definition: EngineUtils.h:180
Definition: EngineUtils.h:47
bool connectTee(GstElement *tee, GstElement *queue, const QString &queue_name)
tee_connect
void setValue(GlibObject *object, const gchar *key, T value, std::true_type)
set_value
Definition: EngineUtils.h:195
void setIntValue(GlibObject *object, const gchar *key, gint value)
set_int_value
Definition: EngineUtils.h:280
bool isLameAvailable()
check_lame_available
bool testAndError(void *element, const QString &errorstr)
test_and_error
void setUint64Value(GlibObject *object, const gchar *key, guint64 value)
set_uint64_value
Definition: EngineUtils.h:295
MilliSeconds getUpdateInterval()
get_update_interval
MilliSeconds getTimeToGo(GstElement *element)
get_time_to_go
bool testAndErrorBool(bool b, const QString &errorstr)
test_and_error_bool
MilliSeconds getDurationMs(GstElement *element)
get_durationMs
void setUintValue(GlibObject *object, const gchar *key, guint value)
set_uint_value
Definition: EngineUtils.h:309
bool isPitchAvailable()
check_pitch_available
GValue getInt(gint value)
get_int
GstState getState(GstElement *element)
get_state
GValue getUint64(guint64 value)
get_uint64
bool createGhostPad(GstBin *bin, GstElement *e)
create_ghost_pad
bool createBin(GstElement **bin, const Elements &elements, const QString &prefix)
create_bin
bool setState(GstElement *element, GstState state)
set_state
bool linkElements(const Elements &elements)
link_elements