78 | | |
---|
79 | | // Template for an RME Device object method which intelligently returns a |
---|
80 | | // register or value applicable to the connected model and warns if something |
---|
81 | | // isn't quite right. |
---|
82 | | #define MODEL_SELECTOR(_name,_ff400_arg,_ff800_arg) \ |
---|
83 | | unsigned long long int \ |
---|
84 | | Device::_name() { \ |
---|
85 | | switch (m_rme_model) { \ |
---|
86 | | case RME_MODEL_FIREFACE400: return _ff400_arg; \ |
---|
87 | | case RME_MODEL_FIREFACE800: return _ff800_arg; \ |
---|
88 | | default: \ |
---|
89 | | debugOutput( DEBUG_LEVEL_WARNING, "Bad RME model %d\n", m_rme_model ); \ |
---|
90 | | } \ |
---|
91 | | return 0xffffffffffffffffLL; \ |
---|
92 | | } |
---|
114 | | |
---|
115 | | MODEL_SELECTOR(cmd_buffer_addr, RME_FF400_CMD_BUFFER, RME_FF800_CMD_BUFFER) |
---|
116 | | MODEL_SELECTOR(stream_init_reg, RME_FF400_STREAM_INIT_REG, RME_FF800_STREAM_INIT_REG) |
---|
117 | | MODEL_SELECTOR(stream_start_reg, RME_FF400_STREAM_START_REG, RME_FF800_STREAM_START_REG) |
---|
118 | | MODEL_SELECTOR(stream_end_reg, RME_FF400_STREAM_END_REG, RME_FF800_STREAM_END_REG) |
---|
119 | | MODEL_SELECTOR(flash_settings_addr, RME_FF400_FLASH_SETTINGS_ADDR, RME_FF800_FLASH_SETTINGS_ADDR) |
---|
120 | | MODEL_SELECTOR(flash_mixer_vol_addr, RME_FF400_FLASH_MIXER_VOLUME_ADDR, RME_FF800_FLASH_MIXER_VOLUME_ADDR) |
---|
121 | | MODEL_SELECTOR(flash_mixer_pan_addr, RME_FF400_FLASH_MIXER_PAN_ADDR, RME_FF800_FLASH_MIXER_PAN_ADDR) |
---|
122 | | MODEL_SELECTOR(flash_mixer_hw_addr, RME_FF400_FLASH_MIXER_HW_ADDR, RME_FF800_FLASH_MIXER_HW_ADDR) |
---|