2011-08-18 15 views
2

私はmojoハイブリッドアプリからpdkプラグインを呼び出そうとしており、enyoアプリでも同じことを試しています。どちらの場合も、私のpdkプラグインは、興味深いものがenyoの場合です。プラグイン登録が完了した後に送信されるplugin_ready応答を受け取りました。hp webos、ハイブリッドアプリでpdkプラグインが無効になっています。

web-osサイトでは、pdkプラグインの問題で、それが見えなくなってしまうと述べました。

しかし、解決方法が見つかりませんでした。

これは

PDL_bool powerCall(PDL_JSParameters *params) { 
    runsine(); 
    char *reply = "Done"; 
    PDL_JSReply(params, reply); 
return PDL_TRUE; 


} 

int main(){ 
    int result = SDL_Init(SDL_INIT_VIDEO); 


    PDL_Init(0); 

    PDL_RegisterJSHandler("pawar", powerCall); 

    PDL_JSRegistrationComplete(); 

    PDL_CallJS("ready", NULL, 0); // this is for enyo 
    PDL_Quit(); 
    SDL_Quit(); 
return 0; 
} 

は、この問題を解決する方法を私に提案してください、私のプラグインがどのように見えるかです。私はその非常に単純な仕事を知っており、この長い時間を取ることを挫折しています。

おかげ シャンカールプラグインあなたが「準備完了」関数を呼び出した後、イベントループを入力し、あなたがPDL_Quit()とSDL_Quitを呼び出す前に()すべきで

答えて

2

。イベントループを持たないため、プラグイン処理が直ちに終了します。ここで

は、そのPDKに付属の「シンプル」アプリに基づく例です:

int main(){ 
    int result = SDL_Init(SDL_INIT_VIDEO); 
    PDL_Init(0); 
    PDL_RegisterJSHandler("pawar", powerCall); 
    PDL_JSRegistrationComplete(); 
    PDL_CallJS("ready", NULL, 0); // this is for enyo 

    atexit(SDL_Quit); 
    atexit(PDL_Quit); 

    SDL_Event Event; 
    bool paused = false; 

    while (1) { 
     bool gotEvent; 
     if (paused) { 
      SDL_WaitEvent(&Event); 
      gotEvent = true; 
     } 
     else { 
      gotEvent = SDL_PollEvent(&Event); 
     } 

     while (gotEvent) { 
      switch (Event.type) { 
       case SDL_ACTIVEEVENT: 
        if (Event.active.state == SDL_APPACTIVE) { 
         paused = !Event.active.gain; 
        } 
        break; 

       case SDL_QUIT: 
        // We exit anytime we get a request to quit the app 
        // all shutdown code is registered via atexit() so this is clean. 
        exit(0); 
        break; 

       // handle any other events interesting to your plugin here 

       default: 
        break; 
      } 
      gotEvent = SDL_PollEvent(&Event); 
     } 
    } 
    return 0; 
} 
関連する問題