Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ezfit:clarujust:ezorange_api [2009/11/05 17:11]
smayr
ezfit:clarujust:ezorange_api [2009/11/20 16:52] (current)
smayr
Line 1: Line 1:
 == ezOrange API == == ezOrange API ==
 Following is the Application Programming Interface (API) for the ezOrange application. Following is the Application Programming Interface (API) for the ezOrange application.
 +
 +=== API 3.6 ===
 +<code vb>
 +'// NOTE: All returns are Error Codes
 +
 +function SetInterface(ProgIntfIdx: Integer): Integer; safecall;         // 0-Simulation, Nonzero-Live
 +function GetInterface(var ProgIntfIdx: Integer): Integer; safecall; // 0-Simulation, Nonzero-Live
 +
 +'//--- Not used by Clarujust ---
 +function SetEar(EarSideIdx: Integer): Integer; safecall;
 +function GetEar(): Integer; safecall;
 +function SetMemory(MemIdx: Integer): Integer; safecall;
 +function GetMemory(): Integer; safecall;
 +function SetHAInitialize(): Integer; safecall;
 +function SetHARead(): Integer; safecall;
 +function SetHAWrite(): Integer; safecall;
 +function SetHABurn(): Integer; safecall;
 +function SetHAClose(): Integer; safecall;
 +procedure SetParams(Params: OleVariant); safecall; // Not needed by Clarujust
 +function GetParams: OleVariant; safecall;    // Not needed by Clarujust
 +procedure LaunchClarujustApp(); safecall;     // Not needed by Clarujust
 +
 +'//--- Debugging ---
 +function SetSilentErrors(Silent: WordBool): Integer; safecall;
 +function GetSilentErrors(): WordBool; safecall;
 +
 +'//--- Bump, Tilt, and Gain ---
 +function SetBumpQ(BumpQIdx: Integer): Integer; safecall;
 +function GetBumpQ(var BumpQIdx: Integer, var BumpQVal: Single): Integer; safecall;
 +function SetBumpGain(BumpGainIdx: Integer): Integer; safecall;
 +function GetBumpGain(var BumpQIdx: Integer, var BumpGainVal: Single): Integer; safecall;
 +function SetBumpCF(BumpCFIdx: Integer): Integer; safecall;
 +function GetBumpCF(var BumpCFIdx: Integer, var BumpCFVal: Single): Integer; safecall;
 +function SetTiltCF(TiltCFIdx: Integer): Integer; safecall;
 +function GetTiltCF(var TiltCFIdx: Integer, var TiltCFVal: Single): Integer; safecall;
 +function SetTiltSlope(TiltSlopeIdx: Integer): Integer; safecall;
 +function GetTiltSlope(var TiltSlopeIdx: Integer, var TiltSlopeVal: Single): Integer; safecall;
 +function SetGain(GainIdx: Integer): Integer; safecall;
 +function GetGain(var GainIdx: Integer, var GainVal: Single): Integer; safecall;
 +function SetBias(Bias: Integer): Integer; safecall;
 +function GetBias(var Bias: Integer): Integer; safecall;
 +function GetEthosArray(out Arr: PSafeArray): Integer; safecall;
 +
 +function SetCompression(BumpGain60: Integer; BumpQ60: Integer; BumpCF60: Integer;
 +   TiltSlope60: Integer; OverallGain60: Integer; GainBias60: Integer;
 +   BumpGain80: Integer; BumpQ80: Integer; BumpCF80: Integer;
 +   TiltSlope80: Integer; OverallGain80: Integer; GainBias80: Integer): Integer; safecall;
 +
 +'//--- Revised functionality ---
 +function SetAudiogram(AnAudiogram: PSafeArray): Integer; safecall; // Not needed by Clarujust
 +function GetAudiogram(var AnAudiogram: PSafeArray; EarSideIdx: integer): Integer; safecall;
 +
 +function SetSerialNumber(SerialNum: PChar; EarSideIdx: integer): Integer; safecall; // Not needed by Clarujust
 +function GetSerialNumber(var SerialNumber: PChar; EarSideIdx: integer): Integer; safecall;
 +
 +'//--- New functionality ---
 +function Setup60(): Integer; safecall; // Prepares the HI settings before running
 +function Setup80(): Integer; safecall; // a test
 +function ApplySettings: Integer; safecall;
 +function GetHAInitialized(var IsInitialized: WordBool): Integer; safecall;
 +function GetEarCount(var EarCount: Integer) : Integer; safecall;  // 0–none, 1-left, 2-right, 3-both
 +
 +</code>
  
 === API 3.5 === === API 3.5 ===
Line 11: Line 74:
 Public Function SetSerialNum(SerialNum: string); Public Function SetSerialNum(SerialNum: string);
 Public Function GetSerialNum(): string; Public Function GetSerialNum(): string;
