Implements an alternative to PortAudio on Windows which uses Windows Audio Session API (WASAPI) and related Core Audio APIs such as Multimedia Device (MMDevice) API.

cusax-fix
Lyubomir Marinov 13 years ago
parent f7ab3fb813
commit 97cba28a43

Binary file not shown.

@ -139,7 +139,8 @@ else if(oldDevices != null)
if(capturePropertyChangeEvent != null)
{
CaptureDeviceInfo cdi
= audioSystem.getDevice(AudioSystem.CAPTURE_INDEX);
= audioSystem.getSelectedDevice(
AudioSystem.DataFlow.CAPTURE);
if ((cdi != null)
&& !cdi.equals(
@ -158,7 +159,8 @@ else if(oldDevices != null)
if(playbackPropertyChangeEvent != null)
{
CaptureDeviceInfo cdi
= audioSystem.getDevice(AudioSystem.PLAYBACK_INDEX);
= audioSystem.getSelectedDevice(
AudioSystem.DataFlow.PLAYBACK);
if ((cdi != null)
&& !cdi.equals(
@ -177,7 +179,8 @@ else if(oldDevices != null)
if(notifyPropertyChangeEvent != null)
{
CaptureDeviceInfo cdi
= audioSystem.getDevice(AudioSystem.NOTIFY_INDEX);
= audioSystem.getSelectedDevice(
AudioSystem.DataFlow.NOTIFY);
if ((cdi != null)
&& !cdi.equals(

@ -174,19 +174,19 @@ private CaptureDevice[] getDevices()
audioSystem = deviceConfiguration.getAudioSystem();
infos = (audioSystem == null)
? null
: audioSystem.getDevices(AudioSystem.CAPTURE_INDEX);
: audioSystem.getDevices(AudioSystem.DataFlow.CAPTURE);
break;
case AUDIO_NOTIFY:
audioSystem = deviceConfiguration.getAudioSystem();
infos = (audioSystem == null)
? null
: audioSystem.getDevices(AudioSystem.NOTIFY_INDEX);
: audioSystem.getDevices(AudioSystem.DataFlow.NOTIFY);
break;
case AUDIO_PLAYBACK:
audioSystem = deviceConfiguration.getAudioSystem();
infos = (audioSystem == null)
? null
: audioSystem.getDevices(AudioSystem.PLAYBACK_INDEX);
: audioSystem.getDevices(AudioSystem.DataFlow.PLAYBACK);
break;
case VIDEO:
infos = deviceConfiguration.getAvailableVideoCaptureDevices(
@ -232,19 +232,19 @@ private CaptureDevice getSelectedDevice()
audioSystem = deviceConfiguration.getAudioSystem();
info = (audioSystem == null)
? null
: audioSystem.getDevice(AudioSystem.CAPTURE_INDEX);
: audioSystem.getSelectedDevice(AudioSystem.DataFlow.CAPTURE);
break;
case AUDIO_NOTIFY:
audioSystem = deviceConfiguration.getAudioSystem();
info = (audioSystem == null)
? null
: audioSystem.getDevice(AudioSystem.NOTIFY_INDEX);
: audioSystem.getSelectedDevice(AudioSystem.DataFlow.NOTIFY);
break;
case AUDIO_PLAYBACK:
audioSystem = deviceConfiguration.getAudioSystem();
info = (audioSystem == null)
? null
: audioSystem.getDevice(AudioSystem.PLAYBACK_INDEX);
: audioSystem.getSelectedDevice(AudioSystem.DataFlow.PLAYBACK);
break;
case VIDEO:
info = deviceConfiguration.getVideoCaptureDevice(MediaUseCase.ANY);
@ -341,8 +341,8 @@ private void setSelectedDevice(CaptureDevice device)
if (audioSystem != null)
{
audioSystem.setDevice(
AudioSystem.CAPTURE_INDEX,
((ExtendedCaptureDeviceInfo) device.info),
AudioSystem.DataFlow.CAPTURE,
((CaptureDeviceInfo2) device.info),
true);
}
break;
@ -351,8 +351,8 @@ private void setSelectedDevice(CaptureDevice device)
if (audioSystem != null)
{
audioSystem.setDevice(
AudioSystem.NOTIFY_INDEX,
((ExtendedCaptureDeviceInfo) device.info),
AudioSystem.DataFlow.NOTIFY,
((CaptureDeviceInfo2) device.info),
true);
}
break;
@ -361,8 +361,8 @@ private void setSelectedDevice(CaptureDevice device)
if (audioSystem != null)
{
audioSystem.setDevice(
AudioSystem.PLAYBACK_INDEX,
((ExtendedCaptureDeviceInfo) device.info),
AudioSystem.DataFlow.PLAYBACK,
((CaptureDeviceInfo2) device.info),
true);
}
break;
@ -449,10 +449,10 @@ public String toString()
else
{
s = info.getName();
if(info instanceof ExtendedCaptureDeviceInfo)
if(info instanceof CaptureDeviceInfo2)
{
String transportType
= ((ExtendedCaptureDeviceInfo) info).getTransportType();
= ((CaptureDeviceInfo2) info).getTransportType();
if(transportType != null)
s += " (" + transportType + ")";

@ -206,7 +206,8 @@ public void actionPerformed(ActionEvent ev)
{
cdi
= soundLevelIndicator.isShowing()
? audioSystem.getDevice(AudioSystem.CAPTURE_INDEX)
? audioSystem.getSelectedDevice(
AudioSystem.DataFlow.CAPTURE)
: null;
}
else

Loading…
Cancel
Save