Murray Cumming wrote:
> On Tue, 2007-12-11 at 21:37 -0500, José Alburquerque wrote:
>   
>> The good news is that I was able to implement a Gst::Message::wrap() 
>> method and modify gstmm to use it for wrapping messages.  Unfortunately, 
>> I think I've reached my C++ knowledge limit :-).  It looks like the 
>> Gst::Message::wrap() method should return the appropriate class based on 
>> the "message type", however, I tested with the modified 
>> test-mini-object-wrap test (to use the new Gst::Message::wrap() method) 
>> and also by trying to cast a Gst::Message (wrapped form a 
>> Gst::MessageError) to a Gst::MessageError in the on_bus_message() 
>> function of the ogg player example (by using RefPtr<...>::cast_dynamic) 
>> and both tests were unsuccessful.
>>
>> At this point I'm pretty much stuck so I'm hoping you might be able to 
>> shed some light on what I'm doing.  Would you be able to look at my 
>> changes?  Thanks.
>>     
>
> In Gst::Message::wrap() I changed it to just use new rather than
> wrap_auto() and reinterpret_cast<> because that seemed simpler. I had to
> add constructors for that. It seems to work now (in svn). I added a new
> test for this new wrap() function.
>
> I also changed the calls to wrap() to Gst::Message::wrap() to avoid any
> confusion.
>
>   

I can see now that casting and constructors are related.  I'm working 
with classes that have multiple inheritance and sub-constructors that 
rely on parent constructors (and dealing with casting as well), but I 
have to admit, I couldn't remember (or maybe it never really registered) 
that constructors are used for casting.  I'll have to review some C++ a 
little.  Works fine.  Thanks.

BTW, I was just testing the signal version of the ogg player and it 
seems to not be transmitting the signal.  I'm thinking of looking into 
this a bit and trying to move further into the examples.  I hope it's 
not inconvenient for me to continue to send patches as I modify and add 
things to gstmm.  I wish I could check stuff in, but at least my work 
can be checked before a check-in just in case something is wrong.

-Jose
_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to