|
@@ -3288,7 +3288,7 @@ static struct snd_kcontrol_new snd_hdsp_9632_controls[] = {
|
|
|
HDSP_DA_GAIN("DA Gain", 0),
|
|
|
HDSP_AD_GAIN("AD Gain", 0),
|
|
|
HDSP_PHONE_GAIN("Phones Gain", 0),
|
|
|
-HDSP_XLR_BREAKOUT_CABLE("XLR Breakout Cable", 0),
|
|
|
+HDSP_TOGGLE_SETTING("XLR Breakout Cable", HDSP_XLRBreakoutCable),
|
|
|
HDSP_DDS_OFFSET("DDS Sample Rate Offset", 0)
|
|
|
};
|
|
|
|
|
@@ -3330,10 +3330,10 @@ static struct snd_kcontrol_new snd_hdsp_controls[] = {
|
|
|
},
|
|
|
HDSP_MIXER("Mixer", 0),
|
|
|
HDSP_SPDIF_IN("IEC958 Input Connector", 0),
|
|
|
-HDSP_SPDIF_OUT("IEC958 Output also on ADAT1", 0),
|
|
|
-HDSP_SPDIF_PROFESSIONAL("IEC958 Professional Bit", 0),
|
|
|
-HDSP_SPDIF_EMPHASIS("IEC958 Emphasis Bit", 0),
|
|
|
-HDSP_SPDIF_NON_AUDIO("IEC958 Non-audio Bit", 0),
|
|
|
+HDSP_TOGGLE_SETTING("IEC958 Output also on ADAT1", HDSP_SPDIFOpticalOut),
|
|
|
+HDSP_TOGGLE_SETTING("IEC958 Professional Bit", HDSP_SPDIFProfessional),
|
|
|
+HDSP_TOGGLE_SETTING("IEC958 Emphasis Bit", HDSP_SPDIFEmphasis),
|
|
|
+HDSP_TOGGLE_SETTING("IEC958 Non-audio Bit", HDSP_SPDIFNonAudio),
|
|
|
/* 'Sample Clock Source' complies with the alsa control naming scheme */
|
|
|
HDSP_CLOCK_SOURCE("Sample Clock Source", 0),
|
|
|
{
|
|
@@ -3353,7 +3353,7 @@ HDSP_AUTOSYNC_SAMPLE_RATE("External Rate", 0),
|
|
|
HDSP_WC_SYNC_CHECK("Word Clock Lock Status", 0),
|
|
|
HDSP_SPDIF_SYNC_CHECK("SPDIF Lock Status", 0),
|
|
|
HDSP_ADATSYNC_SYNC_CHECK("ADAT Sync Lock Status", 0),
|
|
|
-HDSP_LINE_OUT("Line Out", 0),
|
|
|
+HDSP_TOGGLE_SETTING("Line Out", HDSP_LineOut),
|
|
|
HDSP_PRECISE_POINTER("Precise Pointer", 0),
|
|
|
HDSP_USE_MIDI_TASKLET("Use Midi Tasklet", 0),
|
|
|
};
|
|
@@ -3670,7 +3670,9 @@ static struct snd_kcontrol_new snd_hdsp_rpm_controls[] = {
|
|
|
HDSP_MIXER("Mixer", 0)
|
|
|
};
|
|
|
|
|
|
-static struct snd_kcontrol_new snd_hdsp_96xx_aeb = HDSP_AEB("Analog Extension Board", 0);
|
|
|
+static struct snd_kcontrol_new snd_hdsp_96xx_aeb =
|
|
|
+ HDSP_TOGGLE_SETTING("Analog Extension Board",
|
|
|
+ HDSP_AnalogExtensionBoard);
|
|
|
static struct snd_kcontrol_new snd_hdsp_adat_sync_check = HDSP_ADAT_SYNC_CHECK;
|
|
|
|
|
|
static int snd_hdsp_create_controls(struct snd_card *card, struct hdsp *hdsp)
|
|
@@ -4093,7 +4095,9 @@ snd_hdsp_proc_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer)
|
|
|
}
|
|
|
snd_iprintf(buffer, "Phones Gain : %s\n", tmp);
|
|
|
|
|
|
- snd_iprintf(buffer, "XLR Breakout Cable : %s\n", hdsp_xlr_breakout_cable(hdsp) ? "yes" : "no");
|
|
|
+ snd_iprintf(buffer, "XLR Breakout Cable : %s\n",
|
|
|
+ hdsp_toggle_setting(hdsp, HDSP_XLRBreakoutCable) ?
|
|
|
+ "yes" : "no");
|
|
|
|
|
|
if (hdsp->control_register & HDSP_AnalogExtensionBoard)
|
|
|
snd_iprintf(buffer, "AEB : on (ADAT1 internal)\n");
|
|
@@ -5124,29 +5128,38 @@ static int snd_hdsp_hwdep_ioctl(struct snd_hwdep *hw, struct file *file, unsigne
|
|
|
for (i = 0; i < ((hdsp->io_type != Multiface && hdsp->io_type != RPM && hdsp->io_type != H9632) ? 3 : 1); ++i)
|
|
|
info.adat_sync_check[i] = (unsigned char)hdsp_adat_sync_check(hdsp, i);
|
|
|
info.spdif_in = (unsigned char)hdsp_spdif_in(hdsp);
|
|
|
- info.spdif_out = (unsigned char)hdsp_spdif_out(hdsp);
|
|
|
- info.spdif_professional = (unsigned char)hdsp_spdif_professional(hdsp);
|
|
|
- info.spdif_emphasis = (unsigned char)hdsp_spdif_emphasis(hdsp);
|
|
|
- info.spdif_nonaudio = (unsigned char)hdsp_spdif_nonaudio(hdsp);
|
|
|
+ info.spdif_out = (unsigned char)hdsp_toggle_setting(hdsp,
|
|
|
+ HDSP_SPDIFOpticalOut);
|
|
|
+ info.spdif_professional = (unsigned char)
|
|
|
+ hdsp_toggle_setting(hdsp, HDSP_SPDIFProfessional);
|
|
|
+ info.spdif_emphasis = (unsigned char)
|
|
|
+ hdsp_toggle_setting(hdsp, HDSP_SPDIFEmphasis);
|
|
|
+ info.spdif_nonaudio = (unsigned char)
|
|
|
+ hdsp_toggle_setting(hdsp, HDSP_SPDIFNonAudio);
|
|
|
info.spdif_sample_rate = hdsp_spdif_sample_rate(hdsp);
|
|
|
info.system_sample_rate = hdsp->system_sample_rate;
|
|
|
info.autosync_sample_rate = hdsp_external_sample_rate(hdsp);
|
|
|
info.system_clock_mode = (unsigned char)hdsp_system_clock_mode(hdsp);
|
|
|
info.clock_source = (unsigned char)hdsp_clock_source(hdsp);
|
|
|
info.autosync_ref = (unsigned char)hdsp_autosync_ref(hdsp);
|
|
|
- info.line_out = (unsigned char)hdsp_line_out(hdsp);
|
|
|
+ info.line_out = (unsigned char)
|
|
|
+ hdsp_toggle_setting(hdsp, HDSP_LineOut);
|
|
|
if (hdsp->io_type == H9632) {
|
|
|
info.da_gain = (unsigned char)hdsp_da_gain(hdsp);
|
|
|
info.ad_gain = (unsigned char)hdsp_ad_gain(hdsp);
|
|
|
info.phone_gain = (unsigned char)hdsp_phone_gain(hdsp);
|
|
|
- info.xlr_breakout_cable = (unsigned char)hdsp_xlr_breakout_cable(hdsp);
|
|
|
+ info.xlr_breakout_cable =
|
|
|
+ (unsigned char)hdsp_toggle_setting(hdsp,
|
|
|
+ HDSP_XLRBreakoutCable);
|
|
|
|
|
|
} else if (hdsp->io_type == RPM) {
|
|
|
info.da_gain = (unsigned char) hdsp_rpm_input12(hdsp);
|
|
|
info.ad_gain = (unsigned char) hdsp_rpm_input34(hdsp);
|
|
|
}
|
|
|
if (hdsp->io_type == H9632 || hdsp->io_type == H9652)
|
|
|
- info.analog_extension_board = (unsigned char)hdsp_aeb(hdsp);
|
|
|
+ info.analog_extension_board =
|
|
|
+ (unsigned char)hdsp_toggle_setting(hdsp,
|
|
|
+ HDSP_AnalogExtensionBoard);
|
|
|
spin_unlock_irqrestore(&hdsp->lock, flags);
|
|
|
if (copy_to_user(argp, &info, sizeof(info)))
|
|
|
return -EFAULT;
|