OpenAL Info-App

Hi!
Did anybody wrote a small JOAL-Appliction which shows all Informations about the OpenAL implementation of the executing environment?
I have tried to but I must have forgotten something, because the results looked very strange to me.

That was my code:

import net.java.games.joal.*;
import net.java.games.joal.util.*;


public class OpenALInfo {

AL al;
ALC alc;
	
	public void initOpenAL() {
		try {
			al = ALFactory.getAL();
		    alc = ALFactory.getALC();
			alc.alcOpenDevice(null);
			ALut.alutInit();
		} catch (ALException exc){
			print("Fehler bei der AL-Initialisierung: "+exc);
		}
	}
	
	public void print(String str) {
		System.out.println(str);
	}
	
	public  void showALInfos() {
		print("OpenAL Version:             "+al.alGetString(AL.AL_VERSION));
		print("Renderer:                   "+al.alGetString(AL.AL_RENDERER));
		print("Vendor:                     "+al.alGetString(AL.AL_VENDOR));
		print("Available Extensions:       "+al.alGetString(AL.AL_EXTENSIONS));
		print("");
		
		String devSpecs = "";
		if (alc.alcGetDeviceSpecifiers() != null) {
			for (int i=0;i<alc.alcGetDeviceSpecifiers().length;i++) {
				devSpecs.concat(alc.alcGetDeviceSpecifiers()[i]);
			}
		} else devSpecs = "none";
		print("Available Devices:          "+devSpecs);
		
		print("ALC Extensions:             "+alc.alcGetString(alc.alcGetContextsDevice(alc.alcGetCurrentContext()),ALC.ALC_EXTENSIONS));
		
		String capDevSpecs = "";
		if (alc.alcGetCaptureDeviceSpecifiers() != null) {
			for (int i=0;i<alc.alcGetCaptureDeviceSpecifiers().length;i++) {
				capDevSpecs.concat(alc.alcGetCaptureDeviceSpecifiers()[i]);
			}
		} else capDevSpecs = "none";
		print("Available Capture Devices:  "+capDevSpecs	);
	}

	public static void main(String[] args) {
		OpenALInfo oali = new OpenALInfo();
		oali.initOpenAL();
		oali.showALInfos();
		System.exit(-1);
	}

}

My results were:
Version: OpenAL 1.2.1 (I thought 1.1 is the latest ?)
Renderer: Software (makes sense)
Vendor: Any (strange but ok)
Extensions : (no result…)

Available Devices: none
ALC Extensions : null
Available Capture Devices: none

It looks like the AL Context hasn’t been created right…

Is there a problem with the code, my OpenAL-implementation or my hardware?

Greetings and thanks
Chris

What shows-up is dependant on what you’ve set as your default audio device, plus what your OpenAL driver is like.
Like you, I did write a similar sort of program a while ago. I’ve attached it in-case you wanna take a look, but it seems to do the same job as yours. Adjusting it to print-out in the same order as yours, here’s what I get:

OpenAL version: OpenAL version 1.1
Vendor: Creative Labs Inc.
Device name: SB X-Fi Audio [DCE0]
AL extensions:

  • EAX
  • EAX1.0
  • EAX2.0
  • EAX3.0

Available output devices:

  • Generic Hardware
  • Generic Software
  • SB X-Fi Audio [DCE0]
    Available capture devices:
  • SB X-Fi Audio [DCE0]
    ALC extensions:
  • None

If anything, I’m kinda suspicious of the ‘None’ under ALC extensions, because I know it supports EFX (if I do alcIsExtensionPresent(“ALC_EXT_EFX”) it returns true).

As for your results, even though OpenAL 1.1 is the latest, your driver could return any old thing. I think Mac’s have what they call OpenAL 1.2, but I don’t know what makes it different.
Curious: what kind of sound hardware and OS do you have?