Changeset 1624
- Timestamp:
- 08/21/09 06:58:02 (14 years ago)
- Files:
-
- trunk/libffado/src/rme/fireface_hw.cpp (modified) (6 diffs)
- trunk/libffado/src/rme/rme_avdevice.cpp (modified) (2 diffs)
- trunk/libffado/src/rme/rme_avdevice.h (modified) (1 diff)
- trunk/libffado/src/rme/rme_avdevice_settings.cpp (modified) (14 diffs)
- trunk/libffado/src/rme/rme_shm.cpp (added)
- trunk/libffado/src/rme/rme_shm.h (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/src/rme/fireface_hw.cpp
r1622 r1624 51 51 // device flash and adopt that. For now (for initial testing purposes) 52 52 // we'll go with a static state. 53 memset( &settings, 0, sizeof(settings));54 settings .spdif_input_mode = FF_SWPARAM_SPDIF_INPUT_COAX;55 settings .spdif_output_mode = FF_SWPARAM_SPDIF_OUTPUT_COAX;56 settings .clock_mode = FF_SWPARAM_CLOCK_MODE_MASTER;57 settings .sync_ref = FF_SWPARAM_SYNCREF_WORDCLOCK;58 settings .input_level = FF_SWPARAM_ILEVEL_LOGAIN;59 settings .output_level = FF_SWPARAM_OLEVEL_HIGAIN;60 settings .phones_level = FF_SWPARAM_PHONESLEVEL_HIGAIN;53 memset(settings, 0, sizeof(*settings)); 54 settings->spdif_input_mode = FF_SWPARAM_SPDIF_INPUT_COAX; 55 settings->spdif_output_mode = FF_SWPARAM_SPDIF_OUTPUT_COAX; 56 settings->clock_mode = FF_SWPARAM_CLOCK_MODE_MASTER; 57 settings->sync_ref = FF_SWPARAM_SYNCREF_WORDCLOCK; 58 settings->input_level = FF_SWPARAM_ILEVEL_LOGAIN; 59 settings->output_level = FF_SWPARAM_OLEVEL_HIGAIN; 60 settings->phones_level = FF_SWPARAM_PHONESLEVEL_HIGAIN; 61 61 62 62 // Set amplifier gains … … 64 64 signed int i; 65 65 for (i=0; i<FF400_AMPGAIN_NUM; i++) { 66 set_hardware_ampgain(i, settings .amp_gains[i]);66 set_hardware_ampgain(i, settings->amp_gains[i]); 67 67 } 68 68 } … … 73 73 m_dds_freq = 0; 74 74 75 if (set_hardware_params( &settings) != 0)75 if (set_hardware_params(settings) != 0) 76 76 return -1; 77 77 … … 79 79 // which have a TCO. 80 80 if (tco_present) { 81 memset( &tco_settings, 0, sizeof(tco_settings));82 return write_tco_settings( &tco_settings);81 memset(tco_settings, 0, sizeof(*tco_settings)); 82 return write_tco_settings(tco_settings); 83 83 } 84 84 … … 127 127 state->is_streaming = is_streaming; 128 128 129 state->clock_mode = (settings .clock_mode == FF_SWPARAM_CLOCK_MODE_MASTER)?FF_STATE_CLOCKMODE_MASTER:FF_STATE_CLOCKMODE_AUTOSYNC;129 state->clock_mode = (settings->clock_mode == FF_SWPARAM_CLOCK_MODE_MASTER)?FF_STATE_CLOCKMODE_MASTER:FF_STATE_CLOCKMODE_AUTOSYNC; 130 130 131 131 switch (stat0 & SR0_AUTOSYNC_SRC_MASK) { … … 233 233 234 234 if (use_settings == NULL) 235 sw_settings = &settings;235 sw_settings = settings; 236 236 else 237 237 sw_settings = use_settings; trunk/libffado/src/rme/rme_avdevice.cpp
r1622 r1624 94 94 debugOutput( DEBUG_LEVEL_VERBOSE, "Created Rme::Device (NodeID %d)\n", 95 95 getConfigRom().getNodeId() ); 96 97 settings = &settings_localobj; 98 tco_settings = &tco_settings_localobj; 99 96 100 memset(&settings, 0, sizeof(settings)); 97 101 memset(&tco_settings, 0, sizeof(tco_settings)); … … 320 324 321 325 m_dds_freq = dds_freq; 322 if (settings .clock_mode == FF_STATE_CLOCKMODE_MASTER) {326 if (settings->clock_mode == FF_STATE_CLOCKMODE_MASTER) { 323 327 if (set_hardware_dds_freq(dds_freq) != 0) 324 328 return false; trunk/libffado/src/rme/rme_avdevice.h
r1622 r1624 120 120 121 121 signed int tco_present; 122 FF_software_settings_t settings; 123 FF_TCO_settings_t tco_settings; 122 FF_software_settings_t *settings; 123 FF_TCO_settings_t *tco_settings; 124 125 FF_software_settings_t settings_localobj; 126 FF_TCO_settings_t tco_settings_localobj; 124 127 125 128 signed int num_channels; trunk/libffado/src/rme/rme_avdevice_settings.cpp
r1622 r1624 36 36 } 37 37 38 return settings .mic_phantom[channel] != 0;38 return settings->mic_phantom[channel] != 0; 39 39 } 40 40 … … 47 47 } 48 48 49 settings .mic_phantom[channel] = (status != 0);49 settings->mic_phantom[channel] = (status != 0); 50 50 set_hardware_params(); 51 51 … … 55 55 signed int 56 56 Device::getInputLevel(void) { 57 return settings .input_level;57 return settings->input_level; 58 58 } 59 59 … … 65 65 return -1; 66 66 } 67 settings .input_level = level;67 settings->input_level = level; 68 68 set_hardware_params(); 69 69 … … 73 73 signed int 74 74 Device::getOutputLevel(void) { 75 return settings .output_level;75 return settings->output_level; 76 76 } 77 77 … … 83 83 return -1; 84 84 } 85 settings .output_level = level;85 settings->output_level = level; 86 86 set_hardware_params(); 87 87 … … 91 91 signed int 92 92 Device::getPhonesLevel(void) { 93 return settings .phones_level;93 return settings->phones_level; 94 94 } 95 95 … … 101 101 return -1; 102 102 } 103 settings .phones_level = level;103 settings->phones_level = level; 104 104 set_hardware_params(); 105 105 … … 113 113 return -1; 114 114 } 115 return settings .ff400_input_pad[channel-3] != 0;115 return settings->ff400_input_pad[channel-3] != 0; 116 116 } 117 117 … … 122 122 return -1; 123 123 } 124 settings .ff400_input_pad[channel-3] = (status != 0);124 settings->ff400_input_pad[channel-3] = (status != 0); 125 125 set_hardware_params(); 126 126 return 0; … … 133 133 return -1; 134 134 } 135 return settings .ff400_instr_input[channel-3] != 0;135 return settings->ff400_instr_input[channel-3] != 0; 136 136 } 137 137 … … 142 142 return -1; 143 143 } 144 settings .ff400_instr_input[channel-3] = (status != 0);144 settings->ff400_instr_input[channel-3] = (status != 0); 145 145 set_hardware_params(); 146 146 return 0; … … 157 157 return -1; 158 158 } 159 return settings .amp_gains[index];159 return settings->amp_gains[index]; 160 160 } 161 161 … … 171 171 return -1; 172 172 } 173 settings .amp_gains[index] = val & 0xff;173 settings->amp_gains[index] = val & 0xff; 174 174 return set_hardware_ampgain(index, val); 175 175 }