Re: [Vala] How to implement the get_type method of Gst.URIHandler interface in vala?



Thank you for the information, but it doesn't seem to be related to my case.

To be clear, I was referring to the following interface:


     struct GstURIHandlerInterface

struct GstURIHandlerInterface {
  GTypeInterface parent;

  /* vtable */
  /* querying capabilities */
  GstURIType             (* get_type)           (GType type);
  const gchar * const *  (* get_protocols)      (GType type);

  /* using the interface */
  gchar *                (* get_uri)            (GstURIHandler * handler);
  gboolean               (* set_uri)            (GstURIHandler * handler,
                                                 const gchar   * uri,
                                                 GError       ** error);
};


It has the "get_type" method that needs to be implemented in my vala code. In gst_element_register() in gstelementfactory.c, it checks the type by calling get_type():

...
    if (!iface || !iface->get_type || !iface->get_protocols)
      goto urierror;
...

Regards,

LM

On 3/16/2014 6:08 AM, Luca Bruno wrote:
Try [CCode (vfunc = "get_type")] or such, see gio vapi for some examples about read_fn.


On Sun, Mar 16, 2014 at 10:05 AM, Abderrahim Kitouni <a kitouni gmail com <mailto:a kitouni gmail com>> wrote:

    Hi,

    I've looked at thé gst docs and the vfunc for get_uri_type is
    called get_type.

    HTH,

    On March 16, 2014 9:19:34 AM CET, Luca Bruno
    <lethalman88 gmail com <mailto:lethalman88 gmail com>> wrote:

        I don't understand what you mean by gstreamer uses get_type, can you point
        to the specific C method?


        On Sat, Mar 15, 2014 at 4:05 PM, Lei Miao <leimiao09 gmail com  <mailto:leimiao09 gmail com>> wrote:


            Thank you for the response. I could implement
            get_uri_type, but the problem is that gstreamer uses
            get_type. If I can implement get_type in vala, then I
            don't have to modify gstreamer code. Regards, LM On Mar
            14, 2014 5:30 PM, "Luca Bruno" <lethalman88 gmail com
            <mailto:lethalman88 gmail com>> wrote:

                I don't understand why you are using get_type.
                Implement get_uri_type. On Fri, Mar 14, 2014 at 10:21
                PM, Lei Miao <leimiao09 gmail com
                <mailto:leimiao09 gmail com>> wrote:

                    Hi, I am trying to write a gstreamer 1.0 plugin
                    using vala. However, I am having trouble to
                    implement the get_type() method of the
                    Gst.URIHandler interface defined here:
                    
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandlerInterface
                    . In particular, my class inherits Gst.bin and
                    implements Gst.URIHandler interface: public class
                    StreamingSource: Gst.Bin, Gst.URIHandler { ...
                    public URIType get_type (Type type) { return
                    URIType.SRC; } ... } When I compile the vala code
                    to c code, I get the following error:
                    StreamingSource.get_type hides inherited method
                    `GLib.Object.get_type'. Use the `new' keyword if
                    hiding was intentional public URIType get_type
                    (Type type) { return URIType.SRC; } The problem
                    seems to be that GLib.Object also has a method
                    called "get_type". So in this case, does anybody
                    know how I can implement the "get_type" method of
                    Gst.URIHandler? It's worth noting that according
                    to this link:
                    http://references.valadoc.org/#!api=gstreamer-1.0/Gst.URIHandler
                    <http://references.valadoc.org/#%21api=gstreamer-1.0/Gst.URIHandler>
                    , the method is called get_uri_type() instead.
                    This is inconsistent with the gstreamer 1.0
                    reference manual. In fact, Gstreamer code has both
                    methods defined, but it uses get_type() for
                    element registration. Regards, LM
                    ------------------------------------------------------------------------
                    vala-list mailing list vala-list gnome org
                    <mailto:vala-list gnome org>
                    https://mail.gnome.org/mailman/listinfo/vala-list

                -- www.debian.org <http://www.debian.org> - The
                Universal Operating System



-- Sent from my Android device with K-9 Mail. Please excuse my brevity.




--
www.debian.org <http://www.debian.org> - The Universal Operating System



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]