require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&SYS_DEV_PCI_ENVYVAR_H)) {
    eval 'sub SYS_DEV_PCI_ENVYVAR_H () {1;}' unless defined(&SYS_DEV_PCI_ENVYVAR_H);
    require 'sys/types.ph';
    require 'sys/device.ph';
    require 'dev/audio_if.ph';
    eval 'sub ENVY_MIX_CLASSIN () {0;}' unless defined(&ENVY_MIX_CLASSIN);
    eval 'sub ENVY_MIX_CLASSOUT () {1;}' unless defined(&ENVY_MIX_CLASSOUT);
    eval 'sub ENVY_MIX_CLASSMON () {2;}' unless defined(&ENVY_MIX_CLASSMON);
    eval 'sub ENVY_MIX_OUTSRC () {3;}' unless defined(&ENVY_MIX_OUTSRC);
    eval 'sub ENVY_MIX_MONITOR () {13;}' unless defined(&ENVY_MIX_MONITOR);
    eval 'sub ENVY_MIX_ILVL {
        my($nak) = @_;
	    eval q(33);
    }' unless defined(&ENVY_MIX_ILVL);
    eval 'sub ENVY_MIX_OLVL {
        my($nak) = @_;
	    eval q(( &ENVY_MIX_ILVL($nak) + 2* ($nak)));
    }' unless defined(&ENVY_MIX_OLVL);
    eval 'sub ENVY_MIX_OMUTE {
        my($nak) = @_;
	    eval q(( &ENVY_MIX_OLVL($nak) + 2* ($nak)));
    }' unless defined(&ENVY_MIX_OMUTE);
    eval 'sub ENVY_MIX_INVAL {
        my($nak) = @_;
	    eval q(( &ENVY_MIX_OMUTE($nak) + ($nak)));
    }' unless defined(&ENVY_MIX_INVAL);
    eval 'sub ENVY_MIX_OUTSRC_LINEIN () {0;}' unless defined(&ENVY_MIX_OUTSRC_LINEIN);
    eval 'sub ENVY_MIX_OUTSRC_SPDIN () {8;}' unless defined(&ENVY_MIX_OUTSRC_SPDIN);
    eval 'sub ENVY_MIX_OUTSRC_DMA () {10;}' unless defined(&ENVY_MIX_OUTSRC_DMA);
    eval 'sub ENVY_MIX_OUTSRC_MON () {11;}' unless defined(&ENVY_MIX_OUTSRC_MON);
}
1;
