Audio plugin host https://kx.studio/carla
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.

96 lines
2.7KB

  1. /*
  2. * Carla Plugin Host
  3. * Copyright (C) 2011-2023 Filipe Coelho <falktx@falktx.com>
  4. *
  5. * This program is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU General Public License as
  7. * published by the Free Software Foundation; either version 2 of
  8. * the License, or any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. *
  15. * For a full copy of the GNU General Public License see the doc/GPL.txt file.
  16. */
  17. #pragma once
  18. #include "CarlaBackend.h"
  19. #ifdef __cplusplus
  20. using CARLA_BACKEND_NAMESPACE::PluginType;
  21. extern "C" {
  22. #endif
  23. // --------------------------------------------------------------------------------------------------------------------
  24. typedef struct {
  25. const char* command;
  26. const char* name;
  27. const char* labelSetup;
  28. } JackAppDialogResults;
  29. typedef struct _HostSettings {
  30. bool showPluginBridges;
  31. bool showWineBridges;
  32. bool useSystemIcons;
  33. bool wineAutoPrefix;
  34. const char* wineExecutable;
  35. const char* wineFallbackPrefix;
  36. } HostSettings;
  37. typedef struct {
  38. uint build;
  39. uint type;
  40. uint hints;
  41. const char* category;
  42. const char* filename;
  43. const char* name;
  44. const char* label;
  45. const char* maker;
  46. uint64_t uniqueId;
  47. uint audioIns;
  48. uint audioOuts;
  49. uint cvIns;
  50. uint cvOuts;
  51. uint midiIns;
  52. uint midiOuts;
  53. uint parameterIns;
  54. uint parameterOuts;
  55. } PluginListDialogResults;
  56. struct PluginListDialog;
  57. // --------------------------------------------------------------------------------------------------------------------
  58. CARLA_PLUGIN_EXPORT void
  59. carla_frontend_createAndExecAboutJuceDialog(void* parent);
  60. CARLA_PLUGIN_EXPORT const JackAppDialogResults*
  61. carla_frontend_createAndExecJackAppDialog(void* parent, const char* projectFilename);
  62. CARLA_PLUGIN_EXPORT PluginListDialog*
  63. carla_frontend_createPluginListDialog(void* parent, const HostSettings* hostSettings);
  64. CARLA_PLUGIN_EXPORT void
  65. carla_frontend_destroyPluginListDialog(PluginListDialog* dialog);
  66. // TODO get favorites
  67. CARLA_PLUGIN_EXPORT void
  68. carla_frontend_setPluginListDialogPath(PluginListDialog* dialog, int ptype, const char* path);
  69. CARLA_PLUGIN_EXPORT const PluginListDialogResults*
  70. carla_frontend_execPluginListDialog(PluginListDialog* dialog);
  71. // CARLA_PLUGIN_EXPORT const PluginListDialogResults*
  72. // carla_frontend_createAndExecPluginListDialog(void* parent, const HostSettings* hostSettings);
  73. // --------------------------------------------------------------------------------------------------------------------
  74. #ifdef __cplusplus
  75. }
  76. #endif