Changeset 5816:6c593d184ef2 in roaraudio for include
- Timestamp:
- 01/05/13 14:31:33 (11 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
include/libroar/roardl.h
r5815 r5816 420 420 } 421 421 422 const 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, struct roar_dl_lhandle ** lhandle); 423 #define roar_dl_service_get_api(para,servicename,serviceabi,type,lhandle) ((const struct type*)libroar_dl_service_get_api((para), (para)->appname, (para)->abiversion, (servicename), (serviceabi), 1, (lhandle))) 422 struct roar_dl_service_api { 423 const void * api; 424 struct roar_dl_lhandle * lhandle; 425 }; 426 427 #define libroar_dl_service_apitype(type) \ 428 union { \ 429 struct roar_dl_service_api interface; \ 430 const struct type * api; \ 431 } 432 433 int libroar_dl_service_get_api_real(struct roar_dl_librarypara * para, const char * appname, const char * appabi, const char * servicename, const char * serviceabi, int universal, struct roar_dl_service_api * api); 434 #define libroar_dl_service_get_api(para,appname,appabi,servicename,serviceabi,universal,api) libroar_dl_service_get_api_real((para),(appname),(appabi),(servicename),(serviceabi),(universal),(struct roar_dl_service_api *)(api)) 435 #define roar_dl_service_get_api(para,servicename,serviceabi,api) libroar_dl_service_get_api((para), (para)->appname, (para)->abiversion, (servicename), (serviceabi), 1, (api)) 436 437 int libroar_dl_service_free_api_real(struct roar_dl_service_api * api); 438 #define libroar_dl_service_free_api(api) libroar_dl_service_free_api_real((struct roar_dl_service_api *)&(api)) 439 440 #define libroar_dl_service_run_func(obj,name,type,...) ((type[3]){(type)roar_dl_context_restore((obj).interface.lhandle), ((obj).api->name(__VA_ARGS__)), (type)roar_dl_context_store((obj).interface.lhandle)})[1] 441 #define libroar_dl_service_run_func_void(obj,name,...) do { roar_dl_context_restore((obj).interface.lhandle); (obj).api->name(__VA_ARGS__); roar_dl_context_store((obj).interface.lhandle); } while (0) 442 #define libroar_dl_service_check_func(obj,name) ((obj).api->name != NULL) 424 443 425 444 // Reg FN:
Note: See TracChangeset
for help on using the changeset viewer.