2011-01-10 24 views
1

SWIGを使用してGstreamer関数をPHPにラップしようとしていますが、Cコールバックの処理方法を理解できません。 CからPHP関数を呼び出せますか?あなたは次のようなコールバックをどのように扱いますか?SWIGでラップCコールバック

#include <gst/gst.h> 

// ... 

static gboolean my_callback(GstBus *bus, GstMessage *message, gpointer user_data) { 
    g_print("Got %s message\n", GST_MESSAGE_TYPE_NAME(message)); 

    switch(GST_MESSAGE_TYPE(message)) { 
    // ... 
    } 

    return TRUE; 
} 

main(gint argc, gchar *argv[]) 
{ 
    GstElement *pipeline; 
    GstBus *bus; 

    gst_init (&argc, &argv); 

    pipeline = gst_pipeline_new ("my_pipeline"); 

    /* add handler */ 
    bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline)); 
    gst_bus_add_watch (bus, my_bus_callback, NULL); // ------------< 
    gst_object_unref (bus); 

    // ... 
} 

答えて

1

最新のswigソース(2.0.1)をダウンロードした場合、PHPでコールバックを使用する例があります。これはswig-2.0.1/Examples/php/callbackディレクトリにあります。

+1

答えに感謝しますが、この例ではC++を使用しています – Fuerteflojo

関連する問題