Changeset 5335:dba934a2d1e0 in roaraudio


Ignore:
Timestamp:
12/09/11 18:13:39 (12 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

cleanup and updates to roardl API

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • include/libroar/roardl.h

    r5327 r5335  
    9898                                   } 
    9999 
     100// general stuff: 
    100101#define ROAR_DL_PLUGIN_ABORT_LOADING(err) roar_err_set((err)); return NULL 
    101102#define ROAR_DL_PLUGIN_CHECK_VERSIONS(app,abi) if ( roar_dl_para_check_version(para, (app), (abi)) == -1 ) return NULL 
     103 
     104// register stuff: 
    102105#define ROAR_DL_PLUGIN_REG(fn, funcptr) (lib.func[(fn)] = (funcptr)) 
    103106#define ROAR_DL_PLUGIN_REG_UNLOAD(func) (lib.unload = (func)) 
     
    106109                                                 lib.global_data_init = &(init);       \ 
    107110                                                 lib.global_data_pointer = (void*)&(ptr) 
     111 
     112// meta data stuff: 
     113#define ROAR_DL_PLUGIN_META_PRODUCT(x)      (libname.libname     = (x)) 
     114#define ROAR_DL_PLUGIN_META_PRODUCT_NV(name,vendor)      ROAR_DL_PLUGIN_META_PRODUCT(name " <" vendor ">") 
     115#define ROAR_DL_PLUGIN_META_PRODUCT_NIV(name,id,vendor)  ROAR_DL_PLUGIN_META_PRODUCT(name " <" #id "/" vendor ">") 
     116#define ROAR_DL_PLUGIN_META_VERSION(x)      (libname.libversion  = (x)) 
     117#define ROAR_DL_PLUGIN_META_ABI(x)          (libname.abiversion  = (x)) 
     118#define ROAR_DL_PLUGIN_META_DESC(x)         (libname.description = (x)) 
     119#define ROAR_DL_PLUGIN_META_CONTACT(x)      (libname.contact = (x)) 
     120#define ROAR_DL_PLUGIN_META_CONTACT_FL(first,last)        ROAR_DL_PLUGIN_META_CONTACT(first " " last) 
     121#define ROAR_DL_PLUGIN_META_CONTACT_FLE(first,last,email) ROAR_DL_PLUGIN_META_CONTACT(first " " last " <" email ">") 
     122#define ROAR_DL_PLUGIN_META_CONTACT_FLNE(first,last,nick,email) ROAR_DL_PLUGIN_META_CONTACT(first " \"" nick "\" " last " <" email ">") 
     123#define ROAR_DL_PLUGIN_META_AUTHORS(x)      (libname.authors = (x)) 
     124#define ROAR_DL_PLUGIN_META_LICENSE(x)      (libname.license = (x)) 
     125#define ROAR_DL_PLUGIN_META_LICENSE_TAG(x)  ROAR_DL_PLUGIN_META_LICENSE(ROAR_LICENSE_ ## x) 
    108126 
    109127enum roar_dl_loadercmd { 
     
    116134 ROAR_DL_LOADER_POSTUNLOAD 
    117135}; 
     136 
     137struct roar_plugincontainer; 
    118138 
    119139struct roar_dl_librarypara { 
     
    147167                            // Examples: libroar2, 0.5.1 
    148168 struct roar_notify_core * notifycore; 
    149  int (*loader)(struct roar_dl_librarypara * lhandle, enum roar_dl_loadercmd cmd, void * argp); 
     169 struct roar_plugincontainer * container; 
     170 int (*loader)(struct roar_dl_librarypara * lhandle, void * loader_userdata, enum roar_dl_loadercmd cmd, void * argp); 
     171 void * loader_userdata; 
    150172}; 
    151173 
     
    169191 int      version; 
    170192 size_t   len; 
     193 uint32_t flags; 
    171194 const char * name; 
    172195 const char * libname; 
     
    192215 int (*free)  (struct roar_dl_librarypara * para); 
    193216 int (*update)(struct roar_dl_librarypara * para); 
     217 int (*tick)  (struct roar_dl_librarypara * para); 
     218 int (*wait)  (struct roar_dl_librarypara * para); 
    194219}; 
    195220 
     
    199224 ROAR_DL_APPSCHED_FREE, 
    200225#define ROAR_DL_APPSCHED_FREE ROAR_DL_APPSCHED_FREE 
    201  ROAR_DL_APPSCHED_UPDATE 
     226 ROAR_DL_APPSCHED_UPDATE, 
    202227#define ROAR_DL_APPSCHED_UPDATE ROAR_DL_APPSCHED_UPDATE 
     228 ROAR_DL_APPSCHED_TICK, 
     229#define ROAR_DL_APPSCHED_TICK ROAR_DL_APPSCHED_TICK 
     230 ROAR_DL_APPSCHED_WAIT 
     231#define ROAR_DL_APPSCHED_WAIT ROAR_DL_APPSCHED_WAIT 
    203232}; 
    204233 
  • libroar/roardl.c

    r5321 r5335  
    538538 
    539539int                      roar_dl_appsched_trigger(struct roar_dl_lhandle * lhandle, enum roar_dl_appsched_trigger trigger) { 
     540 int (*func)  (struct roar_dl_librarypara * para) = NULL; 
    540541 int ret; 
    541542 
     
    553554#define _trig(lname,uname) \ 
    554555  case ROAR_DL_APPSCHED_ ## uname :             \ 
    555     if ( lhandle->lib->appsched->lname == NULL ) {   \ 
    556      roar_err_set(ROAR_ERROR_NOENT);            \ 
    557      return -1;                                 \ 
    558     }                                           \ 
    559     roar_dl_context_restore(lhandle);           \ 
    560     ret = lhandle->lib->appsched->lname(lhandle->para); \ 
    561     roar_dl_context_store(lhandle);             \ 
    562     return ret;                                 \ 
     556    func = lhandle->lib->appsched->lname;       \ 
    563557   break; 
    564558  _trig(init, INIT); 
    565559  _trig(free, FREE); 
    566560  _trig(update, UPDATE); 
    567  } 
    568  
    569  roar_err_set(ROAR_ERROR_BADRQC); 
    570  return -1; 
     561  _trig(tick, TICK); 
     562  _trig(wait, WAIT); 
     563// use ifndef here so warnings of unhandled enum values will be shown in DEBUG mode. 
     564#ifndef DEBUG 
     565  default: 
     566    roar_err_set(ROAR_ERROR_BADRQC); 
     567    return -1; 
     568   break; 
     569#endif 
     570 } 
     571 
     572 if ( func == NULL ) { 
     573  roar_err_set(ROAR_ERROR_NOENT); 
     574  return -1; 
     575 } 
     576 
     577 roar_dl_context_restore(lhandle); 
     578 ret = func(lhandle->para); 
     579 roar_dl_context_store(lhandle); 
     580 return ret; 
    571581} 
    572582 
  • plugins/universal/plugin-info.c

    r5318 r5335  
    1 //discard.c: 
     1//plugin-info.c: 
    22 
    33/* 
     
    109109 .init = init, 
    110110 .free = NULL, 
    111  .update = NULL 
     111 .update = NULL, 
     112 .tick = NULL, 
     113 .wait = NULL 
    112114}; 
    113115 
    114 ROAR_DL_PLUGIN_START(roard_plugin_info) { 
    115 // ROARD_DL_CHECK_VERSIONS(); 
    116  
    117  libname.license = "GPL-3.0";  
     116ROAR_DL_PLUGIN_START(plugin_info) { 
     117 ROAR_DL_PLUGIN_META_PRODUCT("plugin-info <0/RoarAudio>"); 
     118 ROAR_DL_PLUGIN_META_PRODUCT_NIV("plugin-info", 0, "RoarAudio"); 
     119 ROAR_DL_PLUGIN_META_VERSION(ROAR_VERSION_STRING); 
     120 ROAR_DL_PLUGIN_META_DESC("Display information about the plugin context"); 
     121 ROAR_DL_PLUGIN_META_CONTACT_FLNE("Philipp", "Schafft", "ph3-der-loewe", "lion@lion.leolix.org"); 
     122 ROAR_DL_PLUGIN_META_LICENSE_TAG(GPLv3_0);  
    118123 
    119124 ROAR_DL_PLUGIN_REG_GLOBAL_DATA(global_data, global_data_init); 
Note: See TracChangeset for help on using the changeset viewer.