-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclass_cocoa_editor_delegate.html
788 lines (727 loc) · 77.5 KB
/
class_cocoa_editor_delegate.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
<!-- HTML header for doxygen 1.8.14-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.5"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>iPlug 2: CocoaEditorDelegate Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 80px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">iPlug2 - C++ Audio Plug-in Framework
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.5 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> |
<a href="#pro-attribs">Protected Attributes</a> |
<a href="class_cocoa_editor_delegate-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">CocoaEditorDelegate Class Reference<div class="ingroups"><a class="el" href="group___editor_delegates.html">IPlug::EditorDelegates</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>An editor delegate base class that uses Apple frameworks for the UI, either in Objective C, or Swift.
<a href="class_cocoa_editor_delegate.html#details">More...</a></p>
<p><code>#include <<a class="el" href="_i_plug_cocoa_editor_delegate_8h_source.html">IPlugCocoaEditorDelegate.h</a>></code></p>
<div class="dynheader">
Inheritance diagram for CocoaEditorDelegate:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="class_cocoa_editor_delegate__inherit__graph.svg" width="154" height="110"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af2a33c185deb56968fcb25f68195d2bd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_cocoa_editor_delegate.html#af2a33c185deb56968fcb25f68195d2bd">CocoaEditorDelegate</a> (int nParams)</td></tr>
<tr class="separator:af2a33c185deb56968fcb25f68195d2bd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a944b3165b866bdfdc8eb1637feee5803"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_cocoa_editor_delegate.html#a944b3165b866bdfdc8eb1637feee5803">OpenWindow</a> (void *pParent) override</td></tr>
<tr class="memdesc:a944b3165b866bdfdc8eb1637feee5803"><td class="mdescLeft"> </td><td class="mdescRight">If you are not using <a class="el" href="class_i_graphics.html" title="The lowest level base class of an IGraphics context.">IGraphics</a>, you can implement this method to attach to the native parent view e.g. <a href="class_cocoa_editor_delegate.html#a944b3165b866bdfdc8eb1637feee5803">More...</a><br /></td></tr>
<tr class="separator:a944b3165b866bdfdc8eb1637feee5803"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa3a95b46746570d9fe148009150f9ee1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_cocoa_editor_delegate.html#aa3a95b46746570d9fe148009150f9ee1">CloseWindow</a> () override</td></tr>
<tr class="memdesc:aa3a95b46746570d9fe148009150f9ee1"><td class="mdescLeft"> </td><td class="mdescRight">If you are not using <a class="el" href="class_i_graphics.html" title="The lowest level base class of an IGraphics context.">IGraphics</a> you can if you need to free resources etc when the window closes. <a href="class_cocoa_editor_delegate.html#aa3a95b46746570d9fe148009150f9ee1">More...</a><br /></td></tr>
<tr class="separator:aa3a95b46746570d9fe148009150f9ee1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa997d1d596771ad3370914df46191e3c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_cocoa_editor_delegate.html#aa997d1d596771ad3370914df46191e3c">OnMessage</a> (int msgTag, int ctrlTag, int dataSize, const void *pData) override</td></tr>
<tr class="memdesc:aa997d1d596771ad3370914df46191e3c"><td class="mdescLeft"> </td><td class="mdescRight">This could be implemented in either DSP or EDITOR to receive a message from the other one. <a href="class_cocoa_editor_delegate.html#aa997d1d596771ad3370914df46191e3c">More...</a><br /></td></tr>
<tr class="separator:aa997d1d596771ad3370914df46191e3c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:abf73ebeea67001c445782e6e0e1164c5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_cocoa_editor_delegate.html#abf73ebeea67001c445782e6e0e1164c5">OnParamChangeUI</a> (int paramIdx, <a class="el" href="group___i_plug_constants.html#ga0ffe9e97c910636e31bad47d4877bc6e">EParamSource</a> source) override</td></tr>
<tr class="memdesc:abf73ebeea67001c445782e6e0e1164c5"><td class="mdescLeft"> </td><td class="mdescRight">Override this method to do something when a parameter changes on the main/UI thread Like OnParamChange, OnParamChangeUI will be called when a parameter changes. <a href="class_cocoa_editor_delegate.html#abf73ebeea67001c445782e6e0e1164c5">More...</a><br /></td></tr>
<tr class="separator:abf73ebeea67001c445782e6e0e1164c5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aaaaac1dc1de7282fddd01549a198a318"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_cocoa_editor_delegate.html#aaaaac1dc1de7282fddd01549a198a318">OnMidiMsgUI</a> (const <a class="el" href="struct_i_midi_msg.html">IMidiMsg</a> &msg) override</td></tr>
<tr class="memdesc:aaaaac1dc1de7282fddd01549a198a318"><td class="mdescLeft"> </td><td class="mdescRight">Handle incoming MIDI messages sent to the user interface. <a href="class_cocoa_editor_delegate.html#aaaaac1dc1de7282fddd01549a198a318">More...</a><br /></td></tr>
<tr class="separator:aaaaac1dc1de7282fddd01549a198a318"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a432f6dde34795b37b09733fa7c766b04"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_cocoa_editor_delegate.html#a432f6dde34795b37b09733fa7c766b04">OnSysexMsgUI</a> (const <a class="el" href="struct_i_sys_ex.html">ISysEx</a> &msg) override</td></tr>
<tr class="memdesc:a432f6dde34795b37b09733fa7c766b04"><td class="mdescLeft"> </td><td class="mdescRight">Handle incoming SysEx messages sent to the user interface. <a href="class_cocoa_editor_delegate.html#a432f6dde34795b37b09733fa7c766b04">More...</a><br /></td></tr>
<tr class="separator:a432f6dde34795b37b09733fa7c766b04"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a98259b2a852a528c27fc4e26fbf43268"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_cocoa_editor_delegate.html#a98259b2a852a528c27fc4e26fbf43268">SendControlValueFromDelegate</a> (int ctrlTag, double normalizedValue) override</td></tr>
<tr class="memdesc:a98259b2a852a528c27fc4e26fbf43268"><td class="mdescLeft"> </td><td class="mdescRight">SendControlValueFromDelegate (Abbreviation: SCVFD) WARNING: should not be called on the realtime audio thread. <a href="class_cocoa_editor_delegate.html#a98259b2a852a528c27fc4e26fbf43268">More...</a><br /></td></tr>
<tr class="separator:a98259b2a852a528c27fc4e26fbf43268"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af675af28184f31ab40abf46a3aa0e4b1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_cocoa_editor_delegate.html#af675af28184f31ab40abf46a3aa0e4b1">SendControlMsgFromDelegate</a> (int ctrlTag, int msgTag, int dataSize, const void *pData) override</td></tr>
<tr class="memdesc:af675af28184f31ab40abf46a3aa0e4b1"><td class="mdescLeft"> </td><td class="mdescRight">SendControlMsgFromDelegate (Abbreviation: SCMFD) WARNING: should not be called on the realtime audio thread. <a href="class_cocoa_editor_delegate.html#af675af28184f31ab40abf46a3aa0e4b1">More...</a><br /></td></tr>
<tr class="separator:af675af28184f31ab40abf46a3aa0e4b1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad58564cec54b3610f91a9042e83fdcf6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_cocoa_editor_delegate.html#ad58564cec54b3610f91a9042e83fdcf6">SendParameterValueFromDelegate</a> (int paramIdx, double value, bool normalized) override</td></tr>
<tr class="memdesc:ad58564cec54b3610f91a9042e83fdcf6"><td class="mdescLeft"> </td><td class="mdescRight">SendParameterValueFromDelegate (Abbreviation: SPVFD) WARNING: should not be called on the realtime audio thread. <a href="class_cocoa_editor_delegate.html#ad58564cec54b3610f91a9042e83fdcf6">More...</a><br /></td></tr>
<tr class="separator:ad58564cec54b3610f91a9042e83fdcf6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pub_methods_class_i_editor_delegate"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_i_editor_delegate')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="class_i_editor_delegate.html">IEditorDelegate</a></td></tr>
<tr class="memitem:a83daad27efc4228696b9b26e6a747d6d inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a83daad27efc4228696b9b26e6a747d6d">IEditorDelegate</a> (int nParams)</td></tr>
<tr class="separator:a83daad27efc4228696b9b26e6a747d6d inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a43261666e9c9d0f8a1bfb3e31fb6fcf6 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top"><a id="a43261666e9c9d0f8a1bfb3e31fb6fcf6" name="a43261666e9c9d0f8a1bfb3e31fb6fcf6"></a>
 </td><td class="memItemRight" valign="bottom"><b>IEditorDelegate</b> (const <a class="el" href="class_i_editor_delegate.html">IEditorDelegate</a> &)=delete</td></tr>
