Changeset 2246

Show
Ignore:
Timestamp:
11/04/12 07:07:09 (11 years ago)
Author:
philippe
Message:

Saffire Pro 14/24/40 Add application space description in header files/Prepare for full monitoring.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/src/dice/focusrite/focusrite_eap.h

    r1766 r2246  
    2929 
    3030#include "libieee1394/configrom.h" 
     31 
     32/** 
     33 *  Focusrite EAP application space 
     34 *    Prescribed values common to all devices 
     35 */ 
     36// The limit of the monitoring setting register space in the EAP application space 
     37// (included) 
     38// All subsequent addresses can not be beyond this limit 
     39#define FOCUSRITE_EAP_REGISTER_APP_MONITORING_LIMIT 0x68 
     40 
     41// To be sent after any message set  
     42#define FOCUSRITE_EAP_MESSAGE_SET_NO_MESSAGE 0 
     43 
     44// Global switches 
     45// One register for each 
     46#define FOCUSRITE_EAP_GLOBAL_MUTE_SWITCH_VALUE 1 
     47#define FOCUSRITE_EAP_GLOBAL_DIM_SWITCH_VALUE 1 
     48 
     49// Per Line/Out switch monitor registers; bit encoding 
     50//   Each register controls two (left and rigth) Line/Out 
     51#define FOCUSRITE_EAP_SWITCH_BIT_1   1 // Activate left Line/Out 
     52#define FOCUSRITE_EAP_SWITCH_BIT_2   2 // Activate right Line/Out 
     53#define FOCUSRITE_EAP_SWITCH_BIT_1_2 3 // Activate both 
     54#define FOCUSRITE_EAP_SWITCH_BIT_3   4 // Mute left Line/Out 
     55#define FOCUSRITE_EAP_SWITCH_BIT_4   8 // Mute right Line/Out 
     56 
     57// Per Line/Out mute, dim and mono register; bit encoding 
     58//   One register controls all Line/Out 
     59#define FOCUSRITE_EAP_SWITCH_CONTROL_MUTE_SHIFT 0 
     60#define FOCUSRITE_EAP_SWITCH_CONTROL_DIM_SHIFT 10 
     61#define FOCUSRITE_EAP_SWITCH_CONTROL_MONO_SHIFT 20 
     62#define FOCUSRITE_EAP_GLOBAL_MUTE_SWITCH_VALUE 1 
     63#define FOCUSRITE_EAP_GLOBAL_DIM_SWITCH_VALUE 1 
     64#define FOCUSRITE_EAP_SWITCH_CONTROL_VALUE 1 
     65 
     66// Per Line/Out volume monitor registers 
     67// Each register controls two (left and rigth) Line/Out 
     68// The two last bytes (little endian) of each Line/Out volume register 
     69//   control the right and line line respectively  
     70#define FOCUSRITE_EAP_LINEOUT_VOLUME_SET_1   0 
     71#define FOCUSRITE_EAP_LINEOUT_VOLUME_SET_2   8 
     72 
     73// Per Line/Out Instrument/Line and Hi/Lo gain switches 
     74//   Each register controls two (left and rigth) Line/Out 
     75#define FOCUSRITE_EAP_LINEOUT_SWITCH_INST_SHIFT 16 
     76#define FOCUSRITE_EAP_LINEOUT_SWITCH_GAIN_SHIFT 16 
    3177 
    3278namespace Dice { 
  • trunk/libffado/src/dice/focusrite/saffire_pro14.h

    r2239 r2246  
    3232#include "focusrite_eap.h" 
    3333 
     34/** 
     35 *  Saffire Pro 14 EAP application space 
     36 */ 
     37// Versioning registers 
     38#define SAFFIRE_PRO14_REGISTER_APP_VERSION 0x00 
     39#define SAFFIRE_PRO14_REGISTER_APP_RELEASE 0x04 
     40#define SAFFIRE_PRO14_REGISTER_APP_BUILDNR 0x08 
     41 
    3442// Nickname register 
    3543#define SAFFIRE_PRO14_REGISTER_APP_NICK_NAME 0x44 
    3644// NOTE: in bytes 
    3745#define SAFFIRE_PRO14_APP_NICK_NAME_SIZE 16 
     46 
     47// Global monitor registers (application space) 
     48#define SAFFIRE_PRO14_REGISTER_APP_GLOBAL_MUTE_SWITCH 0x10 
     49#define SAFFIRE_PRO14_REGISTER_APP_GLOBAL_DIM_SWITCH  0x14 
     50#define SAFFIRE_PRO14_REGISTER_APP_GLOBAL_DIM_VOLUME 0x58 
     51#define SAFFIRE_PRO14_REGISTER_APP_GLOBAL_MONITOR_VOLUME 0x54 
     52 
     53// Per line/out monitor volume and switches: registers are expected to be one after the other 
     54//  each register controlling two output lines 
     55// This is indeed the number of analog output controlled by the monitor 
     56#define SAFFIRE_PRO14_APP_STEREO_LINEOUT_SIZE 2 
     57 
     58// Volume and switch monitor register 
     59#define SAFFIRE_PRO14_REGISTER_APP_LINEOUT_MONITOR_VOLUME 0x18 
     60#define SAFFIRE_PRO14_REGISTER_APP_LINEOUT_MONITOR_SWITCH 0x2C 
     61 
     62// Switch control (per line/out mute, dim and mono) 
     63#define SAFFIRE_PRO14_REGISTER_APP_LINEOUT_SWITCH_CONTROL 0x40 
     64 
     65// Message set 
     66//   The location of the message register and the values for each setting 
     67#define SAFFIRE_PRO14_REGISTER_APP_MESSAGE_SET 0x0C 
     68#define SAFFIRE_PRO14_MESSAGE_SET_NO_MESSAGE 0 
     69#define SAFFIRE_PRO14_MESSAGE_SET_LINEOUT_MONITOR_VOLUME 1 
     70#define SAFFIRE_PRO14_MESSAGE_SET_GLOBAL_DIM_MUTE_SWITCH 2 
     71#define SAFFIRE_PRO14_MESSAGE_SET_LINEOUT_SWITCH_CONTROL 3 
     72#define SAFFIRE_PRO14_MESSAGE_SET_INSTLINE 4 
     73#define SAFFIRE_PRO14_MESSAGE_SET_MESSAGE_END 5 
     74 
     75// Standalone 
     76#define SAFFIRE_PRO14_REGISTER_STANDALONE_SWITCH 0x64 
     77#define SAFFIRE_PRO14_REGISTER_STANDALONE_SRC_SMPL 0x68 // Automatically stored 
     78 
     79// Inst/Line and Hi/Lo gain control 
     80//  each register controls two (mono) output lines 
     81#define SAFFIRE_PRO14_REGISTER_APP_LINEOUT_INST_SWITCH 0x5C 
     82#define SAFFIRE_PRO14_LINEOUT_SWITCH_INST_NUMBER 1 
     83#define SAFFIRE_PRO14_LINEOUT_SWITCH_INST_VALUE 2 
     84#define SAFFIRE_PRO14_REGISTER_APP_LINEOUT_GAIN_SWITCH 0x60 
     85#define SAFFIRE_PRO14_LINEOUT_SWITCH_GAIN_NUMBER 1 
     86#define SAFFIRE_PRO14_LINEOUT_SWITCH_GAIN_VALUE 1 
    3887 
    3988namespace Dice { 
  • trunk/libffado/src/dice/focusrite/saffire_pro24.h

    r2240 r2246  
    3232#include "focusrite_eap.h" 
    3333 
     34/** 
     35 *  Saffire Pro 24 EAP application space 
     36 */ 
     37// Versioning registers 
     38#define SAFFIRE_PRO24_REGISTER_APP_VERSION 0x00 
     39#define SAFFIRE_PRO24_REGISTER_APP_RELEASE 0x04 
     40#define SAFFIRE_PRO24_REGISTER_APP_BUILDNR 0x08 
     41 
    3442// Nickname register 
    3543#define SAFFIRE_PRO24_REGISTER_APP_NICK_NAME 0x40 
    3644// NOTE: in bytes 
    3745#define SAFFIRE_PRO24_APP_NICK_NAME_SIZE 16 
     46 
     47// Global monitor registers (application space) 
     48#define SAFFIRE_PRO24_REGISTER_APP_GLOBAL_MUTE_SWITCH 0x0C 
     49#define SAFFIRE_PRO24_REGISTER_APP_GLOBAL_DIM_SWITCH  0x10 
     50#define SAFFIRE_PRO24_REGISTER_APP_GLOBAL_DIM_VOLUME 0x58 
     51#define SAFFIRE_PRO24_REGISTER_APP_GLOBAL_MONITOR_VOLUME 0x54 
     52 
     53// Per line/out monitor volume and switches: registers are expected to be one after the other 
     54//  each register controlling two output lines 
     55// The whole number of physical analog output is thus 2*SAFFIRE_PRO24_APP_STEREO_LINEOUT_SIZE 
     56#define SAFFIRE_PRO24_APP_STEREO_LINEOUT_SIZE 3 
     57 
     58// Volume and switch monitor register 
     59#define SAFFIRE_PRO24_REGISTER_APP_LINEOUT_MONITOR_VOLUME 0x14 
     60#define SAFFIRE_PRO24_REGISTER_APP_LINEOUT_MONITOR_SWITCH 0x28 
     61 
     62// Switch control (per line/out mute, dim and mono) 
     63#define SAFFIRE_PRO24_REGISTER_APP_LINEOUT_SWITCH_CONTROL 0x3C 
     64 
     65// Message set 
     66//   The location of the message register and the values for each setting 
     67#define SAFFIRE_PRO24_REGISTER_APP_MESSAGE_SET 0x68 
     68#define SAFFIRE_PRO24_MESSAGE_SET_NO_MESSAGE 0 
     69#define SAFFIRE_PRO24_MESSAGE_SET_LINEOUT_MONITOR_VOLUME 1 
     70#define SAFFIRE_PRO24_MESSAGE_SET_GLOBAL_DIM_MUTE_SWITCH 2 
     71#define SAFFIRE_PRO24_MESSAGE_SET_LINEOUT_SWITCH_CONTROL 3 
     72#define SAFFIRE_PRO24_MESSAGE_SET_INSTLINE 4 
     73#define SAFFIRE_PRO24_MESSAGE_SET_MESSAGE_END 5 
     74 
     75// Standalone 
     76#define SAFFIRE_PRO24_REGISTER_STANDALONE_SWITCH 0x60 
     77#define SAFFIRE_PRO24_REGISTER_STANDALONE_SRC_SMPL 0x64 // Automatically stored 
     78 
     79// Inst/Line and Hi/Lo gain control 
     80//  each register controls two (mono) output lines 
     81#define SAFFIRE_PRO24_REGISTER_APP_LINEOUT_INST_SWITCH 0x58 
     82#define SAFFIRE_PRO24_LINEOUT_SWITCH_INST_NUMBER 1 
     83#define SAFFIRE_PRO24_LINEOUT_SWITCH_INST_VALUE 2 
     84#define SAFFIRE_PRO24_REGISTER_APP_LINEOUT_GAIN_SWITCH 0x5C 
     85#define SAFFIRE_PRO24_LINEOUT_SWITCH_GAIN_NUMBER 1 
     86#define SAFFIRE_PRO24_LINEOUT_SWITCH_GAIN_VALUE 1 
    3887 
    3988namespace Dice { 
  • trunk/libffado/src/dice/focusrite/saffire_pro40.h

    r2238 r2246  
    3131#include "focusrite_eap.h" 
    3232 
     33/** 
     34 *  Saffire Pro 40 EAP application space 
     35 */ 
     36// Versioning registers 
     37#define SAFFIRE_PRO40_REGISTER_APP_VERSION 0x00 
     38#define SAFFIRE_PRO40_REGISTER_APP_RELEASE 0x04 
     39#define SAFFIRE_PRO40_REGISTER_APP_BUILDNR 0x08 
     40 
    3341// Nickname register 
    3442#define SAFFIRE_PRO40_REGISTER_APP_NICK_NAME 0x44 
     
    3644#define SAFFIRE_PRO40_APP_NICK_NAME_SIZE 16 
    3745 
     46// Global monitor registers (application space) 
     47#define SAFFIRE_PRO40_REGISTER_APP_GLOBAL_MUTE_SWITCH 0x0C 
     48#define SAFFIRE_PRO40_REGISTER_APP_GLOBAL_DIM_SWITCH  0x10 
     49#define SAFFIRE_PRO40_REGISTER_APP_GLOBAL_DIM_VOLUME 0x58 
     50#define SAFFIRE_PRO40_REGISTER_APP_GLOBAL_MONITOR_VOLUME 0x54 
     51 
     52// Per line/out monitor volume and switches: registers are expected to be one after the other 
     53//  each register controlling two output lines 
     54// The whole number of physical analog output is thus 2*SAFFIRE_PRO40_APP_STEREO_LINEOUT_SIZE 
     55#define SAFFIRE_PRO40_APP_STEREO_LINEOUT_SIZE 5 
     56 
     57// Volume and switch monitor register 
     58#define SAFFIRE_PRO40_REGISTER_APP_LINEOUT_MONITOR_VOLUME 0x14 
     59#define SAFFIRE_PRO40_REGISTER_APP_LINEOUT_MONITOR_SWITCH 0x28 
     60 
     61// Switch control (per line/out mute, dim and mono) 
     62#define SAFFIRE_PRO40_REGISTER_APP_LINEOUT_SWITCH_CONTROL 0x3C 
     63 
     64// Message set 
     65//   The location of the message register and the values for each setting 
     66#define SAFFIRE_PRO40_REGISTER_APP_MESSAGE_SET 0x68 
     67#define SAFFIRE_PRO40_MESSAGE_SET_NO_MESSAGE 0 
     68#define SAFFIRE_PRO40_MESSAGE_SET_LINEOUT_MONITOR_VOLUME 1 
     69#define SAFFIRE_PRO40_MESSAGE_SET_GLOBAL_DIM_MUTE_SWITCH 2 
     70#define SAFFIRE_PRO40_MESSAGE_SET_LINEOUT_SWITCH_CONTROL 3 
     71#define SAFFIRE_PRO40_MESSAGE_SET_INSTLINE 4 
     72#define SAFFIRE_PRO40_MESSAGE_SET_MESSAGE_END 5 
     73 
     74// Standalone 
     75#define SAFFIRE_PRO40_REGISTER_STANDALONE_SWITCH 0x60 
     76#define SAFFIRE_PRO40_REGISTER_STANDALONE_SRC_SMPL 0x64 // Automatically stored 
    3877 
    3978namespace Dice {