1 /* 2 * Copyright (c) 2002-2008 LWJGL Project 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: 8 * 9 * * Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 12 * * Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * * Neither the name of 'LWJGL' nor the names of 17 * its contributors may be used to endorse or promote products derived 18 * from this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 package org.lwjgl.openal; 33 34 35 /** 36 * Simple utility class for checking AL/ALC errors 37 * 38 * @author cix_foo <cix_foo@users.sourceforge.net> 39 * @author Brian Matzon <brian@matzon.dk> 40 * @version $Revision$ 41 */ 42 43 public final class Util { 44 /** No c'tor */ Util()45 private Util() { 46 } 47 48 /** 49 * Checks for any ALC errors and throws an unchecked exception on errors 50 * @param device Device for which to check ALC errors 51 */ checkALCError(ALCdevice device)52 public static void checkALCError(ALCdevice device) { 53 int err = ALC10.alcGetError(device); 54 if (err != ALC10.ALC_NO_ERROR) 55 throw new OpenALException(ALC10.alcGetString(AL.getDevice(), err)); 56 } 57 58 /** 59 * Checks for any AL errors and throws an unchecked exception on errors 60 */ checkALError()61 public static void checkALError() { 62 int err = AL10.alGetError(); 63 if (err != AL10.AL_NO_ERROR) 64 throw new OpenALException(err); 65 } 66 67 /** 68 * Checks for a valid device 69 * @param device ALCdevice to check the validity of 70 */ checkALCValidDevice(ALCdevice device)71 public static void checkALCValidDevice(ALCdevice device) { 72 if(!device.isValid()) { 73 throw new OpenALException("Invalid device: " + device); 74 } 75 } 76 77 /** 78 * Checks for a valid context 79 * @param context ALCcontext to check the validity of 80 */ checkALCValidContext(ALCcontext context)81 public static void checkALCValidContext(ALCcontext context) { 82 if(!context.isValid()) { 83 throw new OpenALException("Invalid context: " + context); 84 } 85 } 86 } 87