<tr class="separator:a43261666e9c9d0f8a1bfb3e31fb6fcf6 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a693499b619c1747702dd9ade2a8eeaa1 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top"><a id="a693499b619c1747702dd9ade2a8eeaa1" name="a693499b619c1747702dd9ade2a8eeaa1"></a>
<a class="el" href="class_i_editor_delegate.html">IEditorDelegate</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_i_editor_delegate.html">IEditorDelegate</a> &)=delete</td></tr>
<tr class="separator:a693499b619c1747702dd9ade2a8eeaa1 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a064a5668986f9f0f0241c7692c533987 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_i_param.html">IParam</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a064a5668986f9f0f0241c7692c533987">AddParam</a> ()</td></tr>
<tr class="memdesc:a064a5668986f9f0f0241c7692c533987 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Adds an <a class="el" href="class_i_param.html" title="IPlug's parameter class.">IParam</a> to the parameters ptr list Note: This is only used in special circumstances, since most plug-in formats don't support dynamic parameters. <a href="class_i_editor_delegate.html#a064a5668986f9f0f0241c7692c533987">More...</a><br /></td></tr>
<tr class="separator:a064a5668986f9f0f0241c7692c533987 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a74676da51f314fedbe3c0df95d116ba1 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a74676da51f314fedbe3c0df95d116ba1">RemoveParam</a> (int idx)</td></tr>
<tr class="memdesc:a74676da51f314fedbe3c0df95d116ba1 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Remove an <a class="el" href="class_i_param.html" title="IPlug's parameter class.">IParam</a> at a particular index Note: This is only used in special circumstances, since most plug-in formats don't support dynamic parameters. <a href="class_i_editor_delegate.html#a74676da51f314fedbe3c0df95d116ba1">More...</a><br /></td></tr>
<tr class="separator:a74676da51f314fedbe3c0df95d116ba1 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2c4a58a2953541f3513ece8537b4fa21 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_i_param.html">IParam</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a2c4a58a2953541f3513ece8537b4fa21">GetParam</a> (int paramIdx)</td></tr>
<tr class="memdesc:a2c4a58a2953541f3513ece8537b4fa21 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Get a pointer to one of the delegate's <a class="el" href="class_i_param.html" title="IPlug's parameter class.">IParam</a> objects. <a href="class_i_editor_delegate.html#a2c4a58a2953541f3513ece8537b4fa21">More...</a><br /></td></tr>
<tr class="separator:a2c4a58a2953541f3513ece8537b4fa21 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a798a1555f3308a13a344dc33241e8974 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_i_param.html">IParam</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a798a1555f3308a13a344dc33241e8974">GetParam</a> (int paramIdx) const</td></tr>
<tr class="memdesc:a798a1555f3308a13a344dc33241e8974 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Get a const pointer to one of the delegate's <a class="el" href="class_i_param.html" title="IPlug's parameter class.">IParam</a> objects (for const methods) <a href="class_i_editor_delegate.html#a798a1555f3308a13a344dc33241e8974">More...</a><br /></td></tr>
<tr class="separator:a798a1555f3308a13a344dc33241e8974 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a093f1d5c684bfe5e1a43081adb360933 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a093f1d5c684bfe5e1a43081adb360933">NParams</a> () const</td></tr>
<tr class="separator:a093f1d5c684bfe5e1a43081adb360933 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a37b3dc6c3a22eb731a45ffc590a45a0c inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a37b3dc6c3a22eb731a45ffc590a45a0c">OpenWindow</a> (void *pParent)</td></tr>
<tr class="memdesc:a37b3dc6c3a22eb731a45ffc590a45a0c inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">If you are not using <a class="el" href="class_i_graphics.html" title="The lowest level base class of an IGraphics context.">IGraphics</a>, you can implement this method to attach to the native parent view e.g. <a href="class_i_editor_delegate.html#a37b3dc6c3a22eb731a45ffc590a45a0c">More...</a><br /></td></tr>
<tr class="separator:a37b3dc6c3a22eb731a45ffc590a45a0c inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4e002963a0e50d2222ef4b9400403b3b inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a4e002963a0e50d2222ef4b9400403b3b">CloseWindow</a> ()</td></tr>
<tr class="memdesc:a4e002963a0e50d2222ef4b9400403b3b inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">If you are not using <a class="el" href="class_i_graphics.html" title="The lowest level base class of an IGraphics context.">IGraphics</a> you can if you need to free resources etc when the window closes. <a href="class_i_editor_delegate.html#a4e002963a0e50d2222ef4b9400403b3b">More...</a><br /></td></tr>
<tr class="separator:a4e002963a0e50d2222ef4b9400403b3b inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aeca6f53c6985ee47df7e65e025645b94 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#aeca6f53c6985ee47df7e65e025645b94">OnParentWindowResize</a> (int width, int height)</td></tr>
<tr class="memdesc:aeca6f53c6985ee47df7e65e025645b94 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Called by app wrappers when the OS window scaling buttons/resizers are used. <a href="class_i_editor_delegate.html#aeca6f53c6985ee47df7e65e025645b94">More...</a><br /></td></tr>
<tr class="separator:aeca6f53c6985ee47df7e65e025645b94 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af00da854c73caaa96da911fbdbf8f13f inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#af00da854c73caaa96da911fbdbf8f13f">OnUIOpen</a> ()</td></tr>
<tr class="memdesc:af00da854c73caaa96da911fbdbf8f13f inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Override this method to do something before the UI is opened. <a href="class_i_editor_delegate.html#af00da854c73caaa96da911fbdbf8f13f">More...</a><br /></td></tr>
<tr class="separator:af00da854c73caaa96da911fbdbf8f13f inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a17de950550de680a2d0e521d20f58d6c inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a17de950550de680a2d0e521d20f58d6c">OnUIClose</a> ()</td></tr>
<tr class="memdesc:a17de950550de680a2d0e521d20f58d6c inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Override this method to do something before the UI is closed. <a href="class_i_editor_delegate.html#a17de950550de680a2d0e521d20f58d6c">More...</a><br /></td></tr>
<tr class="separator:a17de950550de680a2d0e521d20f58d6c inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2a937fc0ea51cd6100a5be56a26dfba3 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a2a937fc0ea51cd6100a5be56a26dfba3">OnParamChange</a> (int paramIdx, <a class="el" href="group___i_plug_constants.html#ga0ffe9e97c910636e31bad47d4877bc6e">EParamSource</a> source, int sampleOffset=-1)</td></tr>
<tr class="memdesc:a2a937fc0ea51cd6100a5be56a26dfba3 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Override this method to do something to your DSP when a parameter changes. <a href="class_i_editor_delegate.html#a2a937fc0ea51cd6100a5be56a26dfba3">More...</a><br /></td></tr>
<tr class="separator:a2a937fc0ea51cd6100a5be56a26dfba3 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a303a683abe847e28f16963f5207a5c56 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a303a683abe847e28f16963f5207a5c56">OnParamChange</a> (int paramIdx)</td></tr>
<tr class="memdesc:a303a683abe847e28f16963f5207a5c56 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Another version of the OnParamChange method without an EParamSource, for backwards compatibility / simplicity. <a href="class_i_editor_delegate.html#a303a683abe847e28f16963f5207a5c56">More...</a><br /></td></tr>
<tr class="separator:a303a683abe847e28f16963f5207a5c56 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a318f42e0744520eeedd2e21081979b4e inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a318f42e0744520eeedd2e21081979b4e">OnParamChangeUI</a> (int paramIdx, <a class="el" href="group___i_plug_constants.html#ga0ffe9e97c910636e31bad47d4877bc6e">EParamSource</a> source=kUnknown)</td></tr>
<tr class="memdesc:a318f42e0744520eeedd2e21081979b4e inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Override this method to do something when a parameter changes on the main/UI thread Like OnParamChange, OnParamChangeUI will be called when a parameter changes. <a href="class_i_editor_delegate.html#a318f42e0744520eeedd2e21081979b4e">More...</a><br /></td></tr>
<tr class="separator:a318f42e0744520eeedd2e21081979b4e inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a131f1da0697471444aa2ac655f1e8898 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a131f1da0697471444aa2ac655f1e8898">OnParamReset</a> (<a class="el" href="group___i_plug_constants.html#ga0ffe9e97c910636e31bad47d4877bc6e">EParamSource</a> source)</td></tr>
<tr class="memdesc:a131f1da0697471444aa2ac655f1e8898 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Called when parameters have changed to inform the plugin of the changes Override only if you need to handle notifications and updates in a specialist manner (e.g. <a href="class_i_editor_delegate.html#a131f1da0697471444aa2ac655f1e8898">More...</a><br /></td></tr>
<tr class="separator:a131f1da0697471444aa2ac655f1e8898 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a49ff38d310445f482dd69dd32e49e4d3 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a49ff38d310445f482dd69dd32e49e4d3">OnMidiMsgUI</a> (const <a class="el" href="struct_i_midi_msg.html">IMidiMsg</a> &msg)</td></tr>
<tr class="memdesc:a49ff38d310445f482dd69dd32e49e4d3 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Handle incoming MIDI messages sent to the user interface. <a href="class_i_editor_delegate.html#a49ff38d310445f482dd69dd32e49e4d3">More...</a><br /></td></tr>
<tr class="separator:a49ff38d310445f482dd69dd32e49e4d3 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a0a19a1af6f13fe055054f742e01a3fc8 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a0a19a1af6f13fe055054f742e01a3fc8">OnSysexMsgUI</a> (const <a class="el" href="struct_i_sys_ex.html">ISysEx</a> &msg)</td></tr>
<tr class="memdesc:a0a19a1af6f13fe055054f742e01a3fc8 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Handle incoming SysEx messages sent to the user interface. <a href="class_i_editor_delegate.html#a0a19a1af6f13fe055054f742e01a3fc8">More...</a><br /></td></tr>
<tr class="separator:a0a19a1af6f13fe055054f742e01a3fc8 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa769b48fa0ecfd59a6ab45c19244a571 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#aa769b48fa0ecfd59a6ab45c19244a571">OnMessage</a> (int msgTag, int ctrlTag, int dataSize, const void *pData)</td></tr>
<tr class="memdesc:aa769b48fa0ecfd59a6ab45c19244a571 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">This could be implemented in either DSP or EDITOR to receive a message from the other one. <a href="class_i_editor_delegate.html#aa769b48fa0ecfd59a6ab45c19244a571">More...</a><br /></td></tr>
<tr class="separator:aa769b48fa0ecfd59a6ab45c19244a571 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae68e29d81678affb1911e7787430c123 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#ae68e29d81678affb1911e7787430c123">OnRestoreState</a> ()</td></tr>
<tr class="memdesc:ae68e29d81678affb1911e7787430c123 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">This is called by API classes after restoring state and by <a class="el" href="class_i_plugin_base.html#a90ca1aad38c99a2ce6f4e6d7b7dab46b" title="Restore a preset by index.">IPluginBase::RestorePreset()</a>. <a href="class_i_editor_delegate.html#ae68e29d81678affb1911e7787430c123">More...</a><br /></td></tr>
<tr class="separator:ae68e29d81678affb1911e7787430c123 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:abc3ab8f425c820d3e5c67d78b717e989 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#abc3ab8f425c820d3e5c67d78b717e989">OnKeyDown</a> (const <a class="el" href="struct_i_key_press.html">IKeyPress</a> &key)</td></tr>
<tr class="memdesc:abc3ab8f425c820d3e5c67d78b717e989 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">KeyDown handler, in order to get keystrokes from certain hosts/plugin formats that send key press messages through the plug-in API, rather than the view. <a href="class_i_editor_delegate.html#abc3ab8f425c820d3e5c67d78b717e989">More...</a><br /></td></tr>
<tr class="separator:abc3ab8f425c820d3e5c67d78b717e989 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa8898cf282f32a34b89cf9e32b834207 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#aa8898cf282f32a34b89cf9e32b834207">OnKeyUp</a> (const <a class="el" href="struct_i_key_press.html">IKeyPress</a> &key)</td></tr>
<tr class="memdesc:aa8898cf282f32a34b89cf9e32b834207 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">KeyDown handler, in order to get keystrokes from certain hosts/plugin formats that send key press messages through the plug-in API rather than the view. <a href="class_i_editor_delegate.html#aa8898cf282f32a34b89cf9e32b834207">More...</a><br /></td></tr>
<tr class="separator:aa8898cf282f32a34b89cf9e32b834207 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6de7961ce51f65d5112aa357210444ab inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a6de7961ce51f65d5112aa357210444ab">SendCurrentParamValuesFromDelegate</a> ()</td></tr>
<tr class="memdesc:a6de7961ce51f65d5112aa357210444ab inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Loops through all parameters, calling <a class="el" href="class_i_editor_delegate.html#a95810d70d8183bcd29c24e7b76bdb492" title="SendParameterValueFromDelegate (Abbreviation: SPVFD) WARNING: should not be called on the realtime au...">SendParameterValueFromDelegate()</a> with the current value of the parameter This is important when modifying groups of parameters, restoring state and opening the UI, in order to update it with the latest values. <a href="class_i_editor_delegate.html#a6de7961ce51f65d5112aa357210444ab">More...</a><br /></td></tr>
<tr class="separator:a6de7961ce51f65d5112aa357210444ab inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4005eb1239e0e22e73c80e1fc97f5bb8 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a4005eb1239e0e22e73c80e1fc97f5bb8">SendControlValueFromDelegate</a> (int ctrlTag, double normalizedValue)</td></tr>
<tr class="memdesc:a4005eb1239e0e22e73c80e1fc97f5bb8 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">SendControlValueFromDelegate (Abbreviation: SCVFD) WARNING: should not be called on the realtime audio thread. <a href="class_i_editor_delegate.html#a4005eb1239e0e22e73c80e1fc97f5bb8">More...</a><br /></td></tr>
<tr class="separator:a4005eb1239e0e22e73c80e1fc97f5bb8 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a7d0211abb930c3f9b1e549461fb71ffc inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a7d0211abb930c3f9b1e549461fb71ffc">SendControlMsgFromDelegate</a> (int ctrlTag, int msgTag, int dataSize=0, const void *pData=nullptr)</td></tr>
<tr class="memdesc:a7d0211abb930c3f9b1e549461fb71ffc inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">SendControlMsgFromDelegate (Abbreviation: SCMFD) WARNING: should not be called on the realtime audio thread. <a href="class_i_editor_delegate.html#a7d0211abb930c3f9b1e549461fb71ffc">More...</a><br /></td></tr>
<tr class="separator:a7d0211abb930c3f9b1e549461fb71ffc inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac25ccbe2f2ebda0366cc9a51f2eb3f5f inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#ac25ccbe2f2ebda0366cc9a51f2eb3f5f">SendArbitraryMsgFromDelegate</a> (int msgTag, int dataSize=0, const void *pData=nullptr)</td></tr>
<tr class="memdesc:ac25ccbe2f2ebda0366cc9a51f2eb3f5f inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">SendArbitraryMsgFromDelegate (Abbreviation: SAMFD) WARNING: should not be called on the realtime audio thread. <a href="class_i_editor_delegate.html#ac25ccbe2f2ebda0366cc9a51f2eb3f5f">More...</a><br /></td></tr>
<tr class="separator:ac25ccbe2f2ebda0366cc9a51f2eb3f5f inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad4725e10bb4ec6338c31e80f0042ab12 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#ad4725e10bb4ec6338c31e80f0042ab12">SendMidiMsgFromDelegate</a> (const <a class="el" href="struct_i_midi_msg.html">IMidiMsg</a> &msg)</td></tr>
<tr class="memdesc:ad4725e10bb4ec6338c31e80f0042ab12 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">SendMidiMsgFromDelegate (Abbreviation: SMMFD) WARNING: should not be called on the realtime audio thread. <a href="class_i_editor_delegate.html#ad4725e10bb4ec6338c31e80f0042ab12">More...</a><br /></td></tr>
<tr class="separator:ad4725e10bb4ec6338c31e80f0042ab12 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae966860f91073870f13579cee83b7bbe inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#ae966860f91073870f13579cee83b7bbe">SendSysexMsgFromDelegate</a> (const <a class="el" href="struct_i_sys_ex.html">ISysEx</a> &msg)</td></tr>
<tr class="memdesc:ae966860f91073870f13579cee83b7bbe inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">SendSysexMsgFromDelegate (Abbreviation: SSMFD) WARNING: should not be called on the realtime audio thread. <a href="class_i_editor_delegate.html#ae966860f91073870f13579cee83b7bbe">More...</a><br /></td></tr>
<tr class="separator:ae966860f91073870f13579cee83b7bbe inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a95810d70d8183bcd29c24e7b76bdb492 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a95810d70d8183bcd29c24e7b76bdb492">SendParameterValueFromDelegate</a> (int paramIdx, double value, bool normalized)</td></tr>
<tr class="memdesc:a95810d70d8183bcd29c24e7b76bdb492 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">SendParameterValueFromDelegate (Abbreviation: SPVFD) WARNING: should not be called on the realtime audio thread. <a href="class_i_editor_delegate.html#a95810d70d8183bcd29c24e7b76bdb492">More...</a><br /></td></tr>
<tr class="separator:a95810d70d8183bcd29c24e7b76bdb492 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aafaa0005d6c99271370dc0dee042dcb0 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#aafaa0005d6c99271370dc0dee042dcb0">DirtyParametersFromUI</a> ()</td></tr>
<tr class="memdesc:aafaa0005d6c99271370dc0dee042dcb0 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">When modifying a range of parameters in the editor, it can be necessary to broadcast that fact via the host, for instance in a distributed plug-in. <a href="class_i_editor_delegate.html#aafaa0005d6c99271370dc0dee042dcb0">More...</a><br /></td></tr>
<tr class="separator:aafaa0005d6c99271370dc0dee042dcb0 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a271106e21e3e2d7869d152d99c155cad inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a271106e21e3e2d7869d152d99c155cad">BeginInformHostOfParamChangeFromUI</a> (int paramIdx)=0</td></tr>
<tr class="memdesc:a271106e21e3e2d7869d152d99c155cad inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Called by the UI at the beginning of a parameter change gesture, in order to notify the host (via a call in the API class) that the parameter is going to be modified The host may be trying to automate the parameter as well, so it needs to relinquish control when the user is modifying something in the user interface. <a href="class_i_editor_delegate.html#a271106e21e3e2d7869d152d99c155cad">More...</a><br /></td></tr>
<tr class="separator:a271106e21e3e2d7869d152d99c155cad inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3380ddd2695a51657b30862487dc7cf7 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a3380ddd2695a51657b30862487dc7cf7">SendParameterValueFromUI</a> (int paramIdx, double normalizedValue)</td></tr>
<tr class="memdesc:a3380ddd2695a51657b30862487dc7cf7 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">SPVFUI Called by the UI during a parameter change gesture, in order to notify the host of the new value (via a call in the API class) If you override this method you should call the base class implementation to make sure OnParamChangeUI gets triggered. <a href="class_i_editor_delegate.html#a3380ddd2695a51657b30862487dc7cf7">More...</a><br /></td></tr>
<tr class="separator:a3380ddd2695a51657b30862487dc7cf7 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a36eeb4c645a684ceae07edbe7685fbd0 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a36eeb4c645a684ceae07edbe7685fbd0">EndInformHostOfParamChangeFromUI</a> (int paramIdx)=0</td></tr>
<tr class="memdesc:a36eeb4c645a684ceae07edbe7685fbd0 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Called by the user interface at the end of a parameter change gesture, in order to notify the host (via a call in the API class) that the parameter is no longer being modified The host may be trying to automate the parameter as well, so it needs to relinquish control when the user is modifying something in the user interface. <a href="class_i_editor_delegate.html#a36eeb4c645a684ceae07edbe7685fbd0">More...</a><br /></td></tr>
<tr class="separator:a36eeb4c645a684ceae07edbe7685fbd0 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae669dfa47ef62529053e816b87fa6118 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#ae669dfa47ef62529053e816b87fa6118">EditorResizeFromUI</a> (int viewWidth, int viewHeight, bool needsPlatformResize)</td></tr>
<tr class="memdesc:ae669dfa47ef62529053e816b87fa6118 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">If the editor changes UI dimensions, e.g. <a href="class_i_editor_delegate.html#ae669dfa47ef62529053e816b87fa6118">More...</a><br /></td></tr>
<tr class="separator:ae669dfa47ef62529053e816b87fa6118 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a42747917c3106035b7265145e4bc624e inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a42747917c3106035b7265145e4bc624e">SendMidiMsgFromUI</a> (const <a class="el" href="struct_i_midi_msg.html">IMidiMsg</a> &msg)</td></tr>
<tr class="memdesc:a42747917c3106035b7265145e4bc624e inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">SendMidiMsgFromUI (Abbreviation: SMMFUI) This method should be used when sending a MIDI message from the UI. <a href="class_i_editor_delegate.html#a42747917c3106035b7265145e4bc624e">More...</a><br /></td></tr>
<tr class="separator:a42747917c3106035b7265145e4bc624e inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab0a2c692543f2793bf68b3f24b20b8fa inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#ab0a2c692543f2793bf68b3f24b20b8fa">SendSysexMsgFromUI</a> (const <a class="el" href="struct_i_sys_ex.html">ISysEx</a> &msg)</td></tr>
<tr class="memdesc:ab0a2c692543f2793bf68b3f24b20b8fa inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">SendMidiMsgFromUI (Abbreviation: SSMFUI) If a plug-in can send Sysex data as a result of actions in the user interface, this method can be used. <a href="class_i_editor_delegate.html#ab0a2c692543f2793bf68b3f24b20b8fa">More...</a><br /></td></tr>
<tr class="separator:ab0a2c692543f2793bf68b3f24b20b8fa inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa5b4aa88ab199c88796c1df421c5f8c3 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#aa5b4aa88ab199c88796c1df421c5f8c3">SendArbitraryMsgFromUI</a> (int msgTag, int ctrlTag=kNoTag, int dataSize=0, const void *pData=nullptr)</td></tr>
<tr class="memdesc:aa5b4aa88ab199c88796c1df421c5f8c3 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">SendArbitraryMsgFromUI (Abbreviation: SAMFUI) <a href="class_i_editor_delegate.html#aa5b4aa88ab199c88796c1df421c5f8c3">More...</a><br /></td></tr>
<tr class="separator:aa5b4aa88ab199c88796c1df421c5f8c3 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a781a47a19d4d2817273a6859a8bc62fe inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a781a47a19d4d2817273a6859a8bc62fe">DeferMidiMsg</a> (const <a class="el" href="struct_i_midi_msg.html">IMidiMsg</a> &msg)</td></tr>
<tr class="memdesc:a781a47a19d4d2817273a6859a8bc62fe inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">This method is needed, for remote editors to avoid a feedback loop. <a href="class_i_editor_delegate.html#a781a47a19d4d2817273a6859a8bc62fe">More...</a><br /></td></tr>
<tr class="separator:a781a47a19d4d2817273a6859a8bc62fe inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a80c2aa40c58119237663735e4d1cda31 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a80c2aa40c58119237663735e4d1cda31">DeferSysexMsg</a> (const <a class="el" href="struct_i_sys_ex.html">ISysEx</a> &msg)</td></tr>
<tr class="memdesc:a80c2aa40c58119237663735e4d1cda31 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">This method is needed, for remote editors to avoid a feedback loop. <a href="class_i_editor_delegate.html#a80c2aa40c58119237663735e4d1cda31">More...</a><br /></td></tr>
<tr class="separator:a80c2aa40c58119237663735e4d1cda31 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a787a79aaae0a471906b92a4b9c93aeac inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a787a79aaae0a471906b92a4b9c93aeac">SetEditorSize</a> (int width, int height)</td></tr>
<tr class="separator:a787a79aaae0a471906b92a4b9c93aeac inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a7210e7a0b067602ee62941a53b6d0e29 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a7210e7a0b067602ee62941a53b6d0e29">SetSizeConstraints</a> (int widthLo, int widthHi, int heightLo, int heightHi)</td></tr>
<tr class="separator:a7210e7a0b067602ee62941a53b6d0e29 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac22075cdea78bd44f48db4fca95c3198 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#ac22075cdea78bd44f48db4fca95c3198">GetEditorWidth</a> () const</td></tr>
<tr class="separator:ac22075cdea78bd44f48db4fca95c3198 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa8a2c6505f34efed86eb8f08bee02826 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#aa8a2c6505f34efed86eb8f08bee02826">GetEditorHeight</a> () const</td></tr>
<tr class="separator:aa8a2c6505f34efed86eb8f08bee02826 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2f64bd7f88591cf4d8943b567414f98c inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a2f64bd7f88591cf4d8943b567414f98c">GetMinWidth</a> () const</td></tr>
<tr class="separator:a2f64bd7f88591cf4d8943b567414f98c inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a234a1b9314f65e62d0a7cb2d805a5c29 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a234a1b9314f65e62d0a7cb2d805a5c29">GetMaxWidth</a> () const</td></tr>
<tr class="separator:a234a1b9314f65e62d0a7cb2d805a5c29 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a131143d0f164f0e21a4994dcff38a6eb inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a131143d0f164f0e21a4994dcff38a6eb">GetMinHeight</a> () const</td></tr>
<tr class="separator:a131143d0f164f0e21a4994dcff38a6eb inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a7a050bd8139f379b2eb122119510b3a4 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a7a050bd8139f379b2eb122119510b3a4">GetMaxHeight</a> () const</td></tr>
<tr class="separator:a7a050bd8139f379b2eb122119510b3a4 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad54d876905b39ebdac2b51ed25cd6e6a inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#ad54d876905b39ebdac2b51ed25cd6e6a">ConstrainEditorResize</a> (int &w, int &h) const</td></tr>
<tr class="memdesc:ad54d876905b39ebdac2b51ed25cd6e6a inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Constrain the incoming editor width and height values based on the minimum and maximum. <a href="class_i_editor_delegate.html#ad54d876905b39ebdac2b51ed25cd6e6a">More...</a><br /></td></tr>
<tr class="separator:ad54d876905b39ebdac2b51ed25cd6e6a inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a920d231251e6f14e63f5b09c521ca171 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a920d231251e6f14e63f5b09c521ca171">SerializeEditorState</a> (<a class="el" href="class_i_byte_chunk.html">IByteChunk</a> &chunk) const</td></tr>
<tr class="memdesc:a920d231251e6f14e63f5b09c521ca171 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Serializes the editor state (such as scale) into a binary chunk. <a href="class_i_editor_delegate.html#a920d231251e6f14e63f5b09c521ca171">More...</a><br /></td></tr>
<tr class="separator:a920d231251e6f14e63f5b09c521ca171 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a113c528f4ada7dc7bb7482f3bf2804b7 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a113c528f4ada7dc7bb7482f3bf2804b7">UnserializeEditorState</a> (const <a class="el" href="class_i_byte_chunk.html">IByteChunk</a> &chunk, int startPos)</td></tr>
<tr class="memdesc:a113c528f4ada7dc7bb7482f3bf2804b7 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Unserializes editor state (such as scale). <a href="class_i_editor_delegate.html#a113c528f4ada7dc7bb7482f3bf2804b7">More...</a><br /></td></tr>
<tr class="separator:a113c528f4ada7dc7bb7482f3bf2804b7 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a61cbf1b020b83d5e74f3e9a6b51f7b40 inherit pub_methods_class_i_editor_delegate"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_editor_delegate.html#a61cbf1b020b83d5e74f3e9a6b51f7b40">SetScreenScale</a> (float scale)</td></tr>
<tr class="memdesc:a61cbf1b020b83d5e74f3e9a6b51f7b40 inherit pub_methods_class_i_editor_delegate"><td class="mdescLeft"> </td><td class="mdescRight">Can be used by a host API to inform the editor of screen scale changes. <a href="class_i_editor_delegate.html#a61cbf1b020b83d5e74f3e9a6b51f7b40">More...</a><br /></td></tr>
<tr class="separator:a61cbf1b020b83d5e74f3e9a6b51f7b40 inherit pub_methods_class_i_editor_delegate"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:aea230faa6c9685cc9d8a00e31f420962"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_cocoa_editor_delegate.html#aea230faa6c9685cc9d8a00e31f420962">mViewController</a> = nullptr</td></tr>
<tr class="separator:aea230faa6c9685cc9d8a00e31f420962"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p >An editor delegate base class that uses Apple frameworks for the UI, either in Objective C, or Swift. </p>
<p class="definition">Definition at line <a class="el" href="_i_plug_cocoa_editor_delegate_8h_source.html#l00024">24</a> of file <a class="el" href="_i_plug_cocoa_editor_delegate_8h_source.html">IPlugCocoaEditorDelegate.h</a>.</p>
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
<a id="af2a33c185deb56968fcb25f68195d2bd" name="af2a33c185deb56968fcb25f68195d2bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2a33c185deb56968fcb25f68195d2bd">◆ </a></span>CocoaEditorDelegate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">CocoaEditorDelegate::CocoaEditorDelegate </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"><em>nParams</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html#l00016">16</a> of file <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html">IPlugCocoaEditorDelegate.mm</a>.</p>
</div>
</div>
<a id="a924ae019d841598070bde730847381e0" name="a924ae019d841598070bde730847381e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a924ae019d841598070bde730847381e0">◆ </a></span>~CocoaEditorDelegate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">CocoaEditorDelegate::~CocoaEditorDelegate </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html#l00021">21</a> of file <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html">IPlugCocoaEditorDelegate.mm</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aa3a95b46746570d9fe148009150f9ee1" name="aa3a95b46746570d9fe148009150f9ee1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3a95b46746570d9fe148009150f9ee1">◆ </a></span>CloseWindow()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void CocoaEditorDelegate::CloseWindow </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>If you are not using <a class="el" href="class_i_graphics.html" title="The lowest level base class of an IGraphics context.">IGraphics</a> you can if you need to free resources etc when the window closes. </p>
<p >Call base implementation. </p>
<p>Reimplemented from <a class="el" href="class_i_editor_delegate.html#a4e002963a0e50d2222ef4b9400403b3b">IEditorDelegate</a>.</p>
<p class="definition">Definition at line <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html#l00036">36</a> of file <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html">IPlugCocoaEditorDelegate.mm</a>.</p>
</div>
</div>
<a id="aa997d1d596771ad3370914df46191e3c" name="aa997d1d596771ad3370914df46191e3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa997d1d596771ad3370914df46191e3c">◆ </a></span>OnMessage()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool CocoaEditorDelegate::OnMessage </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"><em>msgTag</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>ctrlTag</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>dataSize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void * </td>
<td class="paramname"><em>pData</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This could be implemented in either DSP or EDITOR to receive a message from the other one. </p>
<p>Reimplemented from <a class="el" href="class_i_editor_delegate.html#aa769b48fa0ecfd59a6ab45c19244a571">IEditorDelegate</a>.</p>
<p class="definition">Definition at line <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html#l00041">41</a> of file <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html">IPlugCocoaEditorDelegate.mm</a>.</p>
</div>
</div>
<a id="aaaaac1dc1de7282fddd01549a198a318" name="aaaaac1dc1de7282fddd01549a198a318"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaaaac1dc1de7282fddd01549a198a318">◆ </a></span>OnMidiMsgUI()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void CocoaEditorDelegate::OnMidiMsgUI </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="struct_i_midi_msg.html">IMidiMsg</a> & </td>
<td class="paramname"><em>msg</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handle incoming MIDI messages sent to the user interface. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">msg</td><td>The MIDI message to process <br />
</td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="class_i_editor_delegate.html#a49ff38d310445f482dd69dd32e49e4d3">IEditorDelegate</a>.</p>
<p class="definition">Definition at line <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html#l00056">56</a> of file <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html">IPlugCocoaEditorDelegate.mm</a>.</p>
</div>
</div>
<a id="abf73ebeea67001c445782e6e0e1164c5" name="abf73ebeea67001c445782e6e0e1164c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf73ebeea67001c445782e6e0e1164c5">◆ </a></span>OnParamChangeUI()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void CocoaEditorDelegate::OnParamChangeUI </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"><em>paramIdx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group___i_plug_constants.html#ga0ffe9e97c910636e31bad47d4877bc6e">EParamSource</a> </td>
<td class="paramname"><em>source</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Override this method to do something when a parameter changes on the main/UI thread Like OnParamChange, OnParamChangeUI will be called when a parameter changes. </p>
<p >However, whereas OnParamChange may be called on the audio thread and should be used to update DSP state, OnParamChangeUI is always called on the low-priority thread, should be used to update UI (e.g. for hiding or showing controls). You should not update parameter objects using this method. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">paramIdx</td><td>The index of the parameter that changed </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="class_i_editor_delegate.html#a318f42e0744520eeedd2e21081979b4e">IEditorDelegate</a>.</p>
<p class="definition">Definition at line <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html#l00048">48</a> of file <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html">IPlugCocoaEditorDelegate.mm</a>.</p>
<p class="reference">References <a class="el" href="_i_plug_parameter_8h_source.html#l00364">IParam::GetNormalized()</a>, and <a class="el" href="_i_plug_editor_delegate_8h_source.html#l00078">IEditorDelegate::GetParam()</a>.</p>
</div>
</div>
<a id="a432f6dde34795b37b09733fa7c766b04" name="a432f6dde34795b37b09733fa7c766b04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a432f6dde34795b37b09733fa7c766b04">◆ </a></span>OnSysexMsgUI()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void CocoaEditorDelegate::OnSysexMsgUI </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="struct_i_sys_ex.html">ISysEx</a> & </td>
<td class="paramname"><em>msg</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handle incoming SysEx messages sent to the user interface. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">msg</td><td>The SysEx message to process </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="class_i_editor_delegate.html#a0a19a1af6f13fe055054f742e01a3fc8">IEditorDelegate</a>.</p>
<p class="definition">Definition at line <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html#l00061">61</a> of file <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html">IPlugCocoaEditorDelegate.mm</a>.</p>
</div>
</div>
<a id="a944b3165b866bdfdc8eb1637feee5803" name="a944b3165b866bdfdc8eb1637feee5803"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a944b3165b866bdfdc8eb1637feee5803">◆ </a></span>OpenWindow()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void * CocoaEditorDelegate::OpenWindow </td>
<td>(</td>
<td class="paramtype">void * </td>
<td class="paramname"><em>pParent</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>If you are not using <a class="el" href="class_i_graphics.html" title="The lowest level base class of an IGraphics context.">IGraphics</a>, you can implement this method to attach to the native parent view e.g. </p>
<p >NSView, UIView, HWND. Defer calling <a class="el" href="class_i_editor_delegate.html#af00da854c73caaa96da911fbdbf8f13f" title="Override this method to do something before the UI is opened.">OnUIOpen()</a> if necessary. </p>
<p>Reimplemented from <a class="el" href="class_i_editor_delegate.html#a37b3dc6c3a22eb731a45ffc590a45a0c">IEditorDelegate</a>.</p>
<p class="definition">Definition at line <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html#l00025">25</a> of file <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html">IPlugCocoaEditorDelegate.mm</a>.</p>
</div>
</div>
<a id="af675af28184f31ab40abf46a3aa0e4b1" name="af675af28184f31ab40abf46a3aa0e4b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af675af28184f31ab40abf46a3aa0e4b1">◆ </a></span>SendControlMsgFromDelegate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void CocoaEditorDelegate::SendControlMsgFromDelegate </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"><em>ctrlTag</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>msgTag</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>dataSize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void * </td>
<td class="paramname"><em>pData</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>SendControlMsgFromDelegate (Abbreviation: SCMFD) WARNING: should not be called on the realtime audio thread. </p>
<p >This method can be used to send opaque data from a class implementing <a class="el" href="class_i_editor_delegate.html" title="This pure virtual interface delegates communication in both directions between a UI editor and someth...">IEditorDelegate</a> to a specific control in the user interface. The message can be handled in the destination control via <a class="el" href="class_i_control.html#a850af818653722be3d3a72c9558ff6a6" title="Implement to receive messages sent to the control, see IEditorDelegate:SendControlMsgFromDelegate()">IControl::OnMsgFromDelegate</a> </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctrlTag</td><td>A unique tag to identify the control that is the destination of the message </td></tr>
<tr><td class="paramname">msgTag</td><td>A unique tag to identify the message </td></tr>
<tr><td class="paramname">dataSize</td><td>The size in bytes of the data payload pointed to by pData. Note: if this is nonzero, pData must be valid. </td></tr>
<tr><td class="paramname">pData</td><td>Ptr to the opaque data payload for the message </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="class_i_editor_delegate.html#a7d0211abb930c3f9b1e549461fb71ffc">IEditorDelegate</a>.</p>
<p class="definition">Definition at line <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html#l00073">73</a> of file <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html">IPlugCocoaEditorDelegate.mm</a>.</p>
</div>
</div>
<a id="a98259b2a852a528c27fc4e26fbf43268" name="a98259b2a852a528c27fc4e26fbf43268"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98259b2a852a528c27fc4e26fbf43268">◆ </a></span>SendControlValueFromDelegate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void CocoaEditorDelegate::SendControlValueFromDelegate </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"><em>ctrlTag</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double </td>
<td class="paramname"><em>normalizedValue</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>SendControlValueFromDelegate (Abbreviation: SCVFD) WARNING: should not be called on the realtime audio thread. </p>
<p >In <a class="el" href="class_i_graphics.html" title="The lowest level base class of an IGraphics context.">IGraphics</a> plug-ins, this method is used to update controls in the user interface from a class implementing <a class="el" href="class_i_editor_delegate.html" title="This pure virtual interface delegates communication in both directions between a UI editor and someth...">IEditorDelegate</a>, when the control is not linked to a parameter. A typical use case would be a meter control. In OnIdle() your plug-in would call this method to update the <a class="el" href="class_i_control.html" title="The lowest level base class of an IGraphics control.">IControl</a>'s value. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctrlTag</td><td>A tag for the control </td></tr>
<tr><td class="paramname">normalizedValue</td><td>The normalised value to set the control to. This will modify IControl::mValue; </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="class_i_editor_delegate.html#a4005eb1239e0e22e73c80e1fc97f5bb8">IEditorDelegate</a>.</p>
<p class="definition">Definition at line <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html#l00068">68</a> of file <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html">IPlugCocoaEditorDelegate.mm</a>.</p>
</div>
</div>
<a id="ad58564cec54b3610f91a9042e83fdcf6" name="ad58564cec54b3610f91a9042e83fdcf6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad58564cec54b3610f91a9042e83fdcf6">◆ </a></span>SendParameterValueFromDelegate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void CocoaEditorDelegate::SendParameterValueFromDelegate </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"><em>paramIdx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double </td>
<td class="paramname"><em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool </td>
<td class="paramname"><em>normalized</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>SendParameterValueFromDelegate (Abbreviation: SPVFD) WARNING: should not be called on the realtime audio thread. </p>
<p >This method is called by the class implementing the delegate interface (not the plug-in API class) in order to update the user interface with the new parameter values, typically after automation. The similarly named <a class="el" href="class_i_plug_a_p_i_base.html#aa9f50bef5f022a2dedf2d58cee8c8707" title="This is called from the plug-in API class in order to update UI controls linked to plug-in parameters...">IPlugAPIBase::SendParameterValueFromAPI()</a> should take care of queueing and deferring, if there is no main thread notification from the API If you override this method you should call the base class implementation to make sure OnParamChangeUI gets triggered In <a class="el" href="class_i_graphics.html" title="The lowest level base class of an IGraphics context.">IGraphics</a> plug-ins, this will update any IControls that have their mParamIdx set > -1 </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">paramIdx</td><td>The index of the parameter to be updated </td></tr>
<tr><td class="paramname">value</td><td>The new value of the parameter </td></tr>
<tr><td class="paramname">normalized</td><td><code>true</code> if value is normalised </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="class_i_editor_delegate.html#a95810d70d8183bcd29c24e7b76bdb492">IEditorDelegate</a>.</p>
<p class="definition">Definition at line <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html#l00080">80</a> of file <a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html">IPlugCocoaEditorDelegate.mm</a>.</p>
<p class="reference">References <a class="el" href="_i_plug_editor_delegate_8h_source.html#l00226">IEditorDelegate::SendParameterValueFromDelegate()</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="aea230faa6c9685cc9d8a00e31f420962" name="aea230faa6c9685cc9d8a00e31f420962"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea230faa6c9685cc9d8a00e31f420962">◆ </a></span>mViewController</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void* CocoaEditorDelegate::mViewController = nullptr</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="_i_plug_cocoa_editor_delegate_8h_source.html#l00041">41</a> of file <a class="el" href="_i_plug_cocoa_editor_delegate_8h_source.html">IPlugCocoaEditorDelegate.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="_i_plug_cocoa_editor_delegate_8h_source.html">IPlugCocoaEditorDelegate.h</a></li>
<li><a class="el" href="_i_plug_cocoa_editor_delegate_8mm_source.html">IPlugCocoaEditorDelegate.mm</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.5
</small></address>
</body>
</html>