/* (C) 2000 Guenter Geiger with copy/pastes from the driver of Winfried Ritsch */ #ifndef AFMT_S32_BLOCKED #define AFMT_S32_BLOCKED 0x0000400 #endif #ifndef AFMT_S16_BLOCKED #define AFMT_S16_BLOCKED 0x0000800 #endif typedef struct rme_status { unsigned int irq:1; /* high or low */ unsigned int lockmask:3; /* ADAT1, ADAT2, ADAT3 */ unsigned int sr48:1; /* current sample rate */ unsigned int wclock:1; /* wordclock used ? */ unsigned int bufpoint:10; unsigned int syncmask:3; /* ADAT1, ADAT2, ADAT3 */ unsigned int doublespeed:1; unsigned int tc_busy:1; unsigned int tc_out:1; unsigned int crystalrate:3; unsigned int spdif_error:1; unsigned int bufid:1; unsigned int tc_valid:1; } rme_status_t; typedef struct rme_control { unsigned int start:1; unsigned int latency:3; unsigned int master:1; unsigned int ie:1; unsigned int sr48:1; unsigned int spare:1; unsigned int doublespeed:1; unsigned int pro:1; unsigned int emphasis:1; unsigned int dolby:1; unsigned int opt_out:1; unsigned int wordclock:1; unsigned int spdif_in:2; unsigned int sync_ref:2; } rme_ctrl_t; typedef struct _rme_mixer { int i_offset; int o_offset; int devnr; int spare[8]; } rme_mixer;