On Wed, 2005-02-23 at 18:55 +0000, Orton, Yves wrote:

> > I tried to explain that in my original mail.  The GStreame bindings, 
> > just like Gtk2 or Gnome2, are different.  You don't just use one 
> > constructor once.  Typical applications will have to create many 
> > Gst::Element's, a few Gst::Structure's, some Gst::Index's,  
> > Gst::Caps's, a Gst::Clock, etc., etc.  Try imagining how long this  
> > paragraph would be if I used Multimedia::GStreamer as the namespace.
> 
> Export a constant Gst() that equals Multimedia::Gstreamer.
> 
> Ie the moral equivelent of 
> 
>   use constant Gst=>'Multimedia::Gstreamer';
> 
>   Gst->new(....);

I just realized that this won't work.  I don't just need Gst to be an
alias for Media::GStreamer, I need Gst::* to be an alias for
Media::GStreamer::*.  That also seems to rule out the aliased.pm
approach.

> Or make a factory sub: 
> 
> sub GstNew { 
>   my $class="Multimeadia::Gstreamer::".shift(@_); 
>   return $class->new(@_); 
> }
> 
> And also possibly a clone method:
> 
> my $elem=GstNew("Clock"); 
> my $other_elem=$elem->clone();

That would work, but seems way too hacky to me.  It would also deviate
quite a bit from the C API, which I want to avoid.  Thanks for the
suggestion nonetheless, though.

-- 
Bye,
-Torsten

Reply via email to