Changeset 5814:81052ac84144 in roaraudio for include


Ignore:
Timestamp:
01/05/13 03:05:38 (11 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

Improved CSI: Make it easier to register and access services.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • include/libroar/roardl.h

    r5809 r5814  
    137137// register objects using FN: 
    138138#define ROAR_DL_PLUGIN_REG_FN(subtype,obj,version)  roar_dl_register_fn(NULL, -1, (subtype), &(obj), sizeof((obj)), (version), ROAR_DL_FNREG_OPT_NONE) 
     139#define ROAR_DL_PLUGIN_REG_FNFUNC(fn) ROAR_DL_PLUGIN_REG((fn), _roaraudio_library_ ## fn) 
    139140 
    140141// Do a FN reg callback registration: 
     
    404405#define ROAR_DL_SERVICE_SIZE     sizeof(struct roar_dl_service) 
    405406 
     407#define ROAR_DL_PLUGIN_REG_SERVICES(obj) \ 
     408static int _roaraudio_library_ROAR_DL_FN_SERVICE(struct roar_dl_librarypara * para, struct roar_dl_libraryinst * lib) { \ 
     409 size_t i; \ 
     410 (void)para, (void)lib; \ 
     411 for (i = 0; i < (sizeof((obj))/sizeof(*(obj))); i++) { \ 
     412  ROAR_DL_PLUGIN_REG_FN(ROAR_DL_SERVICE_SUBTYPE, (obj)[i], ROAR_DL_SERVICE_VERSION); \ 
     413 } \ 
     414 return 0; \ 
     415} 
     416#define ROAR_DL_PLUGIN_REG_SERVICES_GET_API(name,obj) \ 
     417static const void * name(const struct roar_dl_service * service, struct roar_dl_librarypara * para) { \ 
     418 (void)service, (void)para; \ 
     419 return &(obj); \ 
     420} 
     421 
     422const void * libroar_dl_service_get_api(struct roar_dl_librarypara * para, const char * appname, const char * appabi, const char * servicename, const char * serviceabi, int universal); 
     423#define roar_dl_service_get_api(para,servicename,serviceabi,type) ((const struct type*)libroar_dl_service_get_api((para), (para)->appname, (para)->abiversion, (servicename), (serviceabi), 1)) 
     424 
    406425// Reg FN: 
    407426 
Note: See TracChangeset for help on using the changeset viewer.