4 Stimmen

Ist es möglich, die Beschreibungen der Audio Unit Parameter aufzuzählen?

Gibt es eine Möglichkeit für einen Audio Unit Host, durch die Parameter eines Plugins zu gehen und Informationen wie z.B.:

  • Parametername als Zeichenkette, z. B. "Verzögerungszeit".
  • Parameterbereich (Minimum, Maximum)
  • Parametereinheiten (z. B. Sekunden)
  • Parametersteuerung (z.B. Schieberegler)

AFAICT ist diese Information im Plugin verfügbar, aber ich kann nicht herausfinden, wie man sie von der Hostseite aus abfragt.

8voto

admsyn Punkte 1411

Sie müssen zunächst #import CAAUParameter und AUParamInfo ( die unter /Developer/Extras/CoreAudio/PublicUtility zu finden ist ).

EDITAR : Diese Dateien befinden sich jetzt im Paket "Audio Tools For Xcode". Sie erhalten es, indem Sie auf Xcode > Open Developer Tool > More Developer Tools...

Angenommen, Sie haben eine AudioUnit namens theUnit Mit dem folgenden Code können Sie eine Iteration durch theUnit Parameter:

bool includeExpert   = false;
bool includeReadOnly = false;

AUParamInfo info (theUnit, includeExpert, includeReadOnly); 

for(int i = 0; i < info.NumParams(); i++)
{
    if(NULL != info.GetParamInfo(i))
    {
        // Do things with info here
    }
}

Zum Beispiel, info.GetParamInfo(i))->ParamInfo() gibt Ihnen eine AudioUnitParameterInfo-Struktur, die wie folgt definiert ist:

typedef struct AudioUnitParameterInfo
{
    char                        name[52];
    CFStringRef                 unitName;
    UInt32                      clumpID;
    CFStringRef                 cfNameString;
    AudioUnitParameterUnit      unit;                       
    AudioUnitParameterValue     minValue;           
    AudioUnitParameterValue     maxValue;           
    AudioUnitParameterValue     defaultValue;       
    UInt32                      flags;              
} AudioUnitParameterInfo;

Beachten Sie, dass Sie die AudioUnit zuerst öffnen müssen (z.B. durch Aufruf von AUGraphOpen() auf dem Graphen, der die Unit enthält).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X