-</code> 
- 
-Return or Set values for ''GetInterface()'' and ''SetInterface()'' routines: 
-^ Code ^ Value      ^ Description ^ 
-|  0   | Simulation | There is no programmer interface. | 
-|  1   | HiPro      | HiPro is programmer interface.    | 
-|  2   | EMiniTec   | EMiniTec is programmer interface. | 
- 
-Audiogram array to pass to Optimizer (''SetAudiogram()'' and ''GetAudiogram()''): 
-^ Index ^ Frequency ^  
-|  0    250 |  
-|  1    500 |  
-|  2    750 |  
-|  3   | 1000 |  
-|  4   | 1500 |  
-|  5   | 2000 |  
-|  6   | 3000 |  
-|  7   | 4000 |  
-|  8   | 6000 |  
-|  9   | 8000 |  
- 
- 
- 
-For ''SetParams()'', array format for Ethos-based circuit: 
-<code delphi> 
-paramsArray[0]  := BEQ1_gain; 
-paramsArray[1]  := BEQ2_gain; 
-paramsArray[2]  := BEQ3_gain; 
-paramsArray[3]  := BEQ4_gain; 
-paramsArray[4]  := BEQ5_gain; 
-paramsArray[5]  := BEQ6_gain; 
-paramsArray[6]  := BEQ7_gain; 
-paramsArray[7]  := BEQ8_gain; 
-paramsArray[8]  := BEQ9_gain; 
-paramsArray[9]  := BEQ10_gain; 
-paramsArray[10] := BEQ11_gain; 
-paramsArray[11] := BEQ12_gain; 
-         
-paramsArray[12] := C1_MPO; 
-paramsArray[13] := C2_MPO; 
-paramsArray[14] := C3_MPO; 
-paramsArray[15] := C4_MPO; 
-paramsArray[16] := C5_MPO; 
-paramsArray[17] := C6_MPO; 
-paramsArray[18] := C7_MPO; 
-paramsArray[19] := C8_MPO; 
-         
-paramsArray[20] := C1_Ratio; 
-paramsArray[21] := C2_Ratio; 
-paramsArray[22] := C3_Ratio; 
-paramsArray[23] := C4_Ratio; 
-paramsArray[24] := C5_Ratio; 
-paramsArray[25] := C6_Ratio; 
-paramsArray[26] := C7_Ratio; 
-paramsArray[27] := C8_Ratio; 
-                 
-paramsArray[28] := C1_TK; 
-paramsArray[29] := C2_TK; 
-paramsArray[30] := C3_TK; 
-paramsArray[31] := C4_TK; 
-paramsArray[32] := C5_TK; 
-paramsArray[33] := C6_TK; 
-paramsArray[34] := C7_TK; 
-paramsArray[35] := C8_TK; 
-         
-paramsArray[36] := FBC_Enable; 
-paramsArray[37] := input_mux; 
-paramsArray[38] := matrix_gain; 
-paramsArray[39] := Noise_Reduction; 
-paramsArray[40] := preamp_gain0; 
-paramsArray[41] := preamp_gain1; 
-paramsArray[42] := TimeConstants; 
 </code> </code>
  
Line 146: Line 137:
  ) As Integer  ) As Integer
 </code> </code>
- 
-==== Ethos Error Values  ==== 
- 
-^ Error Code  ^ Error Description ^ 
-| 0  | Ethos OK  | 
-| 1  | Ethos NoProgrammer | 
-| 2  | Ethos NoInstrument | 
-| 3  | Ethos BadArgument | 
-| 4  | Ethos NotInitialized | 
-| 5  | Ethos NotRead | 
-| 6  | Ethos ChecksumError | 
-| 7  | Ethos InvalidVersion | 
-| 8  | Ethos ProgrammerError | 
-| 9  | Ethos CMFError | 
-| 10 | Ethos WrongInstrument | 
-| 11 | Ethos BootError | 
-| 12 | Ethos NoNLDriver | 
-| 13 | Ethos NLInUse | 
  
 === API 1.1 === === API 1.1 ===
Line 206: Line 179:
 Public Function GetSilentErrors() As Boolean Public Function GetSilentErrors() As Boolean
 </code> </code>
- 
-==== Ethos Error Values  ==== 
- 
-^ Error Code  ^ Error Description ^ 
-| 0  | Ethos OK  | 
-| 1  | Ethos NoProgrammer | 
-| 2  | Ethos NoInstrument | 
-| 3  | Ethos BadArgument | 
-| 4  | Ethos NotInitialized | 
-| 5  | Ethos NotRead | 
-| 6  | Ethos ChecksumError | 
-| 7  | Ethos InvalidVersion | 
-| 8  | Ethos ProgrammerError | 
-| 9  | Ethos CMFError | 
-| 10 | Ethos WrongInstrument | 
-| 11 | Ethos BootError | 
-| 12 | Ethos NoNLDriver | 
-| 13 | Ethos NLInUse | 
  
 === API 1.0 === === API 1.0 ===
