/* Copyright    Massachusetts Institute of Technology    1986	*/
/*
 * Copyright 1993 by Digital Equipment Corporation, Maynard, Massachusetts.
 * 
 * Permission to use, copy, modify, distribute, and sell this software and its 
 * documentation for any purpose is hereby granted without fee, provided that 
 * the above copyright notice appear in all copies and that both that 
 * copyright notice and this permission notice appear in supporting 
 * documentation, and that the name of Digital not be used in advertising or 
 * publicity pertaining to distribution of the software without specific, 
 * written prior permission.  Digital makes no representations about the 
 * suitability of this software for any purpose.  It is provided "as is" 
 * without express or implied warranty.
 * 
 * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 
 * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 
 * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 
 * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 
 * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include "Alibint.h"

/* 
 * AFErrorHandler - This procedure sets the X non-fatal error handler
 * (_XErrorFunction) to be the specified routine.  If NULL is passed in
 * the original error handler is restored.
 */
 
int (*
  AFSetErrorHandler(register int (*handler)(AFAudioConn *, AFErrorEvent *))
     )(
#ifndef mips
AFAudioConn *, AFErrorEvent *
#endif
)
{
    int (*oldhandler)(AFAudioConn *, AFErrorEvent *) = _AErrorFunction;

    if (handler != NULL) {
	_AErrorFunction = handler;
    }
    else {
	_AErrorFunction = _ADefaultError;
    }

    return oldhandler;
}

/* 
 * XIOErrorHandler - This procedure sets the X fatal I/O error handler
 * (_XIOErrorFunction) to be the specified routine.  If NULL is passed in 
 * the original error handler is restored.
 */
 
int (*
    AFSetIOErrorHandler(register int (*handler)(AFAudioConn *))
    )(
#ifndef mips
AFAudioConn *
#endif
)
{
    int (*oldhandler)(AFAudioConn *) = _AIOErrorFunction;

    if (handler != NULL) {
	_AIOErrorFunction = handler;
    }
    else {
	_AIOErrorFunction = _ADefaultIOError;
    }

    return oldhandler;
}
