Changeset 665
- Timestamp:
- 10/21/07 05:14:14 (13 years ago)
- Files:
-
- trunk/libffado/src/fireworks/efc/efc_cmd.cpp (modified) (1 diff)
- trunk/libffado/src/fireworks/efc/efc_cmd.h (modified) (2 diffs)
- trunk/libffado/src/fireworks/efc/efc_cmds_hardware.h (modified) (2 diffs)
- trunk/libffado/src/fireworks/efc/efc_cmds_ioconfig.cpp (added)
- trunk/libffado/src/fireworks/efc/efc_cmds_ioconfig.h (added)
- trunk/libffado/src/fireworks/efc/efc_cmds_mixer.cpp (modified) (1 diff)
- trunk/libffado/src/fireworks/efc/efc_cmds_mixer.h (modified) (1 diff)
- trunk/libffado/src/fireworks/fireworks_device.cpp (modified) (3 diffs)
- trunk/libffado/src/SConscript (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/src/fireworks/efc/efc_cmd.cpp
r663 r665 36 36 // static int to keep track of the sequence index 37 37 uint32_t EfcCmd::m_seqnum = 1; 38 39 // some generic string generation functions 40 const char *eMixerTargetToString(const enum eMixerTarget target) { 41 switch (target) { 42 case eMT_PhysicalOutputMix: 43 return "PhysicalOutputMix"; 44 case eMT_PhysicalInputMix: 45 return "PhysicalInputMix"; 46 case eMT_PlaybackMix: 47 return "PlaybackMix"; 48 case eMT_RecordMix: 49 return "RecordMix"; 50 default: 51 return "invalid"; 52 } 53 } 54 55 const char *eMixerCommandToString(const enum eMixerCommand command) { 56 switch (command) { 57 case eMC_Gain: 58 return "Gain"; 59 case eMC_Solo: 60 return "Solo"; 61 case eMC_Mute: 62 return "Mute"; 63 case eMC_Pan: 64 return "Pan"; 65 case eMC_Nominal: 66 return "Nominal"; 67 default: 68 return "invalid"; 69 } 70 } 71 72 const char *eIOConfigRegisterToString(const enum eIOConfigRegister reg) { 73 switch (reg) { 74 case eCR_Mirror: 75 return "Mirror"; 76 case eCR_DigitalMode: 77 return "DigitalMode"; 78 case eCR_Phantom: 79 return "Phantom"; 80 default: 81 return "invalid"; 82 } 83 } 84 85 // the real deal 38 86 39 87 EfcCmd::EfcCmd(uint32_t cat, uint32_t cmd) trunk/libffado/src/fireworks/efc/efc_cmd.h
r663 r665 75 75 #define EFC_CMD_MIXER_GET_NOMINAL 9 76 76 77 // Commands for the EFC_CAT_IO_CONFIG category 78 #define EFC_CMD_IO_CONFIG_SET_MIRROR 0 79 #define EFC_CMD_IO_CONFIG_GET_MIRROR 1 80 #define EFC_CMD_IO_CONFIG_SET_DIGITAL_MODE 2 81 #define EFC_CMD_IO_CONFIG_GET_DIGITAL_MODE 3 82 #define EFC_CMD_IO_CONFIG_SET_PHANTOM 4 83 #define EFC_CMD_IO_CONFIG_GET_PHANTOM 5 84 #define EFC_CMD_IO_CONFIG_SET_ISOC_MAP 6 85 #define EFC_CMD_IO_CONFIG_GET_ISOC_MAP 7 86 87 77 88 // size of the header 78 89 #define EFC_HEADER_LENGTH_QUADLETS ((sizeof(uint32_t) + sizeof(struct EfcCmd::efc_header))/4) … … 125 136 126 137 namespace FireWorks { 138 139 enum eMixerTarget { 140 eMT_PhysicalOutputMix, 141 eMT_PhysicalInputMix, 142 eMT_PlaybackMix, 143 eMT_RecordMix, 144 }; 145 enum eMixerCommand { 146 eMC_Gain, 147 eMC_Solo, 148 eMC_Mute, 149 eMC_Pan, 150 eMC_Nominal, 151 }; 152 enum eCmdType { 153 eCT_Get, 154 eCT_Set, 155 }; 156 157 enum eIOConfigRegister { 158 eCR_Mirror, 159 eCR_DigitalMode, 160 eCR_Phantom, 161 }; 162 163 const char *eMixerTargetToString(const enum eMixerTarget target); 164 const char *eMixerCommandToString(const enum eMixerCommand command); 165 const char *eIOConfigRegisterToString(const enum eIOConfigRegister reg); 127 166 128 167 class EfcCmd trunk/libffado/src/fireworks/efc/efc_cmds_hardware.h
r639 r665 41 41 } caps_phys_group; 42 42 43 44 43 public: 45 44 EfcHardwareInfoCmd(); … … 53 52 54 53 virtual void showEfcCmd(); 54 55 bool hasSoftwarePhantom() 56 {return EFC_CMD_HW_CHECK_FLAG(m_flags, EFC_CMD_HW_HAS_PHANTOM);}; 57 bool hasDSP() 58 {return EFC_CMD_HW_CHECK_FLAG(m_flags, EFC_CMD_HW_HAS_DSP);}; 59 bool hasFPGA() 60 {return EFC_CMD_HW_CHECK_FLAG(m_flags, EFC_CMD_HW_HAS_FPGA);}; 61 bool hasSpdifCoax() 62 {return EFC_CMD_HW_CHECK_FLAG(m_flags, EFC_CMD_HW_SPDIF_COAX_SUPPORTED);}; 63 bool hasSpdifAESEBUXLR() 64 {return EFC_CMD_HW_CHECK_FLAG(m_flags, EFC_CMD_HW_SPDIF_AESEBUXLR_SUPPORTED);}; 65 bool hasMirroring() 66 {return EFC_CMD_HW_CHECK_FLAG(m_flags, EFC_CMD_HW_MIRRORING_SUPPORTED);}; 67 bool hasDynAddr() 68 {return EFC_CMD_HW_CHECK_FLAG(m_flags, EFC_CMD_HW_DYNADDR_SUPPORTED);}; 55 69 56 70 uint32_t m_flags; trunk/libffado/src/fireworks/efc/efc_cmds_mixer.cpp
r664 r665 31 31 32 32 namespace FireWorks { 33 34 const char *eMixerTargetToString(const enum eMixerTarget target) {35 switch (target) {36 case eMT_PhysicalOutputMix:37 return "eMT_PhysicalOutputMix";38 case eMT_PhysicalInputMix:39 return "eMT_PhysicalInputMix";40 case eMT_PlaybackMix:41 return "eMT_PlaybackMix";42 case eMT_RecordMix:43 return "eMT_RecordMix";44 default:45 return "invalid";46 }47 }48 49 const char *eMixerCommandToString(const enum eMixerCommand command) {50 switch (command) {51 case eMC_Gain:52 return "eMC_Gain";53 case eMC_Solo:54 return "eMC_Solo";55 case eMC_Mute:56 return "eMC_Mute";57 case eMC_Pan:58 return "eMC_Pan";59 case eMC_Nominal:60 return "eMC_Nominal";61 default:62 return "invalid";63 }64 }65 33 66 34 EfcGenericMixerCmd::EfcGenericMixerCmd(enum eMixerTarget target, trunk/libffado/src/fireworks/efc/efc_cmds_mixer.h
r664 r665 28 28 29 29 namespace FireWorks { 30 31 enum eMixerTarget {32 eMT_PhysicalOutputMix,33 eMT_PhysicalInputMix,34 eMT_PlaybackMix,35 eMT_RecordMix,36 };37 enum eMixerCommand {38 eMC_Gain,39 eMC_Solo,40 eMC_Mute,41 eMC_Pan,42 eMC_Nominal,43 };44 enum eCmdType {45 eCT_Get,46 eCT_Set,47 };48 30 49 31 class EfcGenericMixerCmd : public EfcCmd trunk/libffado/src/fireworks/fireworks_device.cpp
r664 r665 218 218 219 219 // Playback mix controls 220 for ( int ch=0;ch<m_HwInfo.m_nb_1394_playback_channels;ch++) {220 for (unsigned int ch=0;ch<m_HwInfo.m_nb_1394_playback_channels;ch++) { 221 221 std::ostringstream node_name; 222 222 node_name << "PC" << ch; … … 229 229 230 230 // Physical output mix controls 231 for ( int ch=0;ch<m_HwInfo.m_nb_phys_audio_out;ch++) {231 for (unsigned int ch=0;ch<m_HwInfo.m_nb_phys_audio_out;ch++) { 232 232 std::ostringstream node_name; 233 233 node_name << "OUT" << ch; … … 241 241 } 242 242 243 // check for IO config controls and add them if necessary 244 if(m_HwInfo.hasMirroring()) { 245 result &= m_MixerContainer->addElement( 246 new IOConfigControl(*this, eCR_Mirror, "ChannelMirror")); 247 } 248 if(m_HwInfo.hasSoftwarePhantom()) { 249 result &= m_MixerContainer->addElement( 250 new IOConfigControl(*this, eCR_Phantom, "PhantomPower")); 251 } 252 243 253 if (!result) { 244 254 debugWarning("One or more control elements could not be created."); trunk/libffado/src/SConscript
r664 r665 115 115 fireworks/efc/efc_cmds_mixer.cpp \ 116 116 fireworks/efc/efc_cmds_monitor.cpp \ 117 fireworks/efc/efc_cmds_ioconfig.cpp \ 117 118 fireworks/audiofire/audiofire_device.cpp \ 118 119 ' )