#define FX_LSB_TRANSFER 0x01 /* transfer after DSP LSB byte written */ #define FX_MSB_TRANSFER 0x02 /* transfer after DSP MSB byte written */ #define FX_AUTO_INCR 0x04 /* auto-increment DSP address after transfer */
int
snd_wavefront_fx_detect (snd_wavefront_t *dev)
{ /* This is a crude check, but its the best one I have for now. Certainly on the Maui and the Tropez, wavefront_fx_idle() will report "never idle", which suggests that this test should work OK.
*/
if (inb (dev->fx_status) & 0x80) {
dev_err(dev->card->dev, "Hmm, probably a Maui or Tropez.\n"); return -1;
}
return 0;
}
int
snd_wavefront_fx_open (struct snd_hwdep *hw, struct file *file)
This code was developed using DOSEMU. The Turtle Beach SETUPSND utility was run with I/O tracing in DOSEMU enabled, and a reconstruction of the port I/O done, using the Yamaha faxback document as a guide to add more logic to the code. Its really pretty weird.
This is the approach of just dumping the whole I/O sequence as a series of port/value pairs and a simple loop that outputs it.
*/
int
snd_wavefront_fx_start (snd_wavefront_t *dev)
{ unsignedint i; int err; conststruct firmware *firmware = NULL;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.