jack2 codebase
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.1KB

  1. /*
  2. Copyright (C) 2001-2005 Paul Davis
  3. Copyright (C) 2004-2008 Grame
  4. This program is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 2 of the License, or
  7. (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program; if not, write to the Free Software
  14. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  15. */
  16. #ifndef __JackDriverLoader__
  17. #define __JackDriverLoader__
  18. #include "driver_interface.h"
  19. #include "JackControlAPI.h"
  20. #include "JackPlatformPlug.h"
  21. #include "JackDriver.h"
  22. #include "JackSystemDeps.h"
  23. typedef jack_driver_desc_t* (*JackDriverDescFunction) ();
  24. typedef Jack::JackDriverClientInterface* (*driverInitialize) (Jack::JackLockedEngine*, Jack::JackSynchro*, const JSList*);
  25. class SERVER_EXPORT JackDriverInfo
  26. {
  27. private:
  28. driverInitialize fInitialize;
  29. DRIVER_HANDLE fHandle;
  30. Jack::JackDriverClientInterface* fBackend;
  31. public:
  32. JackDriverInfo():fInitialize(NULL),fHandle(NULL),fBackend(NULL)
  33. {}
  34. ~JackDriverInfo();
  35. Jack::JackDriverClientInterface* Open(jack_driver_desc_t* driver_desc, Jack::JackLockedEngine*, Jack::JackSynchro*, const JSList*);
  36. Jack::JackDriverClientInterface* GetBackend()
  37. {
  38. return fBackend;
  39. }
  40. };
  41. jack_driver_desc_t* jack_find_driver_descriptor(JSList* drivers, const char* name);
  42. JSList* jack_drivers_load(JSList* drivers);
  43. JSList* jack_internals_load(JSList* internals);
  44. #ifdef __cplusplus
  45. extern "C"
  46. {
  47. #endif
  48. SERVER_EXPORT int jackctl_parse_driver_params (jackctl_driver * driver_ptr, int argc, char* argv[]);
  49. SERVER_EXPORT void jack_free_driver_params(JSList * param_ptr);
  50. SERVER_EXPORT void jack_print_driver_options(jack_driver_desc_t* desc, FILE* file);
  51. #ifdef __cplusplus
  52. }
  53. #endif
  54. #endif