1*10913Sgdamore@opensolaris.org// 2*10913Sgdamore@opensolaris.org// Copyright 2009 Sun Microsystems, Inc. All rights reserved. 3*10913Sgdamore@opensolaris.org// Use is subject to license terms. 4*10913Sgdamore@opensolaris.org// 5*10913Sgdamore@opensolaris.org// Copyright (C) 4Front Technologies 1996-2008. 6*10913Sgdamore@opensolaris.org// 7*10913Sgdamore@opensolaris.org// CDDL HEADER START 8*10913Sgdamore@opensolaris.org// 9*10913Sgdamore@opensolaris.org// The contents of this file are subject to the terms of the 10*10913Sgdamore@opensolaris.org// Common Development and Distribution License (the "License"). 11*10913Sgdamore@opensolaris.org// You may not use this file except in compliance with the License. 12*10913Sgdamore@opensolaris.org// 13*10913Sgdamore@opensolaris.org// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 14*10913Sgdamore@opensolaris.org// or http://www.opensolaris.org/os/licensing. 15*10913Sgdamore@opensolaris.org// See the License for the specific language governing permissions 16*10913Sgdamore@opensolaris.org// and limitations under the License. 17*10913Sgdamore@opensolaris.org// 18*10913Sgdamore@opensolaris.org// When distributing Covered Code, include this CDDL HEADER in each 19*10913Sgdamore@opensolaris.org// file and include the License file at usr/src/OPENSOLARIS.LICENSE. 20*10913Sgdamore@opensolaris.org// If applicable, add the following below this CDDL HEADER, with the 21*10913Sgdamore@opensolaris.org// fields enclosed by brackets "[]" replaced with your own identifying 22*10913Sgdamore@opensolaris.org// information: Portions Copyright [yyyy] [name of copyright owner] 23*10913Sgdamore@opensolaris.org// 24*10913Sgdamore@opensolaris.org// CDDL HEADER END 25*10913Sgdamore@opensolaris.org 26*10913Sgdamore@opensolaris.org // Constants for EMU 10k2 (SB Audigy) 27*10913Sgdamore@opensolaris.org 28*10913Sgdamore@opensolaris.org // Inputs 29*10913Sgdamore@opensolaris.org .input IN_AC97_L 0 30*10913Sgdamore@opensolaris.org .input IN_AC97_R 1 31*10913Sgdamore@opensolaris.org .input IN_DIGCD_L 2 32*10913Sgdamore@opensolaris.org .input IN_DIGCD_R 3 33*10913Sgdamore@opensolaris.org .input IN_SPDIF1_L 4 // TOSLink 34*10913Sgdamore@opensolaris.org .input IN_SPDIF1_R 5 35*10913Sgdamore@opensolaris.org .input IN_MYSTERY_L 6 36*10913Sgdamore@opensolaris.org .input IN_MYSTERY_R 7 37*10913Sgdamore@opensolaris.org .input IN_LINE2_L 8 // LiveDrive 38*10913Sgdamore@opensolaris.org .input IN_LINE2_R 9 39*10913Sgdamore@opensolaris.org .input IN_SPDIF2_L 10 // Coaxial SPDIF 40*10913Sgdamore@opensolaris.org .input IN_SPDIF2_R 11 41*10913Sgdamore@opensolaris.org .input IN_AUX2_L 12 // LiveDrive 42*10913Sgdamore@opensolaris.org .input IN_AUX2_R 13 43*10913Sgdamore@opensolaris.org 44*10913Sgdamore@opensolaris.org // Outputs 45*10913Sgdamore@opensolaris.org .output OUT_SPDIF_L 0 46*10913Sgdamore@opensolaris.org .output OUT_SPDIF_R 1 47*10913Sgdamore@opensolaris.org .output OUT_DCENTER 2 // Digital Center channel 48*10913Sgdamore@opensolaris.org .output OUT_DLFE 3 // Digital LFE 49*10913Sgdamore@opensolaris.org .output OUT_HEADPH_L 4 // LiveDrive headphone out 50*10913Sgdamore@opensolaris.org .output OUT_HEADPH_R 5 51*10913Sgdamore@opensolaris.org .output OUT_DSURR_L 6 // Surround output (digital) 52*10913Sgdamore@opensolaris.org .output OUT_DSURR_R 7 53*10913Sgdamore@opensolaris.org .output OUT_FRONT_L 8 54*10913Sgdamore@opensolaris.org .output OUT_FRONT_R 9 55*10913Sgdamore@opensolaris.org .output OUT_ACENTER 10 // Analog center channel 56*10913Sgdamore@opensolaris.org .output OUT_ALFE 11 // Analog LFE output 57*10913Sgdamore@opensolaris.org .output OUT_SIDE_L 12 // Side surround 58*10913Sgdamore@opensolaris.org .output OUT_SIDE_R 13 59*10913Sgdamore@opensolaris.org .output OUT_SURR_L 14 // Surround output 60*10913Sgdamore@opensolaris.org .output OUT_SURR_R 15 61*10913Sgdamore@opensolaris.org .output OUT_AC97_L 16 // Send to the AC97 front channel 62*10913Sgdamore@opensolaris.org .output OUT_AC97_R 17 63*10913Sgdamore@opensolaris.org .output OUT_ADC_L 22 // Send to the ADC recording channel 64*10913Sgdamore@opensolaris.org .output OUT_ADC_R 23 65*10913Sgdamore@opensolaris.org .output OUT_MICREC_L 24 // Send to the mic recording buffer 66*10913Sgdamore@opensolaris.org .output OUT_MICREC_R 25 // ??????? (maybe not in use at all) 67*10913Sgdamore@opensolaris.org 68*10913Sgdamore@opensolaris.org // Temporaries 69*10913Sgdamore@opensolaris.org .gpr PCM_FRONT_L 70*10913Sgdamore@opensolaris.org .gpr PCM_FRONT_R 71*10913Sgdamore@opensolaris.org .gpr PCM_SURR_L 72*10913Sgdamore@opensolaris.org .gpr PCM_SURR_R 73*10913Sgdamore@opensolaris.org .gpr PCM_SIDE_L 74*10913Sgdamore@opensolaris.org .gpr PCM_SIDE_R 75*10913Sgdamore@opensolaris.org .gpr PCM_CEN 76*10913Sgdamore@opensolaris.org .gpr PCM_LFE 77*10913Sgdamore@opensolaris.org .gpr PCM_REC_L 78*10913Sgdamore@opensolaris.org .gpr PCM_REC_R 79*10913Sgdamore@opensolaris.org .gpr SPDIF_DELAY 80*10913Sgdamore@opensolaris.org 81*10913Sgdamore@opensolaris.org // Code 82*10913Sgdamore@opensolaris.org 83*10913Sgdamore@opensolaris.org // Load up the PCM inputs. 84*10913Sgdamore@opensolaris.org // We apply the PCM volume at the same time. 85*10913Sgdamore@opensolaris.org MACS(PCM_FRONT_L, 0, FX_FRONT_L, VOL_PCM) 86*10913Sgdamore@opensolaris.org MACS(PCM_FRONT_R, 0, FX_FRONT_R, VOL_PCM) 87*10913Sgdamore@opensolaris.org MACS(PCM_SURR_L, 0, FX_SURR_L, VOL_PCM) 88*10913Sgdamore@opensolaris.org MACS(PCM_SURR_R, 0, FX_SURR_R, VOL_PCM) 89*10913Sgdamore@opensolaris.org MACS(PCM_SIDE_L, 0, FX_SIDE_L, VOL_PCM) 90*10913Sgdamore@opensolaris.org MACS(PCM_SIDE_R, 0, FX_SIDE_R, VOL_PCM) 91*10913Sgdamore@opensolaris.org MACS(PCM_CEN, 0, FX_CEN, VOL_PCM) 92*10913Sgdamore@opensolaris.org MACS(PCM_LFE, 0, FX_LFE, VOL_PCM) 93*10913Sgdamore@opensolaris.org 94*10913Sgdamore@opensolaris.org // Mix any monitor sources into the front PCM 95*10913Sgdamore@opensolaris.org // AC'97 (includes Line-In, analog CD, and Mic) 96*10913Sgdamore@opensolaris.org MACS(PCM_FRONT_L, PCM_FRONT_L, IN_AC97_L, MON_AC97_L) 97*10913Sgdamore@opensolaris.org MACS(PCM_FRONT_R, PCM_FRONT_R, IN_AC97_R, MON_AC97_R) 98*10913Sgdamore@opensolaris.org // DIGCD 99*10913Sgdamore@opensolaris.org MACS(PCM_FRONT_L, PCM_FRONT_L, IN_DIGCD_L, MON_DIGCD_L) 100*10913Sgdamore@opensolaris.org MACS(PCM_FRONT_R, PCM_FRONT_R, IN_DIGCD_R, MON_DIGCD_R) 101*10913Sgdamore@opensolaris.org // SPDIF1 102*10913Sgdamore@opensolaris.org MACS(PCM_FRONT_L, PCM_FRONT_L, IN_SPDIF1_L, MON_SPDIF1_L) 103*10913Sgdamore@opensolaris.org MACS(PCM_FRONT_R, PCM_FRONT_R, IN_SPDIF1_R, MON_SPDIF1_R) 104*10913Sgdamore@opensolaris.org // SPDIF2 105*10913Sgdamore@opensolaris.org MACS(PCM_FRONT_L, PCM_FRONT_L, IN_SPDIF2_L, MON_SPDIF2_L) 106*10913Sgdamore@opensolaris.org MACS(PCM_FRONT_R, PCM_FRONT_R, IN_SPDIF2_R, MON_SPDIF2_R) 107*10913Sgdamore@opensolaris.org // Line2/Mic2 (Live! Drive) 108*10913Sgdamore@opensolaris.org MACS(PCM_FRONT_L, PCM_FRONT_L, IN_LINE2_L, MON_LINE2_L) 109*10913Sgdamore@opensolaris.org MACS(PCM_FRONT_R, PCM_FRONT_R, IN_LINE2_R, MON_LINE2_R) 110*10913Sgdamore@opensolaris.org // Aux2 (Live! Drive) 111*10913Sgdamore@opensolaris.org MACS(PCM_FRONT_L, PCM_FRONT_L, IN_AUX2_L, MON_AUX2_L) 112*10913Sgdamore@opensolaris.org MACS(PCM_FRONT_R, PCM_FRONT_R, IN_AUX2_R, MON_AUX2_R) 113*10913Sgdamore@opensolaris.org 114*10913Sgdamore@opensolaris.org // Outputs 115*10913Sgdamore@opensolaris.org MACS(OUT_FRONT_L, 0, PCM_FRONT_L, VOL_FRONT_L) 116*10913Sgdamore@opensolaris.org MACS(OUT_FRONT_R, 0, PCM_FRONT_R, VOL_FRONT_R) 117*10913Sgdamore@opensolaris.org MACS(OUT_SPDIF_L, 0, PCM_FRONT_L, VOL_FRONT_L) 118*10913Sgdamore@opensolaris.org // delay SPDIF right channel one sample to fix a bug 119*10913Sgdamore@opensolaris.org ACC3(OUT_SPDIF_R, 0, 0, SPDIF_DELAY) 120*10913Sgdamore@opensolaris.org MACS(SPDIF_DELAY, 0, PCM_FRONT_R, VOL_FRONT_R) 121*10913Sgdamore@opensolaris.org MACS(OUT_HEADPH_L, 0, PCM_FRONT_L, VOL_HEADPH_L) 122*10913Sgdamore@opensolaris.org MACS(OUT_HEADPH_R, 0, PCM_FRONT_R, VOL_HEADPH_R) 123*10913Sgdamore@opensolaris.org MACS(OUT_SURR_L, 0, PCM_SURR_L, VOL_SURR_L) 124*10913Sgdamore@opensolaris.org MACS(OUT_SURR_R, 0, PCM_SURR_R, VOL_SURR_R) 125*10913Sgdamore@opensolaris.org MACS(OUT_DSURR_L, 0, PCM_SURR_L, VOL_SURR_L) 126*10913Sgdamore@opensolaris.org MACS(OUT_DSURR_R, 0, PCM_SURR_R, VOL_SURR_R) 127*10913Sgdamore@opensolaris.org MACS(OUT_SIDE_L, 0, PCM_SIDE_L, VOL_SIDE_L) 128*10913Sgdamore@opensolaris.org MACS(OUT_SIDE_R, 0, PCM_SIDE_R, VOL_SIDE_R) 129*10913Sgdamore@opensolaris.org MACS(OUT_ACENTER, 0, PCM_CEN, VOL_CEN) 130*10913Sgdamore@opensolaris.org MACS(OUT_DCENTER, 0, PCM_CEN, VOL_CEN) 131*10913Sgdamore@opensolaris.org MACS(OUT_ALFE, 0, PCM_LFE, VOL_LFE) 132*10913Sgdamore@opensolaris.org MACS(OUT_DLFE, 0, PCM_LFE, VOL_LFE) 133*10913Sgdamore@opensolaris.org 134*10913Sgdamore@opensolaris.org // Inputs (Recording) -- the source variables are treated as 135*10913Sgdamore@opensolaris.org // simple boolean enables. 136*10913Sgdamore@opensolaris.org MACINTS(PCM_REC_L, PCM_REC_R, IN_AC97_L, REC_AC97) 137*10913Sgdamore@opensolaris.org MACINTS(PCM_REC_R, PCM_REC_L, IN_AC97_R, REC_AC97) 138*10913Sgdamore@opensolaris.org 139*10913Sgdamore@opensolaris.org MACINTS(PCM_REC_L, PCM_REC_L, IN_DIGCD_L, REC_DIGCD) 140*10913Sgdamore@opensolaris.org MACINTS(PCM_REC_R, PCM_REC_R, IN_DIGCD_R, REC_DIGCD) 141*10913Sgdamore@opensolaris.org 142*10913Sgdamore@opensolaris.org MACINTS(PCM_REC_L, PCM_REC_L, IN_SPDIF1_L, REC_SPDIF1) 143*10913Sgdamore@opensolaris.org MACINTS(PCM_REC_R, PCM_REC_R, IN_SPDIF1_R, REC_SPDIF1) 144*10913Sgdamore@opensolaris.org 145*10913Sgdamore@opensolaris.org MACINTS(PCM_REC_L, PCM_REC_L, IN_SPDIF2_L, REC_SPDIF2) 146*10913Sgdamore@opensolaris.org MACINTS(PCM_REC_R, PCM_REC_R, IN_SPDIF2_R, REC_SPDIF2) 147*10913Sgdamore@opensolaris.org 148*10913Sgdamore@opensolaris.org MACINTS(PCM_REC_L, PCM_REC_L, IN_AUX2_L, REC_AUX2) 149*10913Sgdamore@opensolaris.org MACINTS(PCM_REC_R, PCM_REC_R, IN_AUX2_R, REC_AUX2) 150*10913Sgdamore@opensolaris.org 151*10913Sgdamore@opensolaris.org MACINTS(PCM_REC_L, PCM_REC_L, IN_LINE2_L, REC_LINE2) 152*10913Sgdamore@opensolaris.org MACINTS(PCM_REC_R, PCM_REC_R, IN_LINE2_R, REC_LINE2) 153*10913Sgdamore@opensolaris.org 154*10913Sgdamore@opensolaris.org MACINTS(PCM_REC_L, PCM_REC_L, PCM_FRONT_L, REC_PCM) 155*10913Sgdamore@opensolaris.org MACINTS(PCM_REC_R, PCM_REC_R, PCM_FRONT_R, REC_PCM) 156*10913Sgdamore@opensolaris.org 157*10913Sgdamore@opensolaris.org // Apply master record gain 158*10913Sgdamore@opensolaris.org MACS(OUT_ADC_L, 0, PCM_REC_L, VOL_REC_L) 159*10913Sgdamore@opensolaris.org MACS(OUT_ADC_R, 0, PCM_REC_R, VOL_REC_R) 160