23 #include "childproxy.h"
26 # pragma warning(push)
27 # pragma warning(disable:4250) //Bin inherits QGst::Object::ref/unref via dominance
31 # include <boost/preprocessor.hpp>
50 static BinPtr create(
const char *name = NULL);
66 static BinPtr fromDescription(
const char *description,
67 BinFromDescriptionOption ghostUnlinkedPads = Ghost);
69 static inline BinPtr fromDescription(
const QString & description,
70 BinFromDescriptionOption ghostUnlinkedPads = Ghost);
95 template <
typename First,
typename Second,
typename... Rest>
96 inline void add(
const First & first,
const Second & second,
const Rest & ... rest)
103 #else //QGLIB_HAVE_CXX0X
105 # ifndef QGST_BIN_ADD_MAX_ARGS
106 # define QGST_BIN_ADD_MAX_ARGS 10
109 # define QGST_BIN_ADD_DECLARATION(z, n, data) \
110 inline void add(BOOST_PP_ENUM_PARAMS(n, const ElementPtr & e)) \
113 add(BOOST_PP_ENUM_SHIFTED_PARAMS(n, e)); \
116 BOOST_PP_REPEAT_FROM_TO(2, BOOST_PP_INC(QGST_BIN_ADD_MAX_ARGS), QGST_BIN_ADD_DECLARATION, dummy)
118 # undef QGST_BIN_ADD_DECLARATION
120 #endif //QGLIB_HAVE_CXX0X
147 ElementPtr getElementByName(
const char *name, RecursionType recursionType = RecurseDown)
const;
163 PadPtr findUnlinkedPad(PadDirection direction)
const;
165 bool recalculateLatency();
171 return fromDescription(description.toUtf8().constData(), ghostUnlinkedPads);
174 template <
typename T>
186 # pragma warning(pop)