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.

_data.cpp 19KB

9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553
  1. /*
  2. * Carla Native Plugins
  3. * Copyright (C) 2012-2019 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. #include "CarlaNative.h"
  18. #include "CarlaMIDI.h"
  19. #include "CarlaUtils.hpp"
  20. #undef DESCFUNCS_WITHCV
  21. #undef DESCFUNCS_WITHOUTCV
  22. #define DESCFUNCS_WITHCV \
  23. nullptr, nullptr, nullptr, nullptr, nullptr, \
  24. nullptr, nullptr, nullptr, nullptr, nullptr, \
  25. nullptr, nullptr, nullptr, nullptr, nullptr, \
  26. nullptr, nullptr, nullptr, nullptr, nullptr, \
  27. nullptr, nullptr
  28. #define DESCFUNCS_WITHOUTCV \
  29. DESCFUNCS_WITHCV, 0, 0, nullptr
  30. static const NativePluginDescriptor sNativePluginDescriptors[] = {
  31. // --------------------------------------------------------------------------------------------------------------------
  32. // Simple plugins
  33. {
  34. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  35. /* hints */ NATIVE_PLUGIN_IS_RTSAFE,
  36. /* supports */ NATIVE_PLUGIN_SUPPORTS_NOTHING,
  37. /* audioIns */ 1,
  38. /* audioOuts */ 1,
  39. /* midiIns */ 0,
  40. /* midiOuts */ 0,
  41. /* paramIns */ 1,
  42. /* paramOuts */ 0,
  43. /* name */ "Audio Gain (Mono)",
  44. /* label */ "audiogain",
  45. /* maker */ "falkTX",
  46. /* copyright */ "GNU GPL v2+",
  47. DESCFUNCS_WITHOUTCV
  48. },
  49. {
  50. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  51. /* hints */ NATIVE_PLUGIN_IS_RTSAFE,
  52. /* supports */ NATIVE_PLUGIN_SUPPORTS_NOTHING,
  53. /* audioIns */ 2,
  54. /* audioOuts */ 2,
  55. /* midiIns */ 0,
  56. /* midiOuts */ 0,
  57. /* paramIns */ 3,
  58. /* paramOuts */ 0,
  59. /* name */ "Audio Gain (Stereo)",
  60. /* label */ "audiogain_s",
  61. /* maker */ "falkTX",
  62. /* copyright */ "GNU GPL v2+",
  63. DESCFUNCS_WITHOUTCV
  64. },
  65. {
  66. /* category */ NATIVE_PLUGIN_CATEGORY_NONE,
  67. /* hints */ NATIVE_PLUGIN_IS_RTSAFE,
  68. /* supports */ NATIVE_PLUGIN_SUPPORTS_NOTHING,
  69. /* audioIns */ 1,
  70. /* audioOuts */ 1,
  71. /* midiIns */ 0,
  72. /* midiOuts */ 0,
  73. /* paramIns */ 0,
  74. /* paramOuts */ 0,
  75. /* name */ "Bypass",
  76. /* label */ "bypass",
  77. /* maker */ "falkTX",
  78. /* copyright */ "GNU GPL v2+",
  79. DESCFUNCS_WITHOUTCV
  80. },
  81. {
  82. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  83. /* hints */ NATIVE_PLUGIN_IS_RTSAFE,
  84. /* supports */ NATIVE_PLUGIN_SUPPORTS_NOTHING,
  85. /* audioIns */ 0,
  86. /* audioOuts */ 0,
  87. /* midiIns */ 0,
  88. /* midiOuts */ 0,
  89. /* paramIns */ 5-1,
  90. /* paramOuts */ 1,
  91. /* name */ "LFO",
  92. /* label */ "lfo",
  93. /* maker */ "falkTX",
  94. /* copyright */ "GNU GPL v2+",
  95. DESCFUNCS_WITHOUTCV
  96. },
  97. {
  98. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  99. /* hints */ NATIVE_PLUGIN_IS_RTSAFE,
  100. /* supports */ NATIVE_PLUGIN_SUPPORTS_EVERYTHING,
  101. /* audioIns */ 0,
  102. /* audioOuts */ 0,
  103. /* midiIns */ 1,
  104. /* midiOuts */ 1,
  105. /* paramIns */ 0,
  106. /* paramOuts */ 0,
  107. /* name */ "MIDI Channel Filter",
  108. /* label */ "midichanfilter",
  109. /* maker */ "falkTX",
  110. /* copyright */ "GNU GPL v2+",
  111. DESCFUNCS_WITHOUTCV
  112. },
  113. {
  114. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  115. /* hints */ NATIVE_PLUGIN_IS_RTSAFE,
  116. /* supports */ NATIVE_PLUGIN_SUPPORTS_EVERYTHING,
  117. /* audioIns */ 0,
  118. /* audioOuts */ 0,
  119. /* midiIns */ 1,
  120. /* midiOuts */ 2,
  121. /* paramIns */ 0,
  122. /* paramOuts */ 0,
  123. /* name */ "MIDI Channel A/B",
  124. /* label */ "midichanab",
  125. /* maker */ "Milk Brewster",
  126. /* copyright */ "GNU GPL v2+",
  127. DESCFUNCS_WITHOUTCV
  128. },
  129. {
  130. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  131. /* hints */ NATIVE_PLUGIN_IS_RTSAFE,
  132. /* supports */ NATIVE_PLUGIN_SUPPORTS_EVERYTHING,
  133. /* audioIns */ 0,
  134. /* audioOuts */ 0,
  135. /* midiIns */ 1,
  136. /* midiOuts */ 1,
  137. /* paramIns */ 0,
  138. /* paramOuts */ 0,
  139. /* name */ "MIDI Gain",
  140. /* label */ "midigain",
  141. /* maker */ "falkTX",
  142. /* copyright */ "GNU GPL v2+",
  143. DESCFUNCS_WITHOUTCV
  144. },
  145. {
  146. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  147. /* hints */ NATIVE_PLUGIN_IS_RTSAFE,
  148. /* supports */ NATIVE_PLUGIN_SUPPORTS_EVERYTHING,
  149. /* audioIns */ 0,
  150. /* audioOuts */ 0,
  151. /* midiIns */ MAX_MIDI_CHANNELS,
  152. /* midiOuts */ 1,
  153. /* paramIns */ 0,
  154. /* paramOuts */ 0,
  155. /* name */ "MIDI Join",
  156. /* label */ "midijoin",
  157. /* maker */ "falkTX",
  158. /* copyright */ "GNU GPL v2+",
  159. DESCFUNCS_WITHOUTCV
  160. },
  161. {
  162. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  163. /* hints */ NATIVE_PLUGIN_IS_RTSAFE,
  164. /* supports */ NATIVE_PLUGIN_SUPPORTS_EVERYTHING,
  165. /* audioIns */ 0,
  166. /* audioOuts */ 0,
  167. /* midiIns */ 1,
  168. /* midiOuts */ MAX_MIDI_CHANNELS,
  169. /* paramIns */ 0,
  170. /* paramOuts */ 0,
  171. /* name */ "MIDI Split",
  172. /* label */ "midisplit",
  173. /* maker */ "falkTX",
  174. /* copyright */ "GNU GPL v2+",
  175. DESCFUNCS_WITHOUTCV
  176. },
  177. {
  178. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  179. /* hints */ NATIVE_PLUGIN_IS_RTSAFE,
  180. /* supports */ NATIVE_PLUGIN_SUPPORTS_ALL_SOUND_OFF,
  181. /* audioIns */ 0,
  182. /* audioOuts */ 0,
  183. /* midiIns */ 1,
  184. /* midiOuts */ 0,
  185. /* paramIns */ 4,
  186. /* paramOuts */ 0,
  187. /* name */ "MIDI to CV",
  188. /* label */ "midi2cv",
  189. /* maker */ "falkTX, Bram Giesen, Jarno Verheesen",
  190. /* copyright */ "GNU GPL v2+",
  191. DESCFUNCS_WITHCV,
  192. /* cvIns */ 0,
  193. /* cvOuts */ 3,
  194. /* bufnamefn */ nullptr
  195. },
  196. {
  197. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  198. /* hints */ NATIVE_PLUGIN_IS_RTSAFE,
  199. /* supports */ NATIVE_PLUGIN_SUPPORTS_EVERYTHING,
  200. /* audioIns */ 0,
  201. /* audioOuts */ 0,
  202. /* midiIns */ 1,
  203. /* midiOuts */ 1,
  204. /* paramIns */ 0,
  205. /* paramOuts */ 0,
  206. /* name */ "MIDI Through",
  207. /* label */ "midithrough",
  208. /* maker */ "falkTX",
  209. /* copyright */ "GNU GPL v2+",
  210. DESCFUNCS_WITHOUTCV
  211. },
  212. {
  213. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  214. /* hints */ NATIVE_PLUGIN_IS_RTSAFE,
  215. /* supports */ NATIVE_PLUGIN_SUPPORTS_EVERYTHING,
  216. /* audioIns */ 0,
  217. /* audioOuts */ 0,
  218. /* midiIns */ 1,
  219. /* midiOuts */ 1,
  220. /* paramIns */ 2,
  221. /* paramOuts */ 0,
  222. /* name */ "MIDI Transpose",
  223. /* label */ "miditranspose",
  224. /* maker */ "falkTX",
  225. /* copyright */ "GNU GPL v2+",
  226. DESCFUNCS_WITHOUTCV
  227. },
  228. {
  229. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  230. /* hints */ NATIVE_PLUGIN_IS_RTSAFE,
  231. /* supports */ NATIVE_PLUGIN_SUPPORTS_EVERYTHING,
  232. /* audioIns */ 0,
  233. /* audioOuts */ 0,
  234. /* midiIns */ 1,
  235. /* midiOuts */ 1,
  236. /* paramIns */ 1,
  237. /* paramOuts */ 0,
  238. /* name */ "MIDI Channelize",
  239. /* label */ "midichannelize",
  240. /* maker */ "falkTX",
  241. /* copyright */ "GNU GPL v2+",
  242. DESCFUNCS_WITHOUTCV
  243. },
  244. // --------------------------------------------------------------------------------------------------------------------
  245. // Audio file
  246. {
  247. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  248. /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE
  249. |NATIVE_PLUGIN_HAS_INLINE_DISPLAY
  250. |NATIVE_PLUGIN_HAS_UI
  251. |NATIVE_PLUGIN_NEEDS_UI_OPEN_SAVE
  252. |NATIVE_PLUGIN_REQUESTS_IDLE
  253. |NATIVE_PLUGIN_USES_TIME),
  254. /* supports */ NATIVE_PLUGIN_SUPPORTS_NOTHING,
  255. /* audioIns */ 0,
  256. /* audioOuts */ 2,
  257. /* midiIns */ 0,
  258. /* midiOuts */ 0,
  259. /* paramIns */ 1,
  260. /* paramOuts */ 0,
  261. /* name */ "Audio File",
  262. /* label */ "audiofile",
  263. /* maker */ "falkTX",
  264. /* copyright */ "GNU GPL v2+",
  265. DESCFUNCS_WITHOUTCV
  266. },
  267. // --------------------------------------------------------------------------------------------------------------------
  268. // MIDI file and sequencer
  269. {
  270. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  271. /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE
  272. |NATIVE_PLUGIN_HAS_UI
  273. |NATIVE_PLUGIN_NEEDS_UI_OPEN_SAVE
  274. |NATIVE_PLUGIN_REQUESTS_IDLE
  275. |NATIVE_PLUGIN_USES_STATE
  276. |NATIVE_PLUGIN_USES_TIME),
  277. /* supports */ NATIVE_PLUGIN_SUPPORTS_NOTHING,
  278. /* audioIns */ 0,
  279. /* audioOuts */ 0,
  280. /* midiIns */ 0,
  281. /* midiOuts */ 1,
  282. /* paramIns */ 0,
  283. /* paramOuts */ 0,
  284. /* name */ "MIDI File",
  285. /* label */ "midifile",
  286. /* maker */ "falkTX",
  287. /* copyright */ "GNU GPL v2+",
  288. DESCFUNCS_WITHOUTCV
  289. },
  290. #ifdef HAVE_PYQT
  291. {
  292. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  293. /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE
  294. |NATIVE_PLUGIN_HAS_UI
  295. |NATIVE_PLUGIN_USES_STATE
  296. |NATIVE_PLUGIN_USES_TIME),
  297. /* supports */ NATIVE_PLUGIN_SUPPORTS_NOTHING,
  298. /* audioIns */ 0,
  299. /* audioOuts */ 0,
  300. /* midiIns */ 0,
  301. /* midiOuts */ 1,
  302. /* paramIns */ 4,
  303. /* paramOuts */ 0,
  304. /* name */ "MIDI Pattern",
  305. /* label */ "midipattern",
  306. /* maker */ "falkTX, tatch",
  307. /* copyright */ "GNU GPL v2+",
  308. DESCFUNCS_WITHOUTCV
  309. },
  310. #endif
  311. // --------------------------------------------------------------------------------------------------------------------
  312. // Carla
  313. #ifdef HAVE_PYQT
  314. {
  315. /* category */ NATIVE_PLUGIN_CATEGORY_OTHER,
  316. /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH
  317. |NATIVE_PLUGIN_HAS_UI
  318. |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD
  319. |NATIVE_PLUGIN_USES_STATE
  320. |NATIVE_PLUGIN_USES_TIME),
  321. /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING),
  322. /* audioIns */ 2,
  323. /* audioOuts */ 2,
  324. /* midiIns */ 1,
  325. /* midiOuts */ 1,
  326. /* paramIns */ 100,
  327. /* paramOuts */ 10,
  328. /* name */ "Carla-Rack",
  329. /* label */ "carlarack",
  330. /* maker */ "falkTX",
  331. /* copyright */ "GNU GPL v2+",
  332. DESCFUNCS_WITHOUTCV
  333. },
  334. {
  335. /* category */ NATIVE_PLUGIN_CATEGORY_OTHER,
  336. /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH
  337. |NATIVE_PLUGIN_HAS_UI
  338. |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD
  339. |NATIVE_PLUGIN_USES_STATE
  340. |NATIVE_PLUGIN_USES_TIME),
  341. /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING),
  342. /* audioIns */ 2,
  343. /* audioOuts */ 2,
  344. /* midiIns */ 1,
  345. /* midiOuts */ 0,
  346. /* paramIns */ 100,
  347. /* paramOuts */ 10,
  348. /* name */ "Carla-Rack (no midi out)",
  349. /* label */ "carlarack-nomidiout",
  350. /* maker */ "falkTX",
  351. /* copyright */ "GNU GPL v2+",
  352. DESCFUNCS_WITHOUTCV
  353. },
  354. {
  355. /* category */ NATIVE_PLUGIN_CATEGORY_OTHER,
  356. /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH
  357. |NATIVE_PLUGIN_HAS_UI
  358. |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD
  359. |NATIVE_PLUGIN_USES_STATE
  360. |NATIVE_PLUGIN_USES_TIME),
  361. /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING),
  362. /* audioIns */ 2,
  363. /* audioOuts */ 2,
  364. /* midiIns */ 1,
  365. /* midiOuts */ 1,
  366. /* paramIns */ 100,
  367. /* paramOuts */ 10,
  368. /* name */ "Carla-Patchbay",
  369. /* label */ "carlapatchbay",
  370. /* maker */ "falkTX",
  371. /* copyright */ "GNU GPL v2+",
  372. DESCFUNCS_WITHOUTCV
  373. },
  374. {
  375. /* category */ NATIVE_PLUGIN_CATEGORY_OTHER,
  376. /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH
  377. |NATIVE_PLUGIN_HAS_UI
  378. |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD
  379. |NATIVE_PLUGIN_USES_STATE
  380. |NATIVE_PLUGIN_USES_TIME),
  381. /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING),
  382. /* audioIns */ 3,
  383. /* audioOuts */ 2,
  384. /* midiIns */ 1,
  385. /* midiOuts */ 1,
  386. /* paramIns */ 100,
  387. /* paramOuts */ 10,
  388. /* name */ "Carla-Patchbay (sidechain)",
  389. /* label */ "carlapatchbay3s",
  390. /* maker */ "falkTX",
  391. /* copyright */ "GNU GPL v2+",
  392. DESCFUNCS_WITHOUTCV
  393. },
  394. {
  395. /* category */ NATIVE_PLUGIN_CATEGORY_OTHER,
  396. /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH
  397. |NATIVE_PLUGIN_HAS_UI
  398. |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD
  399. |NATIVE_PLUGIN_USES_STATE
  400. |NATIVE_PLUGIN_USES_TIME),
  401. /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING),
  402. /* audioIns */ 16,
  403. /* audioOuts */ 16,
  404. /* midiIns */ 1,
  405. /* midiOuts */ 1,
  406. /* paramIns */ 100,
  407. /* paramOuts */ 10,
  408. /* name */ "Carla-Patchbay (16chan)",
  409. /* label */ "carlapatchbay16",
  410. /* maker */ "falkTX",
  411. /* copyright */ "GNU GPL v2+",
  412. DESCFUNCS_WITHOUTCV
  413. },
  414. {
  415. /* category */ NATIVE_PLUGIN_CATEGORY_OTHER,
  416. /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH
  417. |NATIVE_PLUGIN_HAS_UI
  418. |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD
  419. |NATIVE_PLUGIN_USES_STATE
  420. |NATIVE_PLUGIN_USES_TIME),
  421. /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING),
  422. /* audioIns */ 32,
  423. /* audioOuts */ 32,
  424. /* midiIns */ 1,
  425. /* midiOuts */ 1,
  426. /* paramIns */ 100,
  427. /* paramOuts */ 10,
  428. /* name */ "Carla-Patchbay (32chan)",
  429. /* label */ "carlapatchbay32",
  430. /* maker */ "falkTX",
  431. /* copyright */ "GNU GPL v2+",
  432. DESCFUNCS_WITHOUTCV
  433. },
  434. {
  435. /* category */ NATIVE_PLUGIN_CATEGORY_OTHER,
  436. /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH
  437. |NATIVE_PLUGIN_HAS_UI
  438. |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD
  439. |NATIVE_PLUGIN_USES_STATE
  440. |NATIVE_PLUGIN_USES_TIME),
  441. /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING),
  442. /* audioIns */ 64,
  443. /* audioOuts */ 64,
  444. /* midiIns */ 1,
  445. /* midiOuts */ 1,
  446. /* paramIns */ 100,
  447. /* paramOuts */ 10,
  448. /* name */ "Carla-Patchbay (64chan)",
  449. /* label */ "carlapatchbay64",
  450. /* maker */ "falkTX",
  451. /* copyright */ "GNU GPL v2+",
  452. DESCFUNCS_WITHOUTCV
  453. },
  454. {
  455. /* category */ NATIVE_PLUGIN_CATEGORY_OTHER,
  456. /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_SYNTH
  457. |NATIVE_PLUGIN_HAS_UI
  458. |NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD
  459. |NATIVE_PLUGIN_USES_CONTROL_VOLTAGE
  460. |NATIVE_PLUGIN_USES_STATE
  461. |NATIVE_PLUGIN_USES_TIME),
  462. /* supports */ static_cast<NativePluginSupports>(NATIVE_PLUGIN_SUPPORTS_EVERYTHING),
  463. /* audioIns */ 2,
  464. /* audioOuts */ 2,
  465. /* midiIns */ 1,
  466. /* midiOuts */ 1,
  467. /* paramIns */ 100,
  468. /* paramOuts */ 10,
  469. /* name */ "Carla-Patchbay (CV)",
  470. /* label */ "carlapatchbaycv",
  471. /* maker */ "falkTX",
  472. /* copyright */ "GNU GPL v2+",
  473. DESCFUNCS_WITHCV,
  474. /* cvIns */ 5,
  475. /* cvOuts */ 5,
  476. /* bufnamefn */ nullptr
  477. },
  478. #endif
  479. // --------------------------------------------------------------------------------------------------------------------
  480. // External-UI plugins
  481. #ifdef HAVE_PYQT
  482. {
  483. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  484. /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE
  485. |NATIVE_PLUGIN_HAS_INLINE_DISPLAY
  486. |NATIVE_PLUGIN_HAS_UI
  487. |NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS),
  488. /* supports */ NATIVE_PLUGIN_SUPPORTS_NOTHING,
  489. /* audioIns */ 2,
  490. /* audioOuts */ 0,
  491. /* midiIns */ 0,
  492. /* midiOuts */ 0,
  493. /* paramIns */ 2,
  494. /* paramOuts */ 2,
  495. /* name */ "Big Meter",
  496. /* label */ "bigmeter",
  497. /* maker */ "falkTX",
  498. /* copyright */ "GNU GPL v2+",
  499. DESCFUNCS_WITHOUTCV
  500. },
  501. {
  502. /* category */ NATIVE_PLUGIN_CATEGORY_UTILITY,
  503. /* hints */ static_cast<NativePluginHints>(NATIVE_PLUGIN_IS_RTSAFE
  504. |NATIVE_PLUGIN_HAS_UI),
  505. /* supports */ NATIVE_PLUGIN_SUPPORTS_NOTHING,
  506. /* audioIns */ 0,
  507. /* audioOuts */ 0,
  508. /* midiIns */ 0,
  509. /* midiOuts */ 0,
  510. /* paramIns */ 1,
  511. /* paramOuts */ 0,
  512. /* name */ "Notes",
  513. /* label */ "notes",
  514. /* maker */ "falkTX",
  515. /* copyright */ "GNU GPL v2+",
  516. DESCFUNCS_WITHOUTCV
  517. },
  518. #endif
  519. #ifdef HAVE_EXTERNAL_PLUGINS
  520. # define CARLA_EXTERNAL_PLUGINS_INCLUDED_DIRECTLY
  521. # include "external/_data.cpp"
  522. #endif
  523. };
  524. #undef DESCFUNCS_WITHCV
  525. #undef DESCFUNCS_WITHOUTCV
  526. // --------------------------------------------------------------------------------------------------------------------
  527. const NativePluginDescriptor* carla_get_native_plugins_data(uint32_t* count)
  528. {
  529. CARLA_SAFE_ASSERT_RETURN(count != nullptr, nullptr);
  530. *count = static_cast<uint32_t>(sizeof(sNativePluginDescriptors)/sizeof(NativePluginDescriptor));
  531. return sNativePluginDescriptors;
  532. }
  533. // --------------------------------------------------------------------------------------------------------------------