JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
vstspeaker.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------
2// Project : VST SDK
3//
4// Category : Interfaces
5// Filename : pluginterfaces/vst/vstspeaker.h
6// Created by : Steinberg, 01/2018
7// Description : common defines
8//
9//-----------------------------------------------------------------------------
10// This file is part of a Steinberg SDK. It is subject to the license terms
11// in the LICENSE file found in the top-level directory of this distribution
12// and at www.steinberg.net/sdklicenses.
13// No part of the SDK, including this file, may be copied, modified, propagated,
14// or distributed except according to the terms contained in the LICENSE file.
15//-----------------------------------------------------------------------------
16
17#pragma once
18
20
21//------------------------------------------------------------------------
22namespace Steinberg {
23namespace Vst {
24//------------------------------------------------------------------------
34//------------------------------------------------------------------------
35
36//------------------------------------------------------------------------
39//------------------------------------------------------------------------
41const Speaker kSpeakerL = 1 << 0;
42const Speaker kSpeakerR = 1 << 1;
43const Speaker kSpeakerC = 1 << 2;
44const Speaker kSpeakerLfe = 1 << 3;
45const Speaker kSpeakerLs = 1 << 4;
46const Speaker kSpeakerRs = 1 << 5;
47const Speaker kSpeakerLc = 1 << 6;
48const Speaker kSpeakerRc = 1 << 7;
49const Speaker kSpeakerS = 1 << 8;
51const Speaker kSpeakerSl = 1 << 9;
52const Speaker kSpeakerSr = 1 << 10;
53const Speaker kSpeakerTc = 1 << 11;
54const Speaker kSpeakerTfl = 1 << 12;
55const Speaker kSpeakerTfc = 1 << 13;
56const Speaker kSpeakerTfr = 1 << 14;
57const Speaker kSpeakerTrl = 1 << 15;
58const Speaker kSpeakerTrc = 1 << 16;
59const Speaker kSpeakerTrr = 1 << 17;
60const Speaker kSpeakerLfe2 = 1 << 18;
61const Speaker kSpeakerM = 1 << 19;
62
63const Speaker kSpeakerACN0 = (Speaker)1 << 20;
64const Speaker kSpeakerACN1 = (Speaker)1 << 21;
65const Speaker kSpeakerACN2 = (Speaker)1 << 22;
66const Speaker kSpeakerACN3 = (Speaker)1 << 23;
67const Speaker kSpeakerACN4 = (Speaker)1 << 38;
68const Speaker kSpeakerACN5 = (Speaker)1 << 39;
69const Speaker kSpeakerACN6 = (Speaker)1 << 40;
70const Speaker kSpeakerACN7 = (Speaker)1 << 41;
71const Speaker kSpeakerACN8 = (Speaker)1 << 42;
72const Speaker kSpeakerACN9 = (Speaker)1 << 43;
73const Speaker kSpeakerACN10 = (Speaker)1 << 44;
74const Speaker kSpeakerACN11 = (Speaker)1 << 45;
75const Speaker kSpeakerACN12 = (Speaker)1 << 46;
76const Speaker kSpeakerACN13 = (Speaker)1 << 47;
77const Speaker kSpeakerACN14 = (Speaker)1 << 48;
78const Speaker kSpeakerACN15 = (Speaker)1 << 49;
79const Speaker kSpeakerACN16 = (Speaker)1 << 50;
80const Speaker kSpeakerACN17 = (Speaker)1 << 51;
81const Speaker kSpeakerACN18 = (Speaker)1 << 52;
82const Speaker kSpeakerACN19 = (Speaker)1 << 53;
83const Speaker kSpeakerACN20 = (Speaker)1 << 54;
84const Speaker kSpeakerACN21 = (Speaker)1 << 55;
85const Speaker kSpeakerACN22 = (Speaker)1 << 56;
86const Speaker kSpeakerACN23 = (Speaker)1 << 57;
87const Speaker kSpeakerACN24 = (Speaker)1 << 58;
88
89const Speaker kSpeakerTsl = (Speaker)1 << 24;
90const Speaker kSpeakerTsr = (Speaker)1 << 25;
91const Speaker kSpeakerLcs = (Speaker)1 << 26;
92const Speaker kSpeakerRcs = (Speaker)1 << 27;
93
94const Speaker kSpeakerBfl = (Speaker)1 << 28;
95const Speaker kSpeakerBfc = (Speaker)1 << 29;
96const Speaker kSpeakerBfr = (Speaker)1 << 30;
97
98const Speaker kSpeakerPl = (Speaker)1 << 31;
99const Speaker kSpeakerPr = (Speaker)1 << 32;
100
101const Speaker kSpeakerBsl = (Speaker)1 << 33;
102const Speaker kSpeakerBsr = (Speaker)1 << 34;
103const Speaker kSpeakerBrl = (Speaker)1 << 35;
104const Speaker kSpeakerBrc = (Speaker)1 << 36;
105const Speaker kSpeakerBrr = (Speaker)1 << 37;
106//------------------------------------------------------------------------
109//------------------------------------------------------------------------
111namespace SpeakerArr
112{
113//------------------------------------------------------------------------
131
// 3.0 // 3.1 // LCRS // LCRS+Lfe // 4.0 (Quadro) // 4.1 (Quadro+Lfe) // 5.0 (ITU 0+5+0.0 Sound System B) // 5.1 (ITU 0+5+0.1 Sound System B)
164const SpeakerArrangement k71CineFullFront = k71Cine;
// (ITU 0+7+0.0 Sound System I) // (ITU 0+7+0.1 Sound System I)
169
172const SpeakerArrangement k71CineSideFill = k71Music;
175
194
207const SpeakerArrangement kAmbi6thOrderACN = 0x0001FFFFFFFFFFFF;
209const SpeakerArrangement kAmbi7thOrderACN = 0xFFFFFFFFFFFFFFFF;
210
211/*-----------*/
212/* 3D formats */
213/*-----------*/
// 4.0.4
216const SpeakerArrangement k40_4 = k80Cube;
217
// 6.1.1
220
// 6.1.1
223
// 5.0.2 (ITU 2+5+0.0 Sound System C)
226const SpeakerArrangement k70MPEG3D = k70CineFrontHigh;
228
// 5.1.2 (ITU 2+5+0.1 Sound System C)
231const SpeakerArrangement k71MPEG3D = k71CineFrontHigh;
233
// 5.0.2 (Side)
236const SpeakerArrangement k50_2_TS = k70CineSideHigh;
237
// 5.1.2 (Side)
240const SpeakerArrangement k51_2_TS = k71CineSideHigh;
241
// 4.1.3.1
245const SpeakerArrangement k41_4_1 = k81MPEG3D;
246
// 5.0.4 (ITU 4+5+0.0 Sound System D)
250const SpeakerArrangement k50_4 = k90;
251
// 5.1.4 (ITU 4+5+0.1 Sound System D)
254const SpeakerArrangement k51_4 = k91;
255
// 5.0.4.1 (ITU 4+5+1.0 Sound System E)
258
// 5.1.4.1 (ITU 4+5+1.1 Sound System E)
261
// 7.0.2
265
// 7.1.2
268const SpeakerArrangement k91Atmos = k71_2; // 9.1 Dolby Atmos (3D)
269
// 7.0.3 (ITU 3+7+0.0 Sound System F)
273
// 7.2.3 (ITU 3+7+0.2 Sound System F)
276
// 7.0.4 (ITU 4+7+0.0 Sound System J)
280
// 7.1.4 (ITU 4+7+0.1 Sound System J)
283const SpeakerArrangement k111MPEG3D = k71_4;
284
// 7.0.6
289
// 7.1.6
292
// 9.0.4 (ITU 4+9+0.0 Sound System G)
297
// 9.1.4 (ITU 4+9+0.1 Sound System G)
300
// 9.0.6
305
// 9.1.6
308
// 5.0.5 (10.0 Auro-3D)
312const SpeakerArrangement k50_5 = k100;
313
// 5.1.5 (10.1 Auro-3D)
316const SpeakerArrangement k101MPEG3D = k101;
317const SpeakerArrangement k51_5 = k101;
318
// 5.2.5
322const SpeakerArrangement k52_5 = k102;
323
// 5.0.6 (11.0 Auro-3D)
327const SpeakerArrangement k50_6 = k110;
328
// 5.1.6 (11.1 Auro-3D)
331const SpeakerArrangement k51_6 = k111;
332
// 7.2.5
336const SpeakerArrangement k72_5 = k122;
337
// 7.0.6 (13.0 Auro-3D)
341
// 7.1.6 (13.1 Auro-3D)
344
// 6.0.4.4
349const SpeakerArrangement k60_4_4 = k140;
350
// 10.0.9.3 (ITU 9+10+3.0 Sound System H)
355const SpeakerArrangement k100_9_3 = k220;
356
// 10.2.9.3 (ITU 9+10+3.2 Sound System H)
361const SpeakerArrangement k102_9_3 = k222;
362
// 5.0.5.3
367
// 5.1.5.3
370
// 5.0.2.2
375
// 5.0.4.2
380
// 7.0.4.2
385
// 5.0.5.0 (Sony 360RA)
389
// 4.0.2.2 (Sony 360RA)
394
// 4.0.4.2 (Sony 360RA)
399
// 5.0.3.2 (Sony 360RA)
404
// 3.0.5.2 (Sony 360RA)
409
// 4.0.4.4 (Sony 360RA)
414
// 5.0.4.4 (Sony 360RA)
419
420//------------------------------------------------------------------------
425const CString kStringMono = "Mono";
426const CString kStringStereo = "Stereo";
427const CString kStringStereoR = "Stereo (Ls Rs)";
428const CString kStringStereoC = "Stereo (Lc Rc)";
429const CString kStringStereoSide = "Stereo (Sl Sr)";
430const CString kStringStereoCLfe = "Stereo (C LFE)";
431const CString kStringStereoTF = "Stereo (Tfl Tfr)";
432const CString kStringStereoTS = "Stereo (Tsl Tsr)";
433const CString kStringStereoTR = "Stereo (Trl Trr)";
434const CString kStringStereoBF = "Stereo (Bfl Bfr)";
435const CString kStringCineFront = "Cine Front";
436
437const CString kString30Cine = "LRC";
438const CString kString30Music = "LRS";
439const CString kString31Cine = "LRC+LFE";
440const CString kString31Music = "LRS+LFE";
441const CString kString40Cine = "LRCS";
442const CString kString40Music = "Quadro";
443const CString kString41Cine = "LRCS+LFE";
444const CString kString41Music = "Quadro+LFE";
445const CString kString50 = "5.0";
446const CString kString51 = "5.1";
447const CString kString60Cine = "6.0 Cine";
448const CString kString60Music = "6.0 Music";
449const CString kString61Cine = "6.1 Cine";
450const CString kString61Music = "6.1 Music";
451const CString kString70Cine = "7.0 SDDS";
452const CString kString70CineOld = "7.0 Cine (SDDS)";
453const CString kString70Music = "7.0";
454const CString kString70MusicOld = "7.0 Music (Dolby)";
455const CString kString71Cine = "7.1 SDDS";
456const CString kString71CineOld = "7.1 Cine (SDDS)";
457const CString kString71Music = "7.1";
458const CString kString71MusicOld = "7.1 Music (Dolby)";
459const CString kString71CineTopCenter = "7.1 Cine Top Center";
460const CString kString71CineCenterHigh = "7.1 Cine Center High";
461const CString kString71CineFullRear = "7.1 Cine Full Rear";
462const CString kString51_2 = "5.1.2";
463const CString kString50_2 = "5.0.2";
464const CString kString50_2TopSide = "5.0.2 Top Side";
465const CString kString51_2TopSide = "5.1.2 Top Side";
466const CString kString71Proximity = "7.1 Proximity";
467const CString kString80Cine = "8.0 Cine";
468const CString kString80Music = "8.0 Music";
469const CString kString40_4 = "8.0 Cube";
470const CString kString81Cine = "8.1 Cine";
471const CString kString81Music = "8.1 Music";
472const CString kString90Cine = "9.0 Cine";
473const CString kString91Cine = "9.1 Cine";
474const CString kString100Cine = "10.0 Cine";
475const CString kString101Cine = "10.1 Cine";
476const CString kString52_5 = "5.2.5";
477const CString kString72_5 = "12.2";
478const CString kString50_4 = "5.0.4";
479const CString kString51_4 = "5.1.4";
480const CString kString50_4_1 = "5.0.4.1";
481const CString kString51_4_1 = "5.1.4.1";
482const CString kString70_2 = "7.0.2";
483const CString kString71_2 = "7.1.2";
484const CString kString70_3 = "7.0.3";
485const CString kString72_3 = "7.2.3";
486const CString kString70_4 = "7.0.4";
487const CString kString71_4 = "7.1.4";
488const CString kString70_6 = "7.0.6";
489const CString kString71_6 = "7.1.6";
490const CString kString90_4 = "9.0.4";
491const CString kString91_4 = "9.1.4";
492const CString kString90_6 = "9.0.6";
493const CString kString91_6 = "9.1.6";
494const CString kString50_5 = "10.0 Auro-3D";
495const CString kString51_5 = "10.1 Auro-3D";
496const CString kString50_6 = "11.0 Auro-3D";
497const CString kString51_6 = "11.1 Auro-3D";
498const CString kString130 = "13.0 Auro-3D";
499const CString kString131 = "13.1 Auro-3D";
500const CString kString41_4_1 = "8.1 MPEG";
501const CString kString60_4_4 = "14.0";
502const CString kString220 = "22.0";
503const CString kString222 = "22.2";
504const CString kString50_5_3 = "5.0.5.3";
505const CString kString51_5_3 = "5.1.5.3";
506const CString kString50_2_2 = "5.0.2.2";
507const CString kString50_4_2 = "5.0.4.2";
508const CString kString70_4_2 = "7.0.4.2";
509const CString kString50_5_Sony = "5.0.5 Sony";
510const CString kString40_2_2 = "4.0.3.2";
511const CString kString40_4_2 = "4.0.4.2";
512const CString kString50_3_2 = "5.0.3.2";
513const CString kString30_5_2 = "3.0.5.2";
514const CString kString40_4_4 = "4.0.4.4";
515const CString kString50_4_4 = "5.0.4.4";
516
517const CString kStringAmbi1stOrder = "1st Order Ambisonics";
518const CString kStringAmbi2cdOrder = "2nd Order Ambisonics";
519const CString kStringAmbi3rdOrder = "3rd Order Ambisonics";
520const CString kStringAmbi4thOrder = "4th Order Ambisonics";
521const CString kStringAmbi5thOrder = "5th Order Ambisonics";
522const CString kStringAmbi6thOrder = "6th Order Ambisonics";
523const CString kStringAmbi7thOrder = "7th Order Ambisonics";
526//------------------------------------------------------------------------
531const CString kStringStereoS = "L R";
532const CString kStringStereoRS = "Ls Rs";
533const CString kStringStereoCS = "Lc Rc";
534const CString kStringStereoSS = "Sl Sr";
535const CString kStringStereoCLfeS= "C LFE";
536const CString kStringStereoTFS = "Tfl Tfr";
537const CString kStringStereoTSS = "Tsl Tsr";
538const CString kStringStereoTRS = "Trl Trr";
539const CString kStringStereoBFS = "Bfl Bfr";
540const CString kStringCineFrontS = "L R C Lc Rc";
541const CString kString30CineS = "L R C";
542const CString kString30MusicS = "L R S";
543const CString kString31CineS = "L R C LFE";
544const CString kString31MusicS = "L R LFE S";
545const CString kString40CineS = "L R C S";
546const CString kString40MusicS = "L R Ls Rs";
547const CString kString41CineS = "L R C LFE S";
548const CString kString41MusicS = "L R LFE Ls Rs";
549const CString kString50S = "L R C Ls Rs";
550const CString kString51S = "L R C LFE Ls Rs";
551const CString kString60CineS = "L R C Ls Rs Cs";
552const CString kString60MusicS = "L R Ls Rs Sl Sr";
553const CString kString61CineS = "L R C LFE Ls Rs Cs";
554const CString kString61MusicS = "L R LFE Ls Rs Sl Sr";
555const CString kString70CineS = "L R C Ls Rs Lc Rc";
556const CString kString70MusicS = "L R C Ls Rs Sl Sr";
557const CString kString71CineS = "L R C LFE Ls Rs Lc Rc";
558const CString kString71MusicS = "L R C LFE Ls Rs Sl Sr";
559const CString kString80CineS = "L R C Ls Rs Lc Rc Cs";
560const CString kString80MusicS = "L R C Ls Rs Cs Sl Sr";
561const CString kString81CineS = "L R C LFE Ls Rs Lc Rc Cs";
562const CString kString81MusicS = "L R C LFE Ls Rs Cs Sl Sr";
563const CString kString40_4S = "L R Ls Rs Tfl Tfr Trl Trr";
564const CString kString71CineTopCenterS = "L R C LFE Ls Rs Cs Tc";
565const CString kString71CineCenterHighS = "L R C LFE Ls Rs Cs Tfc";
566const CString kString71CineFullRearS = "L R C LFE Ls Rs Lcs Rcs";
567const CString kString50_2S = "L R C Ls Rs Tfl Tfr";
568const CString kString51_2S = "L R C LFE Ls Rs Tfl Tfr";
569const CString kString50_2TopSideS = "L R C Ls Rs Tsl Tsr";
570const CString kString51_2TopSideS = "L R C LFE Ls Rs Tsl Tsr";
571const CString kString71ProximityS = "L R C LFE Ls Rs Pl Pr";
572const CString kString90CineS = "L R C Ls Rs Lc Rc Sl Sr";
573const CString kString91CineS = "L R C LFE Ls Rs Lc Rc Sl Sr";
574const CString kString100CineS = "L R C Ls Rs Lc Rc Cs Sl Sr";
575const CString kString101CineS = "L R C LFE Ls Rs Lc Rc Cs Sl Sr";
576const CString kString50_4S = "L R C Ls Rs Tfl Tfr Trl Trr";
577const CString kString51_4S = "L R C LFE Ls Rs Tfl Tfr Trl Trr";
578const CString kString50_4_1S = "L R C Ls Rs Tfl Tfr Trl Trr Bfc";
579const CString kString51_4_1S = "L R C LFE Ls Rs Tfl Tfr Trl Trr Bfc";
580const CString kString70_2S = "L R C Ls Rs Sl Sr Tsl Tsr";
581const CString kString71_2S = "L R C LFE Ls Rs Sl Sr Tsl Tsr";
582const CString kString70_3S = "L R C Ls Rs Sl Sr Tfl Tfr Trc";
583const CString kString72_3S = "L R C LFE Ls Rs Sl Sr Tfl Tfr Trc LFE2";
584const CString kString70_4S = "L R C Ls Rs Sl Sr Tfl Tfr Trl Trr";
585const CString kString71_4S = "L R C LFE Ls Rs Sl Sr Tfl Tfr Trl Trr";
586const CString kString70_6S = "L R C Ls Rs Sl Sr Tfl Tfr Trl Trr Tsl Tsr";
587const CString kString71_6S = "L R C LFE Ls Rs Sl Sr Tfl Tfr Trl Trr Tsl Tsr";
588const CString kString90_4S = "L R C Ls Rs Lc Rc Sl Sr Tfl Tfr Trl Trr";
589const CString kString91_4S = "L R C LFE Ls Rs Lc Rc Sl Sr Tfl Tfr Trl Trr";
590const CString kString90_6S = "L R C Ls Rs Lc Rc Sl Sr Tfl Tfr Trl Trr Tsl Tsr";
591const CString kString91_6S = "L R C LFE Ls Rs Lc Rc Sl Sr Tfl Tfr Trl Trr Tsl Tsr";
592const CString kString50_5S = "L R C Ls Rs Tc Tfl Tfr Trl Trr";
593const CString kString51_5S = "L R C LFE Ls Rs Tc Tfl Tfr Trl Trr";
594const CString kString50_5_SonyS = "L R C Ls Rs Tfl Tfc Tfr Trl Trr";
595const CString kString50_6S = "L R C Ls Rs Tc Tfl Tfc Tfr Trl Trr";
596const CString kString51_6S = "L R C LFE Ls Rs Tc Tfl Tfc Tfr Trl Trr";
597const CString kString130S = "L R C Ls Rs Sl Sr Tc Tfl Tfc Tfr Trl Trr";
598const CString kString131S = "L R C LFE Ls Rs Sl Sr Tc Tfl Tfc Tfr Trl Trr";
599const CString kString52_5S = "L R C LFE Ls Rs Tfl Tfc Tfr Trl Trr LFE2";
600const CString kString72_5S = "L R C LFE Ls Rs Lc Rc Tfl Tfc Tfr Trl Trr LFE2";
601const CString kString41_4_1S = "L R LFE Ls Rs Tfl Tfc Tfr Bfc";
602const CString kString30_5_2S = "L R C Tfl Tfc Tfr Trl Trr Bfl Bfr";
603const CString kString40_2_2S = "C Sl Sr Cs Tfc Tsl Tsr Trc";
604const CString kString40_4_2S = "L R Ls Rs Tfl Tfr Trl Trr Bfl Bfr";
605const CString kString40_4_4S = "L R Ls Rs Tfl Tfr Trl Trr Bfl Bfr Brl Brr";
606const CString kString50_4_4S = "L R C Ls Rs Tfl Tfr Trl Trr Bfl Bfr Brl Brr";
607const CString kString60_4_4S = "L R Ls Rs Sl Sr Tfl Tfr Trl Trr Bfl Bfr Brl Brr";
608const CString kString50_5_3S = "L R C Ls Rs Tfl Tfc Tfr Trl Trr Bfl Bfc Bfr";
609const CString kString51_5_3S = "L R C LFE Ls Rs Tfl Tfc Tfr Trl Trr Bfl Bfc Bfr";
610const CString kString50_2_2S = "L R C Ls Rs Tsl Tsr Bfl Bfr";
611const CString kString50_3_2S = "L R C Ls Rs Tfl Tfc Tfr Bfl Bfr";
612const CString kString50_4_2S = "L R C Ls Rs Tfl Tfr Trl Trr Bfl Bfr";
613const CString kString70_4_2S = "L R C Ls Rs Sl Sr Tfl Tfr Trl Trr Bfl Bfr";
614const CString kString222S = "L R C LFE Ls Rs Lc Rc Cs Sl Sr Tc Tfl Tfc Tfr Trl Trc Trr LFE2 Tsl Tsr Bfl Bfc Bfr";
615const CString kString220S = "L R C Ls Rs Lc Rc Cs Sl Sr Tc Tfl Tfc Tfr Trl Trc Trr Tsl Tsr Bfl Bfc Bfr";
616
617const CString kStringAmbi1stOrderS = "0 1 2 3";
618const CString kStringAmbi2cdOrderS = "0 1 2 3 4 5 6 7 8";
619const CString kStringAmbi3rdOrderS = "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15";
620const CString kStringAmbi4thOrderS = "0..24";
621const CString kStringAmbi5thOrderS = "0..35";
622const CString kStringAmbi6thOrderS = "0..48";
623const CString kStringAmbi7thOrderS = "0..63";
626//------------------------------------------------------------------------
631{
632 int32 count = 0;
633 while (arr)
634 {
635 if (arr & (SpeakerArrangement)1)
636 ++count;
637 arr >>= 1;
638 }
639 return count;
640}
641
642//------------------------------------------------------------------------
645inline int32 getSpeakerIndex (Speaker speaker, SpeakerArrangement arrangement)
646{
647 // check if speaker is present in arrangement
648 if ((arrangement & speaker) == 0)
649 return -1;
650
651 int32 result = 0;
652 Speaker i = 1;
653 while (i < speaker)
654 {
655 if (arrangement & i)
656 result++;
657 i <<= 1;
658 }
659
660 return result;
661}
662
663//------------------------------------------------------------------------
665inline Speaker getSpeaker (const SpeakerArrangement& arr, int32 index)
666{
667 SpeakerArrangement arrTmp = arr;
668
669 int32 index2 = -1;
670 int32 pos = -1;
671 while (arrTmp)
672 {
673 if (arrTmp & 0x1)
674 index2++;
675 pos++;
676 if (index2 == index)
677 return (Speaker)1 << pos;
678
679 arrTmp = arrTmp >> 1;
680 }
681 return 0;
682}
683
684//------------------------------------------------------------------------
687inline bool isSubsetOf (const SpeakerArrangement& arrSubSet, const SpeakerArrangement& arr)
688{
689 return (arrSubSet == (arrSubSet & arr));
690}
691
692//------------------------------------------------------------------------
694inline bool isAuro (const SpeakerArrangement& arr)
695{
696 if (arr == k90 || arr == k91 || arr == k100 || arr == k101 || arr == k110 || arr == k111 ||
697 arr == k130 || arr == k131)
698 {
699 return true;
700 }
701 return false;
702}
703
704//------------------------------------------------------------------------
706inline bool hasTopSpeakers (const SpeakerArrangement& arr)
707{
708 if (arr & kSpeakerTc || arr & kSpeakerTfl || arr & kSpeakerTfc || arr & kSpeakerTfr ||
709 arr & kSpeakerTrl || arr & kSpeakerTrc || arr & kSpeakerTrr || arr & kSpeakerTsl ||
710 arr & kSpeakerTsr)
711 return true;
712 return false;
713}
714
715//------------------------------------------------------------------------
717inline bool hasBottomSpeakers (const SpeakerArrangement& arr)
718{
719 if (arr & kSpeakerBfl || arr & kSpeakerBfc || arr & kSpeakerBfr ||
720 arr & kSpeakerBsl || arr & kSpeakerBsr ||
721 arr & kSpeakerBrr || arr & kSpeakerBrl || arr & kSpeakerBrc)
722 return true;
723 return false;
724}
725
726//------------------------------------------------------------------------
728inline bool hasMiddleSpeakers (const SpeakerArrangement& arr)
729{
730 if (arr & kSpeakerL || arr & kSpeakerR || arr & kSpeakerC || arr & kSpeakerLs ||
731 arr & kSpeakerRs || arr & kSpeakerLc || arr & kSpeakerRc || arr & kSpeakerCs ||
732 arr & kSpeakerSl || arr & kSpeakerSr || arr & kSpeakerM || arr & kSpeakerPl ||
733 arr & kSpeakerPr || arr & kSpeakerLcs || arr & kSpeakerRcs)
734 return true;
735 return false;
736}
737
738//------------------------------------------------------------------------
740inline bool hasLfe (const SpeakerArrangement& arr)
741{
742 if (arr & kSpeakerLfe || arr & kSpeakerLfe2)
743 return true;
744 return false;
745}
746
747//------------------------------------------------------------------------
749inline bool is3D (const SpeakerArrangement& arr)
750{
751 bool top = hasTopSpeakers (arr);
752 bool bottom = hasBottomSpeakers (arr);
753 bool middle = hasMiddleSpeakers (arr);
754
755 if (((top || bottom) && middle) || (top && bottom))
756 return true;
757 return false;
758}
759
760//------------------------------------------------------------------------
762inline bool isAmbisonics (const SpeakerArrangement& arr)
763{
764 if (arr == kAmbi1stOrderACN || arr == kAmbi2cdOrderACN || arr == kAmbi3rdOrderACN ||
765 arr == kAmbi4thOrderACN || arr == kAmbi5thOrderACN || arr == kAmbi6thOrderACN ||
766 arr == kAmbi7thOrderACN)
767 {
768 return true;
769 }
770 return false;
771}
772
773
774//------------------------------------------------------------------------
777{
778 int32 idx = getSpeakerIndex (speaker_1234_order, kAmbi4thOrderACN);
779 if (idx < 0)
780 return 0;
781 return (Speaker)1 << idx;
782}
783
784//------------------------------------------------------------------------
787{
788 int32 idx = getSpeakerIndex (speaker_567_order, kAmbi7thOrderACN);
789 if (idx < 0)
790 return 0;
791 return getSpeaker (kAmbi4thOrderACN, idx);
792}
793
794//------------------------------------------------------------------------
798{
799 if (!strcmp8 (arrStr, kStringMono))
800 return kMono;
801 if (!strcmp8 (arrStr, kStringStereo))
802 return kStereo;
803 if (!strcmp8 (arrStr, kStringStereoR))
804 return kStereoSurround;
805 if (!strcmp8 (arrStr, kStringStereoC))
806 return kStereoCenter;
807 if (!strcmp8 (arrStr, kStringStereoSide))
808 return kStereoSide;
809 if (!strcmp8 (arrStr, kStringStereoCLfe))
810 return kStereoCLfe;
811 if (!strcmp8 (arrStr, kStringStereoTF))
812 return kStereoTF;
813 if (!strcmp8 (arrStr, kStringStereoTS))
814 return kStereoTS;
815 if (!strcmp8 (arrStr, kStringStereoTR))
816 return kStereoTR;
817 if (!strcmp8 (arrStr, kStringStereoBF))
818 return kStereoBF;
819 if (!strcmp8 (arrStr, kStringCineFront))
820 return kCineFront;
821 if (!strcmp8 (arrStr, kString30Cine))
822 return k30Cine;
823 if (!strcmp8 (arrStr, kString30Music))
824 return k30Music;
825 if (!strcmp8 (arrStr, kString31Cine))
826 return k31Cine;
827 if (!strcmp8 (arrStr, kString31Music))
828 return k31Music;
829 if (!strcmp8 (arrStr, kString40Cine))
830 return k40Cine;
831 if (!strcmp8 (arrStr, kString40Music))
832 return k40Music;
833 if (!strcmp8 (arrStr, kString41Cine))
834 return k41Cine;
835 if (!strcmp8 (arrStr, kString41Music))
836 return k41Music;
837 if (!strcmp8 (arrStr, kString50))
838 return k50;
839 if (!strcmp8 (arrStr, kString51))
840 return k51;
841 if (!strcmp8 (arrStr, kString60Cine))
842 return k60Cine;
843 if (!strcmp8 (arrStr, kString60Music))
844 return k60Music;
845 if (!strcmp8 (arrStr, kString61Cine))
846 return k61Cine;
847 if (!strcmp8 (arrStr, kString61Music))
848 return k61Music;
849 if (!strcmp8 (arrStr, kString70Cine) || !strcmp8 (arrStr, kString70CineOld))
850 return k70Cine;
851 if (!strcmp8 (arrStr, kString70Music) || !strcmp8 (arrStr, kString70MusicOld))
852 return k70Music;
853 if (!strcmp8 (arrStr, kString71Cine) || !strcmp8 (arrStr, kString71CineOld))
854 return k71Cine;
855 if (!strcmp8 (arrStr, kString71Music) || !strcmp8 (arrStr, kString71MusicOld))
856 return k71Music;
857 if (!strcmp8 (arrStr, kString71Proximity))
858 return k71Proximity;
859 if (!strcmp8 (arrStr, kString80Cine))
860 return k80Cine;
861 if (!strcmp8 (arrStr, kString80Music))
862 return k80Music;
863 if (!strcmp8 (arrStr, kString81Cine))
864 return k81Cine;
865 if (!strcmp8 (arrStr, kString81Music))
866 return k81Music;
867 if (!strcmp8 (arrStr, kString52_5))
868 return k52_5;
869 if (!strcmp8 (arrStr, kString72_5))
870 return k72_5;
871 if (!strcmp8 (arrStr, kString40_4))
872 return k40_4;
873 if (!strcmp8 (arrStr, kString71CineTopCenter))
874 return k71CineTopCenter;
875 if (!strcmp8 (arrStr, kString71CineCenterHigh))
876 return k71CineCenterHigh;
877 if (!strcmp8 (arrStr, kString50_2))
878 return k50_2;
879 if (!strcmp8 (arrStr, kString51_2))
880 return k51_2;
881 if (!strcmp8 (arrStr, kString50_2TopSide))
882 return k50_2_TS;
883 if (!strcmp8 (arrStr, kString51_2TopSide))
884 return k51_2_TS;
885 if (!strcmp8 (arrStr, kString71CineFullRear))
886 return k71CineFullRear;
887 if (!strcmp8 (arrStr, kString90Cine))
888 return k90Cine;
889 if (!strcmp8 (arrStr, kString91Cine))
890 return k91Cine;
891 if (!strcmp8 (arrStr, kString100Cine))
892 return k100Cine;
893 if (!strcmp8 (arrStr, kString101Cine))
894 return k101Cine;
895 if (!strcmp8 (arrStr, kString50_4))
896 return k50_4;
897 if (!strcmp8 (arrStr, kString51_4))
898 return k51_4;
899 if (!strcmp8 (arrStr, kString50_4_1))
900 return k50_4_1;
901 if (!strcmp8 (arrStr, kString51_4_1))
902 return k51_4_1;
903 if (!strcmp8 (arrStr, kString41_4_1))
904 return k41_4_1;
905 if (!strcmp8 (arrStr, kString70_2))
906 return k70_2;
907 if (!strcmp8 (arrStr, kString71_2))
908 return k71_2;
909 if (!strcmp8 (arrStr, kString70_3))
910 return k70_3;
911 if (!strcmp8 (arrStr, kString72_3))
912 return k72_3;
913 if (!strcmp8 (arrStr, kString70_4))
914 return k70_4;
915 if (!strcmp8 (arrStr, kString71_4))
916 return k71_4;
917 if (!strcmp8 (arrStr, kString70_6))
918 return k70_6;
919 if (!strcmp8 (arrStr, kString71_6))
920 return k71_6;
921 if (!strcmp8 (arrStr, kString90_4))
922 return k90_4;
923 if (!strcmp8 (arrStr, kString91_4))
924 return k91_4;
925 if (!strcmp8 (arrStr, kString90_6))
926 return k90_6;
927 if (!strcmp8 (arrStr, kString91_6))
928 return k91_6;
929 if (!strcmp8 (arrStr, kString50_5))
930 return k50_5;
931 if (!strcmp8 (arrStr, kString51_5))
932 return k51_5;
933 if (!strcmp8 (arrStr, kString50_6))
934 return k50_6;
935 if (!strcmp8 (arrStr, kString51_6))
936 return k51_6;
937 if (!strcmp8 (arrStr, kString130))
938 return k130;
939 if (!strcmp8 (arrStr, kString131))
940 return k131;
941 if (!strcmp8 (arrStr, kString60_4_4))
942 return k60_4_4;
943 if (!strcmp8 (arrStr, kString222))
944 return k222;
945 if (!strcmp8 (arrStr, kString220))
946 return k220;
947 if (!strcmp8 (arrStr, kString50_5_3))
948 return k50_5_3;
949 if (!strcmp8 (arrStr, kString51_5_3))
950 return k51_5_3;
951 if (!strcmp8 (arrStr, kString50_2_2))
952 return k50_2_2;
953 if (!strcmp8 (arrStr, kString50_4_2))
954 return k50_4_2;
955 if (!strcmp8 (arrStr, kString70_4_2))
956 return k70_4_2;
957
958 if (!strcmp8 (arrStr, kString50_5_Sony))
959 return k50_5_Sony;
960 if (!strcmp8 (arrStr, kString40_2_2))
961 return k40_2_2;
962 if (!strcmp8 (arrStr, kString40_4_2))
963 return k40_4_2;
964 if (!strcmp8 (arrStr, kString50_3_2))
965 return k50_3_2;
966 if (!strcmp8 (arrStr, kString30_5_2))
967 return k30_5_2;
968 if (!strcmp8 (arrStr, kString40_4_4))
969 return k40_4_4;
970 if (!strcmp8 (arrStr, kString50_4_4))
971 return k50_4_4;
972
973 if (!strcmp8 (arrStr, kStringAmbi1stOrder))
974 return kAmbi1stOrderACN;
975 if (!strcmp8 (arrStr, kStringAmbi2cdOrder))
976 return kAmbi2cdOrderACN;
977 if (!strcmp8 (arrStr, kStringAmbi3rdOrder))
978 return kAmbi3rdOrderACN;
979 if (!strcmp8 (arrStr, kStringAmbi4thOrder))
980 return kAmbi4thOrderACN;
981 if (!strcmp8 (arrStr, kStringAmbi5thOrder))
982 return kAmbi5thOrderACN;
983 if (!strcmp8 (arrStr, kStringAmbi6thOrder))
984 return kAmbi6thOrderACN;
985 if (!strcmp8 (arrStr, kStringAmbi7thOrder))
986 return kAmbi7thOrderACN;
987 return kEmpty;
988}
989
990//------------------------------------------------------------------------
993inline CString getSpeakerArrangementString (SpeakerArrangement arr, bool withSpeakersName)
994{
995 switch (arr)
996 {
997 case kMono: return withSpeakersName ? kStringMonoS : kStringMono;
998 //--- Stereo pairs---
999 case kStereo: return withSpeakersName ? kStringStereoS : kStringStereo;
1000 case kStereoSurround: return withSpeakersName ? kStringStereoRS : kStringStereoR;
1001 case kStereoCenter: return withSpeakersName ? kStringStereoCS : kStringStereoC;
1002 case kStereoSide: return withSpeakersName ? kStringStereoSS : kStringStereoSide;
1003 case kStereoCLfe: return withSpeakersName ? kStringStereoCLfeS: kStringStereoCLfe;
1004 case kStereoTF: return withSpeakersName ? kStringStereoTFS : kStringStereoTF;
1005 case kStereoTS: return withSpeakersName ? kStringStereoTSS : kStringStereoTS;
1006 case kStereoTR: return withSpeakersName ? kStringStereoTRS : kStringStereoTR;
1007 case kStereoBF: return withSpeakersName ? kStringStereoBFS : kStringStereoBF;
1008
1009 //--- ---
1010 case kCineFront: return withSpeakersName ? kStringCineFrontS : kStringCineFront;
1011 case k30Cine: return withSpeakersName ? kString30CineS : kString30Cine;
1012 case k31Cine: return withSpeakersName ? kString31CineS : kString31Cine;
1013 case k30Music: return withSpeakersName ? kString30MusicS : kString30Music;
1014 case k31Music: return withSpeakersName ? kString31MusicS : kString31Music;
1015 case k40Cine: return withSpeakersName ? kString40CineS : kString40Cine;
1016 case k41Cine: return withSpeakersName ? kString41CineS : kString41Cine;
1017 case k40Music: return withSpeakersName ? kString40MusicS : kString40Music;
1018 case k41Music: return withSpeakersName ? kString41MusicS : kString41Music;
1019 case k50: return withSpeakersName ? kString50S : kString50;
1020 case k51: return withSpeakersName ? kString51S : kString51;
1021 case k60Cine: return withSpeakersName ? kString60CineS : kString60Cine;
1022 case k61Cine: return withSpeakersName ? kString61CineS : kString61Cine;
1023 case k60Music: return withSpeakersName ? kString60MusicS : kString60Music;
1024 case k61Music: return withSpeakersName ? kString61MusicS : kString61Music;
1025 case k70Cine: return withSpeakersName ? kString70CineS : kString70Cine;
1026 case k71Cine: return withSpeakersName ? kString71CineS : kString71Cine;
1027 case k70Music: return withSpeakersName ? kString70MusicS : kString70Music;
1028 case k71Music: return withSpeakersName ? kString71MusicS : kString71Music;
1029 case k71Proximity: return withSpeakersName ? kString71ProximityS : kString71Proximity;
1030 case k80Cine: return withSpeakersName ? kString80CineS : kString80Cine;
1031 case k81Cine: return withSpeakersName ? kString81CineS : kString81Cine;
1032 case k80Music: return withSpeakersName ? kString80MusicS : kString80Music;
1033 case k81Music: return withSpeakersName ? kString81MusicS : kString81Music;
1034 case k71CineFullRear: return withSpeakersName ? kString71CineFullRearS : kString71CineFullRear;
1035 case k90Cine: return withSpeakersName ? kString90CineS : kString90Cine;
1036 case k91Cine: return withSpeakersName ? kString91CineS : kString91Cine;
1037 case k100Cine: return withSpeakersName ? kString100CineS : kString100Cine;
1038 case k101Cine: return withSpeakersName ? kString101CineS : kString101Cine;
1039
1040 //---With Tops ---
1041 case k71CineTopCenter: return withSpeakersName ? kString71CineTopCenterS : kString71CineTopCenter;
1042 case k71CineCenterHigh: return withSpeakersName ? kString71CineCenterHighS : kString71CineCenterHigh;
1043 case k50_2_TS: return withSpeakersName ? kString50_2TopSideS : kString50_2TopSide;
1044 case k51_2_TS: return withSpeakersName ? kString51_2TopSideS : kString51_2TopSide;
1045
1046 case k40_4: return withSpeakersName ? kString40_4S : kString40_4;
1047 case k50_2: return withSpeakersName ? kString50_2S : kString50_2;
1048 case k51_2: return withSpeakersName ? kString51_2S : kString51_2;
1049 case k50_4: return withSpeakersName ? kString50_4S : kString50_4;
1050 case k51_4: return withSpeakersName ? kString51_4S : kString51_4;
1051 case k50_5: return withSpeakersName ? kString50_5S : kString50_5;
1052 case k51_5: return withSpeakersName ? kString51_5S : kString51_5;
1053 case k52_5: return withSpeakersName ? kString52_5S : kString52_5;
1054 case k50_6: return withSpeakersName ? kString50_6S : kString50_6;
1055 case k51_6: return withSpeakersName ? kString51_6S : kString51_6;
1056 case k70_2: return withSpeakersName ? kString70_2S : kString70_2;
1057 case k71_2: return withSpeakersName ? kString71_2S : kString71_2;
1058 case k70_3: return withSpeakersName ? kString70_3S : kString70_3;
1059 case k72_3: return withSpeakersName ? kString72_3S : kString72_3;
1060 case k70_4: return withSpeakersName ? kString70_4S : kString70_4;
1061 case k71_4: return withSpeakersName ? kString71_4S : kString71_4;
1062 case k72_5: return withSpeakersName ? kString72_5S : kString72_5;
1063 case k70_6: return withSpeakersName ? kString70_6S : kString70_6;
1064 case k71_6: return withSpeakersName ? kString71_6S : kString71_6;
1065 case k90_4: return withSpeakersName ? kString90_4S : kString90_4;
1066 case k91_4: return withSpeakersName ? kString91_4S : kString91_4;
1067 case k90_6: return withSpeakersName ? kString90_6S : kString90_6;
1068 case k91_6: return withSpeakersName ? kString91_6S : kString91_6;
1069 case k130: return withSpeakersName ? kString130S : kString130;
1070 case k131: return withSpeakersName ? kString131S : kString131;
1071
1072 //--- With Tops and Bottoms ---
1073 case k41_4_1: return withSpeakersName ? kString41_4_1S : kString41_4_1;
1074 case k50_4_1: return withSpeakersName ? kString50_4_1S : kString50_4_1;
1075 case k51_4_1: return withSpeakersName ? kString51_4_1S : kString51_4_1;
1076 case k50_5_3: return withSpeakersName ? kString50_5_3S : kString50_5_3;
1077 case k51_5_3: return withSpeakersName ? kString51_5_3S : kString51_5_3;
1078 case k50_2_2: return withSpeakersName ? kString50_2_2S : kString50_2_2;
1079 case k50_4_2: return withSpeakersName ? kString50_4_2S : kString50_4_2;
1080 case k60_4_4: return withSpeakersName ? kString60_4_4S : kString60_4_4;
1081 case k70_4_2: return withSpeakersName ? kString70_4_2S : kString70_4_2;
1082
1083 case k50_5_Sony: return withSpeakersName ? kString50_5_SonyS : kString50_5_Sony;
1084 case k40_2_2: return withSpeakersName ? kString40_2_2S : kString40_2_2;
1085 case k40_4_2: return withSpeakersName ? kString40_4_2S : kString40_4_2;
1086 case k50_3_2: return withSpeakersName ? kString50_3_2S : kString50_3_2;
1087 case k30_5_2: return withSpeakersName ? kString30_5_2S : kString30_5_2;
1088 case k40_4_4: return withSpeakersName ? kString40_4_4S : kString40_4_4;
1089 case k50_4_4: return withSpeakersName ? kString50_4_4S : kString50_4_4;
1090
1091 case k220: return withSpeakersName ? kString220S : kString220;
1092 case k222: return withSpeakersName ? kString222S : kString222;
1093 }
1094 //--- Ambisonics ---
1095 if (arr == kAmbi1stOrderACN)
1096 return withSpeakersName ? kStringAmbi1stOrderS : kStringAmbi1stOrder;
1097 if (arr == kAmbi2cdOrderACN)
1098 return withSpeakersName ? kStringAmbi2cdOrderS : kStringAmbi2cdOrder;
1099 if (arr == kAmbi3rdOrderACN)
1100 return withSpeakersName ? kStringAmbi3rdOrderS : kStringAmbi3rdOrder;
1101 if (arr == kAmbi4thOrderACN)
1102 return withSpeakersName ? kStringAmbi4thOrderS : kStringAmbi4thOrder;
1103 if (arr == kAmbi5thOrderACN)
1104 return withSpeakersName ? kStringAmbi5thOrderS : kStringAmbi5thOrder;
1105 if (arr == kAmbi6thOrderACN)
1106 return withSpeakersName ? kStringAmbi6thOrderS : kStringAmbi6thOrder;
1107 if (arr == kAmbi7thOrderACN)
1108 return withSpeakersName ? kStringAmbi7thOrderS : kStringAmbi7thOrder;
1109 return kStringEmpty;
1110}
1111
1112//------------------------------------------------------------------------
1114inline CString getSpeakerShortName (const SpeakerArrangement& arr, int32 index)
1115{
1116 SpeakerArrangement arrTmp = arr;
1117
1118 bool found = false;
1119 int32 index2 = -1;
1120 int32 pos = -1;
1121 while (arrTmp)
1122 {
1123 if (arrTmp & 0x1)
1124 index2++;
1125 pos++;
1126 if (index2 == index)
1127 {
1128 found = true;
1129 break;
1130 }
1131 arrTmp = arrTmp >> 1;
1132 }
1133
1134 if (!found)
1135 return "";
1136
1137 Speaker speaker = (Speaker)1 << pos;
1138 if (speaker == kSpeakerL)
1139 return "L";
1140 if (speaker == kSpeakerR)
1141 return "R";
1142 if (speaker == kSpeakerC)
1143 return "C";
1144 if (speaker == kSpeakerLfe)
1145 return "LFE";
1146 if (speaker == kSpeakerLs)
1147 return "Ls";
1148 if (speaker == kSpeakerRs)
1149 return "Rs";
1150 if (speaker == kSpeakerLc)
1151 return "Lc";
1152 if (speaker == kSpeakerRc)
1153 return "Rc";
1154 if (speaker == kSpeakerCs)
1155 return "S";
1156 if (speaker == kSpeakerSl)
1157 return "Sl";
1158 if (speaker == kSpeakerSr)
1159 return "Sr";
1160 if (speaker == kSpeakerTc)
1161 return "Tc";
1162 if (speaker == kSpeakerTfl)
1163 return "Tfl";
1164 if (speaker == kSpeakerTfc)
1165 return "Tfc";
1166 if (speaker == kSpeakerTfr)
1167 return "Tfr";
1168 if (speaker == kSpeakerTrl)
1169 return "Trl";
1170 if (speaker == kSpeakerTrc)
1171 return "Trc";
1172 if (speaker == kSpeakerTrr)
1173 return "Trr";
1174 if (speaker == kSpeakerLfe2)
1175 return "LFE2";
1176 if (speaker == kSpeakerM)
1177 return "M";
1178
1179 if (speaker == kSpeakerACN0)
1180 return "0";
1181 if (speaker == kSpeakerACN1)
1182 return "1";
1183 if (speaker == kSpeakerACN2)
1184 return "2";
1185 if (speaker == kSpeakerACN3)
1186 return "3";
1187 if (speaker == kSpeakerACN4)
1188 return "4";
1189 if (speaker == kSpeakerACN5)
1190 return "5";
1191 if (speaker == kSpeakerACN6)
1192 return "6";
1193 if (speaker == kSpeakerACN7)
1194 return "7";
1195 if (speaker == kSpeakerACN8)
1196 return "8";
1197 if (speaker == kSpeakerACN9)
1198 return "9";
1199 if (speaker == kSpeakerACN10)
1200 return "10";
1201 if (speaker == kSpeakerACN11)
1202 return "11";
1203 if (speaker == kSpeakerACN12)
1204 return "12";
1205 if (speaker == kSpeakerACN13)
1206 return "13";
1207 if (speaker == kSpeakerACN14)
1208 return "14";
1209 if (speaker == kSpeakerACN15)
1210 return "15";
1211 if (speaker == kSpeakerACN16)
1212 return "16";
1213 if (speaker == kSpeakerACN17)
1214 return "17";
1215 if (speaker == kSpeakerACN18)
1216 return "18";
1217 if (speaker == kSpeakerACN19)
1218 return "19";
1219 if (speaker == kSpeakerACN20)
1220 return "20";
1221 if (speaker == kSpeakerACN21)
1222 return "21";
1223 if (speaker == kSpeakerACN22)
1224 return "22";
1225 if (speaker == kSpeakerACN23)
1226 return "23";
1227 if (speaker == kSpeakerACN24)
1228 return "24";
1229
1230 if (speaker == kSpeakerTsl)
1231 return "Tsl";
1232 if (speaker == kSpeakerTsr)
1233 return "Tsr";
1234 if (speaker == kSpeakerLcs)
1235 return "Lcs";
1236 if (speaker == kSpeakerRcs)
1237 return "Rcs";
1238
1239 if (speaker == kSpeakerBfl)
1240 return "Bfl";
1241 if (speaker == kSpeakerBfc)
1242 return "Bfc";
1243 if (speaker == kSpeakerBfr)
1244 return "Bfr";
1245 if (speaker == kSpeakerPl)
1246 return "Pl";
1247 if (speaker == kSpeakerPr)
1248 return "Pr";
1249 if (speaker == kSpeakerBsl)
1250 return "Bsl";
1251 if (speaker == kSpeakerBsr)
1252 return "Bsr";
1253 if (speaker == kSpeakerBrl)
1254 return "Brl";
1255 if (speaker == kSpeakerBrc)
1256 return "Brc";
1257 if (speaker == kSpeakerBrr)
1258 return "Brr";
1259
1260 return "";
1261}
1262
1265//------------------------------------------------------------------------
1266} // namespace SpeakerArr
1267} // namespace Vst
1268} // namespace Steinberg
const Speaker kSpeakerACN21
Ambisonic ACN 21.
Definition vstspeaker.h:84
const Speaker kSpeakerPr
Proximity Right (Pr)
Definition vstspeaker.h:99
const Speaker kSpeakerCs
Center of Surround (Cs) - Back Center - Surround (S)
Definition vstspeaker.h:50
const Speaker kSpeakerLfe
Subbass (Lfe)
Definition vstspeaker.h:44
const Speaker kSpeakerTsl
Top Side Left (Tsl)
Definition vstspeaker.h:89
const Speaker kSpeakerACN24
Ambisonic ACN 24.
Definition vstspeaker.h:87
const Speaker kSpeakerACN0
Ambisonic ACN 0.
Definition vstspeaker.h:63
const Speaker kSpeakerR
Right (R)
Definition vstspeaker.h:42
const Speaker kSpeakerBfr
Bottom Front Right (Bfr)
Definition vstspeaker.h:96
const Speaker kSpeakerRcs
Right of Center Surround (Rcs) - Back Right Center.
Definition vstspeaker.h:92
const Speaker kSpeakerACN2
Ambisonic ACN 2.
Definition vstspeaker.h:65
const Speaker kSpeakerACN1
Ambisonic ACN 1.
Definition vstspeaker.h:64
const Speaker kSpeakerTrc
Top Rear/Back Center (Trc)
Definition vstspeaker.h:58
const Speaker kSpeakerACN18
Ambisonic ACN 18.
Definition vstspeaker.h:81
const Speaker kSpeakerACN20
Ambisonic ACN 20.
Definition vstspeaker.h:83
const Speaker kSpeakerACN14
Ambisonic ACN 14.
Definition vstspeaker.h:77
const Speaker kSpeakerRc
Right of Center (Rc) - Front Right Center.
Definition vstspeaker.h:48
const Speaker kSpeakerBrr
Bottom Rear Right (Brr)
Definition vstspeaker.h:105
const Speaker kSpeakerM
Mono (M)
Definition vstspeaker.h:61
const Speaker kSpeakerL
Speaker Definitions.
Definition vstspeaker.h:41
const Speaker kSpeakerACN8
Ambisonic ACN 8.
Definition vstspeaker.h:71
const Speaker kSpeakerSl
Side Left (Sl)
Definition vstspeaker.h:51
const Speaker kSpeakerLs
Left Surround (Ls)
Definition vstspeaker.h:45
const Speaker kSpeakerBrc
Bottom Rear Center (Brc)
Definition vstspeaker.h:104
const Speaker kSpeakerACN11
Ambisonic ACN 11.
Definition vstspeaker.h:74
const SpeakerArrangement kEmpty
Speaker Arrangement Definitions.
Definition vstspeaker.h:118
const CString kStringMonoS
Speaker Arrangement String Representation with Speakers Name.
Definition vstspeaker.h:530
const Speaker kSpeakerACN13
Ambisonic ACN 13.
Definition vstspeaker.h:76
const Speaker kSpeakerTsr
Top Side Right (Tsr)
Definition vstspeaker.h:90
const Speaker kSpeakerACN4
Ambisonic ACN 4.
Definition vstspeaker.h:67
const Speaker kSpeakerSr
Side Right (Sr)
Definition vstspeaker.h:52
const Speaker kSpeakerACN23
Ambisonic ACN 23.
Definition vstspeaker.h:86
const Speaker kSpeakerLcs
Left of Center Surround (Lcs) - Back Left Center.
Definition vstspeaker.h:91
const Speaker kSpeakerBsl
Bottom Side Left (Bsl)
Definition vstspeaker.h:101
const Speaker kSpeakerACN5
Ambisonic ACN 5.
Definition vstspeaker.h:68
const Speaker kSpeakerTfr
Top Front Right (Tfr)
Definition vstspeaker.h:56
const Speaker kSpeakerTrl
Top Rear/Back Left (Trl)
Definition vstspeaker.h:57
const Speaker kSpeakerACN6
Ambisonic ACN 6.
Definition vstspeaker.h:69
const Speaker kSpeakerACN16
Ambisonic ACN 16.
Definition vstspeaker.h:79
const Speaker kSpeakerACN19
Ambisonic ACN 19.
Definition vstspeaker.h:82
const Speaker kSpeakerLfe2
Subbass 2 (Lfe2)
Definition vstspeaker.h:60
const Speaker kSpeakerACN17
Ambisonic ACN 17.
Definition vstspeaker.h:80
int32 getChannelCount(SpeakerArrangement arr)
Returns number of channels used in speaker arrangement.
Definition vstspeaker.h:630
const Speaker kSpeakerRs
Right Surround (Rs)
Definition vstspeaker.h:46
const Speaker kSpeakerC
Center (C)
Definition vstspeaker.h:43
const Speaker kSpeakerBrl
Bottom Rear Left (Brl)
Definition vstspeaker.h:103
const Speaker kSpeakerBfc
Bottom Front Center (Bfc)
Definition vstspeaker.h:95
const Speaker kSpeakerACN3
Ambisonic ACN 3.
Definition vstspeaker.h:66
const Speaker kSpeakerS
Surround (S)
Definition vstspeaker.h:49
const Speaker kSpeakerACN22
Ambisonic ACN 22.
Definition vstspeaker.h:85
const Speaker kSpeakerBsr
Bottom Side Right (Bsr)
Definition vstspeaker.h:102
const Speaker kSpeakerACN12
Ambisonic ACN 12.
Definition vstspeaker.h:75
const Speaker kSpeakerACN15
Ambisonic ACN 15.
Definition vstspeaker.h:78
const Speaker kSpeakerACN7
Ambisonic ACN 7.
Definition vstspeaker.h:70
const Speaker kSpeakerACN9
Ambisonic ACN 9.
Definition vstspeaker.h:72
const Speaker kSpeakerLc
Left of Center (Lc) - Front Left Center.
Definition vstspeaker.h:47
const Speaker kSpeakerTfc
Top Front Center (Tfc)
Definition vstspeaker.h:55
const Speaker kSpeakerTfl
Top Front Left (Tfl)
Definition vstspeaker.h:54
const Speaker kSpeakerTc
Top Center Over-head, Top Middle (Tc)
Definition vstspeaker.h:53
const CString kStringEmpty
Speaker Arrangement String Representation.
Definition vstspeaker.h:424
const Speaker kSpeakerBfl
Bottom Front Left (Bfl)
Definition vstspeaker.h:94
const Speaker kSpeakerTrr
Top Rear/Back Right (Trr)
Definition vstspeaker.h:59
const Speaker kSpeakerPl
Proximity Left (Pl)
Definition vstspeaker.h:98
const Speaker kSpeakerACN10
Ambisonic ACN 10.
Definition vstspeaker.h:73
const SpeakerArrangement k71_6
L R C Lfe Ls Rs Sl Sr Tfl Tfr Trl Trr Tsl Tsr.
Definition vstspeaker.h:291
const SpeakerArrangement kStereoSide
Sl Sr.
Definition vstspeaker.h:123
const SpeakerArrangement k51
L R C Lfe Ls Rs.
Definition vstspeaker.h:151
const SpeakerArrangement k101
L R C Lfe Ls Rs Tc Tfl Tfr Trl Trr.
Definition vstspeaker.h:315
const SpeakerArrangement k70Cine
L R C Ls Rs Lc Rc.
Definition vstspeaker.h:161
const SpeakerArrangement k71Cine
L R C Lfe Ls Rs Lc Rc.
Definition vstspeaker.h:163
const SpeakerArrangement k130
L R C Ls Rs Sl Sr Tc Tfl Tfc Tfr Trl Trr.
Definition vstspeaker.h:339
const SpeakerArrangement k71Proximity
L R C Lfe Ls Rs Pl Pr.
Definition vstspeaker.h:174
const SpeakerArrangement kStereoCLfe
C Lfe.
Definition vstspeaker.h:124
const SpeakerArrangement kMono
M.
Definition vstspeaker.h:119
const SpeakerArrangement kStereoTF
Tfl Tfr.
Definition vstspeaker.h:125
bool isAmbisonics(const SpeakerArrangement &arr)
Returns true if arrangement is a Ambisonic configuration.
Definition vstspeaker.h:762
bool hasBottomSpeakers(const SpeakerArrangement &arr)
Returns true if arrangement contains bottom (lower layer) speakers.
Definition vstspeaker.h:717
const SpeakerArrangement k70_3
L R C Ls Rs Sl Sr Tfl Tfr Trc.
Definition vstspeaker.h:271
const SpeakerArrangement k91_4
L R C Lfe Ls Rs Lc Rc Sl Sr Tfl Tfr Trl Trr.
Definition vstspeaker.h:299
const SpeakerArrangement k110
L R C Ls Rs Tc Tfl Tfc Tfr Trl Trr.
Definition vstspeaker.h:325
const SpeakerArrangement k70Music
L R C Ls Rs Sl Sr.
Definition vstspeaker.h:166
const SpeakerArrangement kAmbi1stOrderACN
First-Order with Ambisonic Channel Number (ACN) ordering and SN3D normalization (4 channels)
Definition vstspeaker.h:196
bool hasTopSpeakers(const SpeakerArrangement &arr)
Returns true if arrangement contains top (upper layer) speakers.
Definition vstspeaker.h:706
const SpeakerArrangement k140
L R Ls Rs Sl Sr Tfl Tfr Trl Trr Bfl Bfr Brl Brr.
Definition vstspeaker.h:346
const SpeakerArrangement k131
L R C Lfe Ls Rs Sl Sr Tc Tfl Tfc Tfr Trl Trr.
Definition vstspeaker.h:343
const SpeakerArrangement k102
L R C Lfe Ls Rs Tfl Tfc Tfr Trl Trr Lfe2.
Definition vstspeaker.h:320
const SpeakerArrangement k100
L R C Ls Rs Tc Tfl Tfr Trl Trr.
Definition vstspeaker.h:310
const SpeakerArrangement k51_5_3
L R C Lfe Ls Rs Tfl Tfc Tfr Trl Trr Bfl Bfc Bfr.
Definition vstspeaker.h:369
const SpeakerArrangement k40Cine
L R C S.
Definition vstspeaker.h:141
Speaker getSpeaker(const SpeakerArrangement &arr, int32 index)
Returns the speaker for a given index in a speaker arrangement (return 0 when out of range).
Definition vstspeaker.h:665
const SpeakerArrangement k90Cine
L R C Ls Rs Lc Rc Sl Sr.
Definition vstspeaker.h:185
const SpeakerArrangement k111
L R C Lfe Ls Rs Tc Tfl Tfc Tfr Trl Trr.
Definition vstspeaker.h:330
Speaker convertSpeaker_Ambi_1234Order_to_Ambi567Order(Speaker speaker_1234_order)
Converts a speaker of a Ambisonic order 1 to 4 to a Ambisonic order 7 (5 to 7) (return 0 when out of ...
Definition vstspeaker.h:776
const SpeakerArrangement k61Cine
L R C Lfe Ls Rs Cs.
Definition vstspeaker.h:155
const SpeakerArrangement k60Music
L R Ls Rs Sl Sr.
Definition vstspeaker.h:157
const SpeakerArrangement kStereoTR
Trl Trr.
Definition vstspeaker.h:127
const SpeakerArrangement k90
L R C Ls Rs Tfl Tfr Trl Trr.
Definition vstspeaker.h:248
const SpeakerArrangement k41Music
L R Lfe Ls Rs.
Definition vstspeaker.h:147
const SpeakerArrangement k40_4_4
L R Ls Rs Tfl Tfr Trl Trr Bfl Bfr Brl Brr.
Definition vstspeaker.h:411
const SpeakerArrangement k81Music
L R C Lfe Ls Rs Cs Sl Sr.
Definition vstspeaker.h:183
const SpeakerArrangement kStereoSurround
Ls Rs.
Definition vstspeaker.h:121
const SpeakerArrangement kAmbi3rdOrderACN
Third-Order with Ambisonic Channel Number (ACN) ordering and SN3D normalization (16 channels)
Definition vstspeaker.h:200
const SpeakerArrangement k51_4_1
L R C Lfe Ls Rs Tfl Tfr Trl Trr Bfc.
Definition vstspeaker.h:260
const SpeakerArrangement k71CineCenterHigh
L R C Lfe Ls Rs Cs Tfc.
Definition vstspeaker.h:222
const SpeakerArrangement kAmbi7thOrderACN
Seventh-Order with Ambisonic Channel Number (ACN) ordering and SN3D normalization (64 channels)
Definition vstspeaker.h:209
const SpeakerArrangement k40_4_2
L R Ls Rs Tfl Tfr Trl Trr Bfl Bfr.
Definition vstspeaker.h:396
const SpeakerArrangement k91Cine
L R C Lfe Ls Rs Lc Rc Sl Sr.
Definition vstspeaker.h:188
int32 getSpeakerIndex(Speaker speaker, SpeakerArrangement arrangement)
Returns the index of a given speaker in a speaker arrangement (-1 if speaker is not part of the arran...
Definition vstspeaker.h:645
const SpeakerArrangement k71CineTopCenter
L R C Lfe Ls Rs Cs Tc.
Definition vstspeaker.h:219
const SpeakerArrangement kAmbi5thOrderACN
Fifth-Order with Ambisonic Channel Number (ACN) ordering and SN3D normalization (36 channels)
Definition vstspeaker.h:205
const SpeakerArrangement k31Music
L R Lfe S.
Definition vstspeaker.h:139
const SpeakerArrangement k70_2
L R C Ls Rs Sl Sr Tsl Tsr.
Definition vstspeaker.h:263
const SpeakerArrangement k90_6
L R C Lfe Ls Rs Lc Rc Sl Sr Tfl Tfr Trl Trr Tsl Tsr.
Definition vstspeaker.h:302
const SpeakerArrangement k50_2_2
L R C Ls Rs Tsl Tsr Bfl Bfr.
Definition vstspeaker.h:372
const SpeakerArrangement kStereoCenter
Lc Rc.
Definition vstspeaker.h:122
const SpeakerArrangement k100Cine
L R C Ls Rs Lc Rc Cs Sl Sr.
Definition vstspeaker.h:190
const SpeakerArrangement k70CineSideHigh
L R C Ls Rs Tsl Tsr.
Definition vstspeaker.h:235
const SpeakerArrangement k50_4_1
L R C Ls Rs Tfl Tfr Trl Trr Bfc.
Definition vstspeaker.h:257
const SpeakerArrangement k80Cube
L R Ls Rs Tfl Tfr Trl Trr.
Definition vstspeaker.h:215
const SpeakerArrangement kAmbi6thOrderACN
Sixth-Order with Ambisonic Channel Number (ACN) ordering and SN3D normalization (49 channels)
Definition vstspeaker.h:207
const SpeakerArrangement k41Cine
L R C Lfe S.
Definition vstspeaker.h:143
const SpeakerArrangement kCineFront
L R C Lc Rc.
Definition vstspeaker.h:130
const SpeakerArrangement k71CineFrontHigh
L R C Lfe Ls Rs Tfl Tfr.
Definition vstspeaker.h:230
const SpeakerArrangement k50_5_Sony
L R C Ls Rs Tfl Tfc Tfr Trl Trr.
Definition vstspeaker.h:387
const SpeakerArrangement kStereoBF
Bfl Bfr.
Definition vstspeaker.h:128
const SpeakerArrangement k222
L R C Lfe Ls Rs Lc Rc Cs Sl Sr Tc Tfl Tfc Tfr Trl Trc Trr Lfe2 Tsl Tsr Bfl Bfc Bfr.
Definition vstspeaker.h:358
const SpeakerArrangement k71_4
L R C Lfe Ls Rs Sl Sr Tfl Tfr Trl Trr.
Definition vstspeaker.h:282
bool hasMiddleSpeakers(const SpeakerArrangement &arr)
Returns true if arrangement contains middle layer (at ears level) speakers.
Definition vstspeaker.h:728
const SpeakerArrangement k40Music
L R Ls Rs.
Definition vstspeaker.h:145
const SpeakerArrangement k70_4_2
L R C Ls Rs Sl Sr Tfl Tfr Trl Trr Bfl Bfr.
Definition vstspeaker.h:382
CString getSpeakerArrangementString(SpeakerArrangement arr, bool withSpeakersName)
Returns the string representation of a given speaker arrangement.
Definition vstspeaker.h:993
const SpeakerArrangement k50_4_4
L R C Ls Rs Tfl Tfr Trl Trr Bfl Bfr Brl Brr.
Definition vstspeaker.h:416
const SpeakerArrangement kStereoTS
Tsl Tsr.
Definition vstspeaker.h:126
const SpeakerArrangement k30Music
L R S.
Definition vstspeaker.h:137
const SpeakerArrangement k40_2_2
C Sl Sr Cs Tsl Tsr Bsl Bsr.
Definition vstspeaker.h:391
const SpeakerArrangement k101Cine
L R C Lfe Ls Rs Lc Rc Cs Sl Sr.
Definition vstspeaker.h:193
const SpeakerArrangement kAmbi4thOrderACN
Fourth-Order with Ambisonic Channel Number (ACN) ordering and SN3D normalization (25 channels)
Definition vstspeaker.h:202
const SpeakerArrangement k72_3
L R C Lfe Ls Rs Sl Sr Tfl Tfr Trc Lfe2.
Definition vstspeaker.h:275
const SpeakerArrangement k71CineFullRear
L R C Lfe Ls Rs Lcs Rcs.
Definition vstspeaker.h:171
const SpeakerArrangement k70CineFrontHigh
L R C Ls Rs Tfl Tfr.
Definition vstspeaker.h:225
bool isAuro(const SpeakerArrangement &arr)
Returns true if arrangement is a Auro configuration.
Definition vstspeaker.h:694
const SpeakerArrangement k70_6
L R C Ls Rs Sl Sr Tfl Tfr Trl Trr Tsl Tsr.
Definition vstspeaker.h:286
const SpeakerArrangement k220
L R C Ls Rs Lc Rc Cs Sl Sr Tc Tfl Tfc Tfr Trl Trc Trr Tsl Tsr Bfl Bfc Bfr.
Definition vstspeaker.h:352
const SpeakerArrangement k30_5_2
L R C Tfl Tfc Tfr Trl Trr Bfl Bfr.
Definition vstspeaker.h:406
const SpeakerArrangement k31Cine
L R C Lfe.
Definition vstspeaker.h:135
const SpeakerArrangement kStereo
L R.
Definition vstspeaker.h:120
const SpeakerArrangement k50_4_2
L R C Ls Rs Tfl Tfr Trl Trr Bfl Bfr.
Definition vstspeaker.h:377
const SpeakerArrangement k71Music
L R C Lfe Ls Rs Sl Sr.
Definition vstspeaker.h:168
const SpeakerArrangement k60Cine
L R C Ls Rs Cs.
Definition vstspeaker.h:153
const SpeakerArrangement k91
L R C Lfe Ls Rs Tfl Tfr Trl Trr.
Definition vstspeaker.h:253
const SpeakerArrangement k80Music
L R C Ls Rs Cs Sl Sr.
Definition vstspeaker.h:181
const SpeakerArrangement k81MPEG3D
L R Lfe Ls Rs Tfl Tfc Tfr Bfc.
Definition vstspeaker.h:243
const SpeakerArrangement k71CineSideHigh
L R C Lfe Ls Rs Tsl Tsr.
Definition vstspeaker.h:239
const SpeakerArrangement k90_4
L R C Ls Rs Lc Rc Sl Sr Tfl Tfr Trl Trr.
Definition vstspeaker.h:294
const SpeakerArrangement kAmbi2cdOrderACN
Second-Order with Ambisonic Channel Number (ACN) ordering and SN3D normalization (9 channels)
Definition vstspeaker.h:198
const SpeakerArrangement k50
L R C Ls Rs.
Definition vstspeaker.h:149
const SpeakerArrangement k70_4
L R C Ls Rs Sl Sr Tfl Tfr Trl Trr.
Definition vstspeaker.h:278
const SpeakerArrangement k71_2
L R C Lfe Ls Rs Sl Sr Tsl Tsr.
Definition vstspeaker.h:267
const SpeakerArrangement k61Music
L R Lfe Ls Rs Sl Sr.
Definition vstspeaker.h:159
SpeakerArrangement getSpeakerArrangementFromString(CString arrStr)
Returns the speaker arrangement associated to a string representation.
Definition vstspeaker.h:797
bool is3D(const SpeakerArrangement &arr)
Returns true if arrangement is a 3D configuration ((top or bottom) and middle)
Definition vstspeaker.h:749
Speaker convertSpeaker_Ambi_567Order_to_Ambi1234Order(Speaker speaker_567_order)
Converts a speaker of a Ambisonic order 5 to 7 to a Ambisonic order 4 (1 to 4) (return 0 when out of ...
Definition vstspeaker.h:786
const SpeakerArrangement k50_3_2
L R C Ls Rs Tfl Tfc Tfr Bfl Bfr.
Definition vstspeaker.h:401
const SpeakerArrangement k50_5_3
L R C Ls Rs Tfl Tfc Tfr Trl Trr Bfl Bfc Bfr.
Definition vstspeaker.h:364
bool hasLfe(const SpeakerArrangement &arr)
Returns true if arrangement contains LFE speakers.
Definition vstspeaker.h:740
CString getSpeakerShortName(const SpeakerArrangement &arr, int32 index)
Returns a CString representation of a given speaker in a given arrangement.
const SpeakerArrangement k122
L R C Lfe Ls Rs Lc Rc Tfl Tfc Tfr Trl Trr Lfe2.
Definition vstspeaker.h:334
const SpeakerArrangement k80Cine
L R C Ls Rs Lc Rc Cs.
Definition vstspeaker.h:177
const SpeakerArrangement k30Cine
L R C.
Definition vstspeaker.h:133
bool isSubsetOf(const SpeakerArrangement &arrSubSet, const SpeakerArrangement &arr)
Returns true if arrSubSet is a subset speaker of arr (means each speaker of arrSubSet is included in ...
Definition vstspeaker.h:687
const SpeakerArrangement k81Cine
L R C Lfe Ls Rs Lc Rc Cs.
Definition vstspeaker.h:179
const SpeakerArrangement k91_6
L R C Lfe Ls Rs Lc Rc Sl Sr Tfl Tfr Trl Trr Tsl Tsr.
Definition vstspeaker.h:307
uint64 Speaker
Bit for one speaker.
Definition vsttypes.h:105
uint64 SpeakerArrangement
Bitset of speakers.
Definition vsttypes.h:104
const char8 * CString
C-String.
Definition vsttypes.h:70