void RefPointerTest::messageDynamicCastTest() { QGst::BinPtr bin = QGst::Bin::create(); QGst::MessagePtr msg = QGst::ApplicationMessage::create(bin); QVERIFY(!msg.isNull()); QVERIFY(!msg.dynamicCast<QGst::ApplicationMessage>().isNull()); QVERIFY(msg.dynamicCast<QGst::EosMessage>().isNull()); }
void RefPointerTest::messageDynamicCastTest() { QGst::Structure s("mystruct"); s.setValue("frequency", 123456); QGst::BinPtr bin = QGst::Bin::create(); QGst::MessagePtr msg = QGst::ApplicationMessage::create(bin, s); QVERIFY(!msg.isNull()); QVERIFY(!msg.dynamicCast<QGst::ApplicationMessage>().isNull()); QVERIFY(msg.dynamicCast<QGst::EosMessage>().isNull()); }
void RefPointerTest::cppWrappersTest() { QGst::ElementPtr e = QGst::ElementFactory::make("playbin"); QVERIFY(!e.isNull()); { QGst::PipelinePtr pipeline = e.dynamicCast<QGst::Pipeline>(); QVERIFY(!pipeline.isNull()); //the C++ wrappers must be the same QCOMPARE(static_cast<QGlib::RefCountedObject*>(pipeline.operator->()), static_cast<QGlib::RefCountedObject*>(e.operator->())); } { QGst::ChildProxyPtr proxy = e.dynamicCast<QGst::ChildProxy>(); QVERIFY(!proxy.isNull()); //the C++ wrappers must be the same QCOMPARE(static_cast<QGlib::RefCountedObject*>(proxy.operator->()), static_cast<QGlib::RefCountedObject*>(e.operator->())); } { //new wrap() should give the same C++ instance GstElement *gobj = e; QGst::ElementPtr e2 = QGst::ElementPtr::wrap(gobj); QCOMPARE(static_cast<QGlib::RefCountedObject*>(e2.operator->()), static_cast<QGlib::RefCountedObject*>(e.operator->())); } { QGst::StreamVolumePtr sv = e.dynamicCast<QGst::StreamVolume>(); QVERIFY(!sv.isNull()); //now the C++ wrapper must not be the same, since Pipeline does not inherit StreamVolume QVERIFY(static_cast<QGlib::RefCountedObject*>(sv.operator->()) != static_cast<QGlib::RefCountedObject*>(e.operator->())); } { QGst::Structure s("mystruct"); s.setValue("days", 365); QGst::MessagePtr msg = QGst::ApplicationMessage::create(e, s); QVERIFY(!msg.isNull()); QGst::MessagePtr msg2 = msg; QCOMPARE(static_cast<QGlib::RefCountedObject*>(msg.operator->()), static_cast<QGlib::RefCountedObject*>(msg2.operator->())); QVERIFY(msg2 == msg); QGst::MessagePtr msg3 = QGst::MessagePtr::wrap(msg2); QVERIFY(static_cast<QGlib::RefCountedObject*>(msg3.operator->()) != static_cast<QGlib::RefCountedObject*>(msg2.operator->())); QVERIFY(msg3 == msg2); } { QGst::MessagePtr msg = QGst::ElementMessage::create(e); QGst::MessagePtr msg2 = msg; QCOMPARE(static_cast<QGlib::RefCountedObject*>(msg.operator->()), static_cast<QGlib::RefCountedObject*>(msg2.operator->())); QVERIFY(msg2 == msg); QGst::MessagePtr msg3 = QGst::MessagePtr::wrap(msg2); QVERIFY(static_cast<QGlib::RefCountedObject*>(msg3.operator->()) != static_cast<QGlib::RefCountedObject*>(msg2.operator->())); QVERIFY(msg3 == msg2); } }