Line 260: Line 215:
 </code> </code>
  
 +== Data Types ==
 +
 +==== Programming Interface ====
 +Return or Set values for ''GetInterface()'' and ''SetInterface()'' routines:
 +^ Code ^ Value      ^ Description ^
 +|  0   | Simulation | There is no programmer interface. |
 +|  1   | HiPro      | HiPro is programmer interface.    |
 +|  2   | EMiniTec   | EMiniTec is programmer interface. |
 +
 +==== Audiogram ====
 +Audiogram array to pass to Optimizer (''SetAudiogram()'' and ''GetAudiogram()''):
 +^ Index ^ Frequency ^ 
 +|  0     250 | 
 +|  1     500 | 
 +|  2     750 | 
 +|  3    1000 | 
 +|  4    1500 | 
 +|  5    2000 | 
 +|  6    3000 | 
 +|  7    4000 | 
 +|  8    6000 | 
 +|  9    8000 | 
 +
 +==== Circuit Parameters ====
 +For ''SetParams()'', ''GetParams()'', and ''GetEthosParams()'', array format for Ethos-based circuit:
 +<code delphi>
 +paramsArray[0]  := BEQ1_gain;
 +paramsArray[1]  := BEQ2_gain;
 +paramsArray[2]  := BEQ3_gain;
 +paramsArray[3]  := BEQ4_gain;
 +paramsArray[4]  := BEQ5_gain;
 +paramsArray[5]  := BEQ6_gain;
 +paramsArray[6]  := BEQ7_gain;
 +paramsArray[7]  := BEQ8_gain;
 +paramsArray[8]  := BEQ9_gain;
 +paramsArray[9]  := BEQ10_gain;
 +paramsArray[10] := BEQ11_gain;
 +paramsArray[11] := BEQ12_gain;
 +        
 +paramsArray[12] := C1_MPO;
 +paramsArray[13] := C2_MPO;
 +paramsArray[14] := C3_MPO;
 +paramsArray[15] := C4_MPO;
 +paramsArray[16] := C5_MPO;
 +paramsArray[17] := C6_MPO;
 +paramsArray[18] := C7_MPO;
 +paramsArray[19] := C8_MPO;
 +        
 +paramsArray[20] := C1_Ratio;
 +paramsArray[21] := C2_Ratio;
 +paramsArray[22] := C3_Ratio;
 +paramsArray[23] := C4_Ratio;
 +paramsArray[24] := C5_Ratio;
 +paramsArray[25] := C6_Ratio;
 +paramsArray[26] := C7_Ratio;
 +paramsArray[27] := C8_Ratio;
 +                
 +paramsArray[28] := C1_TK;
 +paramsArray[29] := C2_TK;
 +paramsArray[30] := C3_TK;
 +paramsArray[31] := C4_TK;
 +paramsArray[32] := C5_TK;
 +paramsArray[33] := C6_TK;
 +paramsArray[34] := C7_TK;
 +paramsArray[35] := C8_TK;
 +        
 +paramsArray[36] := FBC_Enable;
 +paramsArray[37] := input_mux;
 +paramsArray[38] := matrix_gain;
 +paramsArray[39] := Noise_Reduction;
 +paramsArray[40] := preamp_gain0;
 +paramsArray[41] := preamp_gain1;
 +paramsArray[42] := TimeConstants;
 +</code>
 +
 +==== Circuit I/O Operation Error Values ====
 +^ Error Value ^ Error Code      ^ Error Description ^
 +| 0           | OK              | Operation was successful. |
 +| 1           | NoProgrammer    | Valid programmer has not been set. |
 +| 2           | NoInstrument    | No or invalid hearing instrument (HI) connected. |
 +| 3           | BadArgument     | Bad Argument provided.  Check one of these: <code>
 +  - Invalid programming interface
 +  - Invalid platformID specified
 +  - Invalid program specified
 +  - Invalid channel specified
 +  - Invalid data in params or config structure
 +  - Page argument invalid</code> |
 +| 4           | NotInitialized  | Programmer has not been initialized yet. |
 +| 5           | NotRead         | Not Read. |
 +| 6           | ChecksumError   | Invalid data received. |
 +| 7           | InvalidVersion  | Invalid parameter version passed in. |
 +| 8           | ProgrammerError | Error occurred trying to initialize programmer. |
 +| 9           | CMFError        | Error during previous load. |
 +| 10          | WrongInstrument | Invalid security ID of the connected device. |
 +| 11          | BootError       | Boot Error. |
 +| 12          | NoNLDriver      | Noahlink drivers have not been installed. |
 +| 13          | NLInUse         | Noahlink in use by another software package. |