From 273cf6adb7f1902e5cdb2dfc8861b78cbeee4bd1 Mon Sep 17 00:00:00 2001
From: Vincent Lucas <chenzo@jitsi.org>
Date: Wed, 5 Dec 2012 19:05:15 +0000
Subject: [PATCH] Work in progress using Windows CoreAudio API to set the input
 device volume (hardware microphone sensibility).

---
 lib/native/windows-64/jnwincoreaudio.dll      | Bin 0 -> 260639 bytes
 src/native/build.xml                          |  37 +-
 ..._impl_neomedia_coreaudio_CoreAudioDevice.c |  12 +-
 ..._impl_neomedia_coreaudio_CoreAudioDevice.h |  26 +-
 src/native/macosx/coreaudio/lib/device.c      |   8 +-
 ...pl_neomedia_wincoreaudio_CoreAudioDevice.c | 125 +++
 ...pl_neomedia_wincoreaudio_CoreAudioDevice.h |  69 ++
 src/native/windows/coreaudio/lib/device.c     | 444 +++++++++
 src/native/windows/coreaudio/lib/device.h     |  44 +
 .../coreaudio/lib/include/endpointvolume.h    | 908 ++++++++++++++++++
 .../coreaudio/lib/include/winapifamily.h      |  88 ++
 ...ava => AbstractHardwareVolumeControl.java} |  31 +-
 .../jitsi/impl/neomedia/MediaServiceImpl.java |  14 +-
 .../CoreAudioDevice.java                      |   6 +-
 .../maccoreaudio/CoreAudioVolumeControl.java  |  64 ++
 .../wincoreaudio/CoreAudioDevice.java         |  55 ++
 .../wincoreaudio/CoreAudioVolumeControl.java  |  74 ++
 src/org/jitsi/util/OSUtils.java               |   9 +
 18 files changed, 1970 insertions(+), 44 deletions(-)
 create mode 100644 lib/native/windows-64/jnwincoreaudio.dll
 create mode 100644 src/native/windows/coreaudio/jni/org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice.c
 create mode 100644 src/native/windows/coreaudio/jni/org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice.h
 create mode 100644 src/native/windows/coreaudio/lib/device.c
 create mode 100644 src/native/windows/coreaudio/lib/device.h
 create mode 100644 src/native/windows/coreaudio/lib/include/endpointvolume.h
 create mode 100644 src/native/windows/coreaudio/lib/include/winapifamily.h
 rename src/org/jitsi/impl/neomedia/{coreaudio/CoreAudioVolumeControl.java => AbstractHardwareVolumeControl.java} (77%)
 rename src/org/jitsi/impl/neomedia/{coreaudio => maccoreaudio}/CoreAudioDevice.java (88%)
 create mode 100644 src/org/jitsi/impl/neomedia/maccoreaudio/CoreAudioVolumeControl.java
 create mode 100644 src/org/jitsi/impl/neomedia/wincoreaudio/CoreAudioDevice.java
 create mode 100644 src/org/jitsi/impl/neomedia/wincoreaudio/CoreAudioVolumeControl.java

diff --git a/lib/native/windows-64/jnwincoreaudio.dll b/lib/native/windows-64/jnwincoreaudio.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b3a5415e24b162ad206d27cffd7dc7a53bd1f19d
GIT binary patch
literal 260639
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%0A?xID#~epq9}CiQ#K*R*mG@uL4j%aK$cw*
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
Jr1B#Ae*hcGy4L^z

literal 0
HcmV?d00001

diff --git a/src/native/build.xml b/src/native/build.xml
index b257e950..71c80450 100644
--- a/src/native/build.xml
+++ b/src/native/build.xml
@@ -668,10 +668,36 @@
     </cc>
   </target>
 
-  <!-- compile jncoreaudio library for Mac OS X (32-bit/64-bit) -->
-  <target name="coreaudio" description="Build jncoreaudio shared library for Mac OS X" if="is.running.macos"
+  <!-- compile jnwincoreaudio library for Windows Vista, 7 and 8 (32-bit/64-bit)
+    -->
+  <target
+    name="win-coreaudio"
+    description="Build jnwincoreaudio shared library for Windows Vista, 7 and 8"
+    if="is.running.windows"
+    depends="init-native">
+    <cc outtype="shared" name="g++"
+        outfile="${native_install_dir}/jnwincoreaudio" objdir="${obj}">
+
+      <compilerarg value="-Wall" />
+      <compilerarg value="-O2" />
+      <compilerarg value="-I${system.JAVA_HOME}/include" />
+      <compilerarg value="-I${system.JAVA_HOME}/include/win32" />
+
+      <linkerarg value="-ojnwincoreaudio.dll" />
+      <libset libs="ole32" />
+
+      <fileset dir="${src}/native/windows/coreaudio/lib" includes="*.c" />
+      <fileset dir="${src}/native/windows/coreaudio/jni" includes="*.c" />
+    </cc>
+
+    <delete dir="${obj}" failonerror="false" />
+    <delete file="${native_install_dir}/history.xml" failonerror="false" />
+  </target>
+
+  <!-- compile jnmaccoreaudio library for Mac OS X (32-bit/64-bit) -->
+  <target name="mac-coreaudio" description="Build jnmaccoreaudio shared library for Mac OS X" if="is.running.macos"
     depends="init-native">
-    <cc outtype="shared" name="gcc" outfile="${native_install_dir}/jncoreaudio" objdir="${obj}">
+    <cc outtype="shared" name="gcc" outfile="${native_install_dir}/jnmaccoreaudio" objdir="${obj}">
       <compilerarg value="-Wall" />
       <compilerarg value="-O2" />
       <compilerarg value="-arch" />
@@ -682,7 +708,7 @@
       />
 
       <linkerarg value="-o" location="end" />
-      <linkerarg value="libjncoreaudio.jnilib" location="end" />
+      <linkerarg value="libjnmaccoreaudio.jnilib" location="end" />
       <linkerarg value="-arch" />
       <linkerarg value="x86_64" />
       <linkerarg value="-arch" />
@@ -799,7 +825,8 @@
     <echo message="'ant directshow (Windows only)' to compile jdirectshow shared library" />
     <echo message="'ant aegeturleventhandler (Mac OS X only)' to compile AEGetURLEventHandler shared library" />
     <echo message="'ant sparkle (Mac OS X only)' to compile sparkle shared library" />
-    <echo message="'ant coreaudio (Mac OS X only)' to compile jcoreaudio shared library" />
+    <echo message="'ant win-coreaudio (Windows Vista, 7 and 8 only)' to compile jnwincoreaudio shared library" />
+    <echo message="'ant mac-coreaudio (Mac OS X only)' to compile jnmaccoreaudio shared library" />
     <echo message="'ant quicktime (Mac OS X only)' to compile jquicktime shared library" />
     <echo message="" />
     <echo message="Options:" />
diff --git a/src/native/macosx/coreaudio/jni/org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice.c b/src/native/macosx/coreaudio/jni/org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice.c
index d66c9aa4..460bb397 100644
--- a/src/native/macosx/coreaudio/jni/org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice.c
+++ b/src/native/macosx/coreaudio/jni/org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice.c
@@ -5,7 +5,7 @@
  * See terms of license at gnu.org.
  */
 
-#include "org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice.h"
+#include "org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice.h"
 
 #include "../lib/device.h"
 
@@ -22,7 +22,7 @@ static jbyteArray getStrBytes(JNIEnv *env, const char *str);
 // Implementation
 
 JNIEXPORT jbyteArray JNICALL
-Java_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice_getDeviceNameBytes
+Java_org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice_getDeviceNameBytes
   (JNIEnv *env, jclass clazz, jstring deviceUID)
 {
     const char * deviceUIDPtr = (*env)->GetStringUTFChars(env, deviceUID, 0);
@@ -36,7 +36,7 @@ Java_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice_getDeviceNameBytes
 }
 
 JNIEXPORT jint JNICALL
-Java_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice_setInputDeviceVolume
+Java_org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice_setInputDeviceVolume
   (JNIEnv *env, jclass clazz, jstring deviceUID, jfloat volume)
 {
     const char * deviceUIDPtr = (*env)->GetStringUTFChars(env, deviceUID, 0);
@@ -48,7 +48,7 @@ Java_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice_setInputDeviceVolume
 }
 
 JNIEXPORT jint JNICALL
-Java_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice_setOutputDeviceVolume
+Java_org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice_setOutputDeviceVolume
   (JNIEnv *env, jclass clazz, jstring deviceUID, jfloat volume)
 {
     const char * deviceUIDPtr = (*env)->GetStringUTFChars(env, deviceUID, 0);
@@ -60,7 +60,7 @@ Java_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice_setOutputDeviceVolume
 }
 
 JNIEXPORT jfloat JNICALL
-Java_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice_getInputDeviceVolume
+Java_org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice_getInputDeviceVolume
   (JNIEnv *env, jclass clazz, jstring deviceUID)
 {
     const char * deviceUIDPtr = (*env)->GetStringUTFChars(env, deviceUID, 0);
@@ -72,7 +72,7 @@ Java_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice_getInputDeviceVolume
 }
 
 JNIEXPORT jfloat JNICALL
-Java_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice_getOutputDeviceVolume
+Java_org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice_getOutputDeviceVolume
   (JNIEnv *env, jclass clazz, jstring deviceUID)
 {
     const char * deviceUIDPtr = (*env)->GetStringUTFChars(env, deviceUID, 0);
diff --git a/src/native/macosx/coreaudio/jni/org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice.h b/src/native/macosx/coreaudio/jni/org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice.h
index 5e7e83bb..06ff03ca 100644
--- a/src/native/macosx/coreaudio/jni/org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice.h
+++ b/src/native/macosx/coreaudio/jni/org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice.h
@@ -7,51 +7,51 @@
 
 /* DO NOT EDIT THIS FILE - it is machine generated */
 #include <jni.h>
-/* Header for class org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice */
+/* Header for class org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice */
 
-#ifndef _Included_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice
-#define _Included_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice
+#ifndef _Included_org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice
+#define _Included_org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice
 #ifdef __cplusplus
 extern "C" {
 #endif
 /*
- * Class:     org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice
+ * Class:     org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice
  * Method:    getDeviceNameBytes
  * Signature: (Ljava/lang/String;)[B
  */
-JNIEXPORT jbyteArray JNICALL Java_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice_getDeviceNameBytes
+JNIEXPORT jbyteArray JNICALL Java_org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice_getDeviceNameBytes
   (JNIEnv *, jclass, jstring);
 
 /*
- * Class:     org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice
+ * Class:     org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice
  * Method:    setInputDeviceVolume
  * Signature: (Ljava/lang/String;F)I
  */
-JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice_setInputDeviceVolume
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice_setInputDeviceVolume
   (JNIEnv *, jclass, jstring, jfloat);
 
 /*
- * Class:     org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice
+ * Class:     org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice
  * Method:    setOutputDeviceVolume
  * Signature: (Ljava/lang/String;F)I
  */
-JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice_setOutputDeviceVolume
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice_setOutputDeviceVolume
   (JNIEnv *, jclass, jstring, jfloat);
 
 /*
- * Class:     org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice
+ * Class:     org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice
  * Method:    getInputDeviceVolume
  * Signature: (Ljava/lang/String;)F
  */
-JNIEXPORT jfloat JNICALL Java_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice_getInputDeviceVolume
+JNIEXPORT jfloat JNICALL Java_org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice_getInputDeviceVolume
   (JNIEnv *, jclass, jstring);
 
 /*
- * Class:     org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice
+ * Class:     org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice
  * Method:    getOutputDeviceVolume
  * Signature: (Ljava/lang/String;)F
  */
-JNIEXPORT jfloat JNICALL Java_org_jitsi_impl_neomedia_coreaudio_CoreAudioDevice_getOutputDeviceVolume
+JNIEXPORT jfloat JNICALL Java_org_jitsi_impl_neomedia_maccoreaudio_CoreAudioDevice_getOutputDeviceVolume
   (JNIEnv *, jclass, jstring);
 
 #ifdef __cplusplus
diff --git a/src/native/macosx/coreaudio/lib/device.c b/src/native/macosx/coreaudio/lib/device.c
index a6bfe348..a7e1df9f 100644
--- a/src/native/macosx/coreaudio/lib/device.c
+++ b/src/native/macosx/coreaudio/lib/device.c
@@ -293,7 +293,7 @@ OSStatus setDeviceVolume(
 /**
  * Gets the input volume for a given device.
  *
- * @param device The device to get volume from.
+ * @param deviceUID The device UID to get volume from.
  *
  * @return The device volume as a scalar value between 0.0 and 1.0. Returns -1.0
  * if an error occurs.
@@ -309,7 +309,7 @@ Float32 getInputDeviceVolume(
 /**
  * Gets the output volume for a given device.
  *
- * @param device The device to get volume from.
+ * @param deviceUID The device UID to get volume from.
  *
  * @return The device volume as a scalar value between 0.0 and 1.0. Returns -1.0
  * if an error occurs.
@@ -327,7 +327,7 @@ Float32 getOutputDeviceVolume(
  * (private) function and must only be called by getInputDeviceVolume or
  * getOutputDeviceVolume.
  *
- * @param device The device to get volume from.
+ * @param deviceUID The device UID to get volume from.
  * @param inputOutputScope The scope to tell if this is an output or an input
  * device.
  *
@@ -410,7 +410,7 @@ Float32 getDeviceVolume(
 /**
  * Sets the channels for stereo of a given device.
  *
- * @param device The device to get the channels from.
+ * @param deviceUID The device UID to get the channels from.
  * @param channels The channels to be filled in with the correct values. This
  * must be a 2 item length array.
  *
diff --git a/src/native/windows/coreaudio/jni/org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice.c b/src/native/windows/coreaudio/jni/org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice.c
new file mode 100644
index 00000000..a0824d3e
--- /dev/null
+++ b/src/native/windows/coreaudio/jni/org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice.c
@@ -0,0 +1,125 @@
+/*
+ * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client.
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+
+#include "org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice.h"
+
+#include "../lib/device.h"
+
+/**
+ * JNI code for CoreAudioDevice.
+ *
+ * @author Vicnent Lucas
+ */
+
+// Private functions
+
+static jbyteArray getStrBytes(JNIEnv *env, const char *str);
+
+// Implementation
+
+JNIEXPORT jint JNICALL
+Java_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice_initDevices
+  (JNIEnv *env, jclass clazz)
+{
+    return initDevices();
+}
+
+JNIEXPORT void JNICALL
+Java_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice_freeDevices
+  (JNIEnv *env, jclass clazz)
+{
+    freeDevices();
+}
+
+JNIEXPORT jbyteArray JNICALL
+Java_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice_getDeviceNameBytes
+  (JNIEnv *env, jclass clazz, jstring deviceUID)
+{
+    const char * deviceUIDPtr = env->GetStringUTFChars(deviceUID, 0);
+    char * deviceName = getDeviceName(deviceUIDPtr);
+    jbyteArray deviceNameBytes = getStrBytes(env, deviceName);
+    // Free
+    free(deviceName);
+    env->ReleaseStringUTFChars(deviceUID, deviceUIDPtr);
+
+    return deviceNameBytes;
+}
+
+JNIEXPORT jint JNICALL
+Java_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice_setInputDeviceVolume
+  (JNIEnv *env, jclass clazz, jstring deviceUID, jfloat volume)
+{
+    const char * deviceUIDPtr = env->GetStringUTFChars(deviceUID, 0);
+    jint err = setInputDeviceVolume(deviceUIDPtr, volume);
+    // Free
+    env->ReleaseStringUTFChars(deviceUID, deviceUIDPtr);
+
+    return err;
+}
+
+JNIEXPORT jint JNICALL
+Java_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice_setOutputDeviceVolume
+  (JNIEnv *env, jclass clazz, jstring deviceUID, jfloat volume)
+{
+    const char * deviceUIDPtr = env->GetStringUTFChars(deviceUID, 0);
+    jint err = setOutputDeviceVolume(deviceUIDPtr, volume);
+    // Free
+    env->ReleaseStringUTFChars(deviceUID, deviceUIDPtr);
+
+    return err;
+}
+
+JNIEXPORT jfloat JNICALL
+Java_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice_getInputDeviceVolume
+  (JNIEnv *env, jclass clazz, jstring deviceUID)
+{
+    const char * deviceUIDPtr = env->GetStringUTFChars(deviceUID, 0);
+    jfloat volume = getInputDeviceVolume(deviceUIDPtr);
+    // Free
+    env->ReleaseStringUTFChars(deviceUID, deviceUIDPtr);
+
+    return volume;
+}
+
+JNIEXPORT jfloat JNICALL
+Java_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice_getOutputDeviceVolume
+  (JNIEnv *env, jclass clazz, jstring deviceUID)
+{
+    const char * deviceUIDPtr = env->GetStringUTFChars(deviceUID, 0);
+    jfloat volume = getOutputDeviceVolume(deviceUIDPtr);
+    // Free
+    env->ReleaseStringUTFChars(deviceUID, deviceUIDPtr);
+
+    return volume;
+}
+
+/**
+ * Gets a new <tt>jbyteArray</tt> instance which is initialized with the bytes
+ * of a specific C string i.e. <tt>const char *</tt>.
+ *
+ * @param env
+ * @param str the bytes/C string to initialize the new <tt>jbyteArray</tt>
+ * instance with
+ * @return a new <tt>jbyteArray</tt> instance which is initialized with the
+ * bytes of the specified <tt>str</tt>
+ */
+static jbyteArray getStrBytes(JNIEnv *env, const char *str)
+{
+    jbyteArray bytes;
+
+    if (str)
+    {
+        size_t length = strlen(str);
+
+        bytes = env->NewByteArray(length);
+        if (bytes && length)
+            env->SetByteArrayRegion(bytes, 0, length, (jbyte *) str);
+    }
+    else
+        bytes = NULL;
+    return bytes;
+}
diff --git a/src/native/windows/coreaudio/jni/org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice.h b/src/native/windows/coreaudio/jni/org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice.h
new file mode 100644
index 00000000..fafe376c
--- /dev/null
+++ b/src/native/windows/coreaudio/jni/org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice.h
@@ -0,0 +1,69 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice */
+
+#ifndef _Included_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice
+#define _Included_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class:     org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice
+ * Method:    initDevices
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice_initDevices
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice
+ * Method:    freeDevices
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice_freeDevices
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice
+ * Method:    getDeviceNameBytes
+ * Signature: (Ljava/lang/String;)[B
+ */
+JNIEXPORT jbyteArray JNICALL Java_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice_getDeviceNameBytes
+  (JNIEnv *, jclass, jstring);
+
+/*
+ * Class:     org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice
+ * Method:    setInputDeviceVolume
+ * Signature: (Ljava/lang/String;F)I
+ */
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice_setInputDeviceVolume
+  (JNIEnv *, jclass, jstring, jfloat);
+
+/*
+ * Class:     org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice
+ * Method:    setOutputDeviceVolume
+ * Signature: (Ljava/lang/String;F)I
+ */
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice_setOutputDeviceVolume
+  (JNIEnv *, jclass, jstring, jfloat);
+
+/*
+ * Class:     org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice
+ * Method:    getInputDeviceVolume
+ * Signature: (Ljava/lang/String;)F
+ */
+JNIEXPORT jfloat JNICALL Java_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice_getInputDeviceVolume
+  (JNIEnv *, jclass, jstring);
+
+/*
+ * Class:     org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice
+ * Method:    getOutputDeviceVolume
+ * Signature: (Ljava/lang/String;)F
+ */
+JNIEXPORT jfloat JNICALL Java_org_jitsi_impl_neomedia_wincoreaudio_CoreAudioDevice_getOutputDeviceVolume
+  (JNIEnv *, jclass, jstring);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/native/windows/coreaudio/lib/device.c b/src/native/windows/coreaudio/lib/device.c
new file mode 100644
index 00000000..b6bac3f7
--- /dev/null
+++ b/src/native/windows/coreaudio/lib/device.c
@@ -0,0 +1,444 @@
+/*
+ * Jitsi, the OpenSource Java VoIP and Instant Messaging client.
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+#include "device.h"
+
+#include <initguid.h>
+#include <stdio.h>
+#include <tchar.h>
+
+#include <windows.h>
+#include <propkeydef.h> // Must be defined after windows.h
+
+#include <commctrl.h> // Must be defined after mmdeviceapi.h
+#include "include/endpointvolume.h" // Must be defined after mmdeviceapi.h
+
+/**
+ * Functions to list, access and modifies audio devices via coreaudio.
+ *
+ * @author Vincent Lucas
+ */
+
+/**
+ * Private definition of functions,
+ */
+IAudioEndpointVolume * getEndpointVolume(
+        const char * deviceUID);
+
+void freeEndpointVolume(
+        IAudioEndpointVolume * endpointVolume);
+
+int setDeviceVolume(
+        const char * deviceUID,
+        float volume);
+
+float getDeviceVolume(
+        const char * deviceUID);
+
+DEFINE_PROPERTYKEY(PKEY_Device_FriendlyName,           0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 14);    // DEVPROP_TYPE_STRING
+
+const IID IID_IAudioEndpointVolume =
+{0x5CDF2C82, 0x841E, 0x4546, {0x97, 0x22, 0x0C, 0xF7, 0x40, 0x78, 0x22, 0x9A}};
+
+/**
+ * Initializes the COM component. This function must be called first in order to
+ * able each following function to work correctly. Once finished, the caller of
+ * this function must call the "freeDevices" function.
+ *
+ * @return 0 if everything is OK. -1 if an error has occured.
+ */
+int initDevices(void)
+{
+    fprintf(stderr,
+            "initDevices (coreaudio/device.c): \n");
+    fflush(stderr);
+    if(CoInitializeEx(NULL, COINIT_MULTITHREADED) != S_OK)
+    {
+        fprintf(stderr,
+                "initDevices (coreaudio/device.c): \
+                    \n\tCoInitialize\n");
+        fflush(stderr);
+        return -1;
+    }
+    return 0;
+}
+
+/**
+ * Frees the resources used by the COM component. This function must be called
+ * last.
+ */
+void freeDevices(void)
+{
+    fprintf(stderr,
+            "freeDevices (coreaudio/device.c): \n");
+    fflush(stderr);
+    CoUninitialize();
+}
+
+/**
+ * Returns the audio device corresponding to the UID given in parameter. Or
+ * NULL if the device is nonexistant or if anything as failed. The device must
+ * be freed by the caller of this function.
+ *
+ * @param deviceUID The device UID.
+ *
+ * @return The audio device corresponding to the UID given in parameter. Or
+ * NULL if the device is nonexistant or if anything as failed.
+ */
+IMMDevice * getDevice(
+        const char * deviceUID)
+{
+    // Gets the enumerator of the system devices.
+    int err;
+    IMMDeviceEnumerator * enumerator = NULL;
+    const CLSID clsid = __uuidof(MMDeviceEnumerator);
+    const IID iid = __uuidof(IMMDeviceEnumerator);
+
+    if((err = CoCreateInstance(
+                clsid,
+                NULL,
+                CLSCTX_ALL,
+                iid,
+                (void**) &enumerator))
+            != S_OK)
+    {
+        fprintf(stderr,
+                "getDevice (coreaudio/device.c): \
+                    \n\tCoCreateInstance\n");
+        fflush(stderr);
+        if(err == REGDB_E_CLASSNOTREG)
+        {
+            fprintf(stderr,
+                    "getDevice (coreaudio/device.c): \
+                        \n\tCoCreateInstance: REGDB_E_CLASSNOTREG\n");
+            fflush(stderr);
+        }
+        else if(err == CLASS_E_NOAGGREGATION)
+        {
+            fprintf(stderr,
+                    "getDevice (coreaudio/device.c): \
+                        \n\tCoCreateInstance: CLASS_E_NOAGGREGATION\n");
+            fflush(stderr);
+        }
+        else if(err == E_NOINTERFACE)
+        {
+            fprintf(stderr,
+                    "getDevice (coreaudio/device.c): \
+                        \n\tCoCreateInstance: E_NOINTERFACE\n");
+            fflush(stderr);
+        }
+        else if(err == E_POINTER)
+        {
+            fprintf(stderr,
+                    "getDevice (coreaudio/device.c): \
+                        \n\tCoCreateInstance: E_POINTER\n");
+            fflush(stderr);
+        }
+        return NULL;
+    }
+
+    // Gets the requested device selected by its UID.
+    IMMDevice *device = NULL;
+    size_t deviceUIDLength = strlen(deviceUID);
+    wchar_t wCharDeviceUID[deviceUIDLength + 1];
+    if(mbstowcs(wCharDeviceUID, deviceUID, deviceUIDLength + 1)
+            != deviceUIDLength)
+    {
+        fprintf(stderr,
+                "getDevice (coreaudio/device.c): \
+                    \n\tmbstowcs\n");
+        fflush(stderr);
+        return NULL;
+    }
+    if(enumerator->GetDevice(wCharDeviceUID, &device) != S_OK)
+    {
+        fprintf(stderr,
+                "getDevice (coreaudio/device.c): \
+                    \n\tIMMDeviceEnumerator.GetDevice\n");
+        fflush(stderr);
+        return NULL;
+    }
+
+    return device;
+}
+
+/**
+ * Frees an audio device returned by the function getDevice.
+ *
+ * @param device The audio device
+ */
+void freeDevice(
+        IMMDevice * device)
+{
+    device->Release();
+}
+
+/**
+ * Returns the audio device volume endpoint corresponding to the UID given in
+ * parameter. Or NULL if the endpoint is nonexistant or if anything as failed.
+ * The endpoint must be freed by the caller of this function.
+ *
+ * @param deviceUID The device UID.
+ *
+ * @return the audio device volume endpoint corresponding to the UID given in
+ * parameter. Or NULL if the endpoint is nonexistant or if anything as failed.
+ */
+IAudioEndpointVolume * getEndpointVolume(
+        const char * deviceUID)
+{
+    // Gets the device corresponding to its UID.
+    IMMDevice * device = getDevice(deviceUID);
+    if(device == NULL)
+    {
+        fprintf(stderr,
+                "getEndpointVolume (coreaudio/device.c): \
+                    \n\tgetDevice\n");
+        fflush(stderr);
+        return NULL;
+    }
+
+    // retrives the volume endpoint.
+    IAudioEndpointVolume *endpointVolume = NULL;
+    if(device->Activate(
+            IID_IAudioEndpointVolume,
+            CLSCTX_ALL,
+            NULL,
+            (void**) &endpointVolume) != S_OK)
+    {
+        fprintf(stderr,
+                "getEndpointVolume (coreaudio/device.c): \
+                    \n\tIMMDevice.Activate\n");
+        fflush(stderr);
+        return NULL;
+    }
+
+    // Frees the device.
+    freeDevice(device);
+
+    return endpointVolume;
+}
+
+/**
+ * Frees an audio device volume endpoint returned by the function
+ * getEndpointVolume.
+ *
+ * @param endpointVolume The audio device volume endpoint.
+ */
+void freeEndpointVolume(
+        IAudioEndpointVolume * endpointVolume)
+{
+    endpointVolume->Release();
+}
+
+/**
+ * Returns the device name for the given device. Or NULL, if not available. The
+ * returned string must be freed by the caller.
+ *
+ * @param device The device to get the name from.
+ *
+ * @return The device name for the given device. Or NULL, if not available. The
+ * returned string must be freed by the caller.
+ */
+char* getDeviceName(
+        const char * deviceUID)
+{
+    size_t deviceNameLength;
+    char * deviceName = NULL;
+    PROPVARIANT propertyDeviceName;
+    PropVariantInit(&propertyDeviceName);
+    IPropertyStore * properties = NULL;
+
+    // Gets the audio device.
+    IMMDevice * device = getDevice(deviceUID);
+    if(device == NULL)
+    {
+        fprintf(stderr,
+                "getDeviceName (coreaudio/device.c): \
+                    \n\tgetDevice\n");
+        fflush(stderr);
+        return NULL;
+    }
+
+    // Read the properties from the audio device.
+    if(device->OpenPropertyStore(STGM_READ, &properties) != S_OK)
+    {
+        fprintf(stderr,
+                "getDeviceName (coreaudio/device.c): \
+                    \n\tIMMDevice.OpenPropertyStore\n");
+        fflush(stderr);
+        return NULL;
+    }
+    if(properties->GetValue(PKEY_Device_FriendlyName, &propertyDeviceName)
+            != S_OK)
+    {
+        fprintf(stderr,
+                "getDeviceName (coreaudio/device.c): \
+                    \n\tIPropertyStore.GetValue\n");
+        fflush(stderr);
+        return NULL;
+    }
+    deviceNameLength = wcslen(propertyDeviceName.pwszVal);
+    if((deviceName = (char *) malloc((deviceNameLength + 1) * sizeof(char)))
+            == NULL)
+    {
+        fprintf(stderr,
+                "getDeviceName (coreaudio/device.c): \
+                    \n\tmalloc\n");
+        fflush(stderr);
+        return NULL;
+    }
+    if(wcstombs(deviceName, propertyDeviceName.pwszVal, deviceNameLength + 1)
+            != deviceNameLength)
+    {
+        fprintf(stderr,
+                "getDeviceName (coreaudio/device.c): \
+                    \n\twcstombs\n");
+        fflush(stderr);
+        return NULL;
+    }
+
+    // Frees.
+    freeDevice(device);
+    PropVariantClear(&propertyDeviceName);
+
+    return deviceName;
+}
+
+/**
+ * Sets the input volume for a given device.
+ *
+ * @param deviceUID The device UID which volume must be changed.
+ * @param volume The new volume of the device. This is a scalar value between
+ * 0.0 and 1.0
+ *
+ * @return 0 if everything works well. -1 if an error has occured.  
+ */
+int setInputDeviceVolume(
+        const char * deviceUID,
+        float volume)
+{
+    return setDeviceVolume(deviceUID, volume);
+}
+
+/**
+ * Sets the output volume for a given device.
+ *
+ * @param deviceUID The device UID which volume must be changed.
+ * @param volume The new volume of the device. This is a scalar value between
+ * 0.0 and 1.0
+ *
+ * @return 0 if everything works well. -1 if an error has occured.  
+ */
+int setOutputDeviceVolume(
+        const char * deviceUID,
+        float volume)
+{
+    return setDeviceVolume(deviceUID, volume);
+}
+
+/**
+ * Sets the input or output volume for a given device. This is an internal
+ * (private) function and must only be called by setInputDeviceVolume or
+ * setOutputDeviceVolume.
+ *
+ * @param deviceUID The device UID which volume must be changed.
+ * @param volume The new volume of the device. This is a scalar value between
+ * 0.0 and 1.0
+ * @param inputOutputScope The scope to tell if this is an output or an input
+ * device.
+ *
+ * @return 0 if everything works well. -1 if an error has occured.  
+ */
+int setDeviceVolume(
+        const char * deviceUID,
+        float volume)
+{
+    IAudioEndpointVolume *endpointVolume = getEndpointVolume(deviceUID);
+    if(endpointVolume == NULL)
+    {
+        fprintf(stderr,
+                "setDeviceVolume (coreaudio/device.c): \
+                    \n\tgetEndpointVolume\n");
+        fflush(stderr);
+        return -1;
+    }
+    if(endpointVolume->SetMasterVolumeLevelScalar(volume, NULL) != S_OK)
+    {
+        fprintf(stderr,
+                "setDeviceVolume (coreaudio/device.c): \
+                    \n\tSetMasterVolumeLevelScalar\n");
+        fflush(stderr);
+        return -1;
+    }
+    freeEndpointVolume(endpointVolume);
+
+    return 0;
+}
+
+/**
+ * Gets the input volume for a given device.
+ *
+ * @param deviceUID The device UID to get volume from.
+ *
+ * @return The device volume as a scalar value between 0.0 and 1.0. Returns -1.0
+ * if an error occurs.
+ */
+float getInputDeviceVolume(
+        const char * deviceUID)
+{
+    return getDeviceVolume(deviceUID);
+}
+
+/**
+ * Gets the output volume for a given device.
+ *
+ * @param deviceUID The device UID to get volume from.
+ *
+ * @return The device volume as a scalar value between 0.0 and 1.0. Returns -1.0
+ * if an error occurs.
+ */
+float getOutputDeviceVolume(
+        const char * deviceUID)
+{
+    return getDeviceVolume(deviceUID);
+}
+
+/**
+ * Gets the input or output volume for a given device. This is an internal
+ * (private) function and must only be called by getInputDeviceVolume or
+ * getOutputDeviceVolume.
+ *
+ * @param deviceUID The device UID to get volume from.
+ *
+ * @return The device volume as a scalar value between 0.0 and 1.0. Returns -1.0
+ * if an error occurs.
+ */
+float getDeviceVolume(
+        const char * deviceUID)
+{
+    float volume;
+
+    IAudioEndpointVolume *endpointVolume = getEndpointVolume(deviceUID);
+    if(endpointVolume == NULL)
+    {
+        fprintf(stderr,
+                "getDeviceVolume (coreaudio/device.c): \
+                    \n\tgetEndpointVolume\n");
+        fflush(stderr);
+        return -1;
+    }
+    if(endpointVolume->GetMasterVolumeLevelScalar(&volume) != S_OK)
+    {
+        fprintf(stderr,
+                "getDeviceVolume (coreaudio/device.c): \
+                    \n\tGetMasterVolumeLevelScalar\n");
+        fflush(stderr);
+        return -1;
+    }
+    freeEndpointVolume(endpointVolume);
+
+    return volume;
+}
diff --git a/src/native/windows/coreaudio/lib/device.h b/src/native/windows/coreaudio/lib/device.h
new file mode 100644
index 00000000..abc05f2e
--- /dev/null
+++ b/src/native/windows/coreaudio/lib/device.h
@@ -0,0 +1,44 @@
+/*
+ * Jitsi, the OpenSource Java VoIP and Instant Messaging client.
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+#ifndef device_h
+#define device_h
+
+#include <mmdeviceapi.h>
+
+/**
+ * Functions to list, access and modifies audio devices via coreaudio.
+ * Look at correspondig ".c" file for documentation.
+ *
+ * @author Vincent Lucas
+ */
+int initDevices(void);
+
+void freeDevices(void);
+
+IMMDevice * getDevice(
+        const char * deviceUID);
+
+void freeDevice(
+        IMMDevice * device);
+
+char* getDeviceName(
+        const char * deviceUID);
+
+int setInputDeviceVolume(
+        const char * deviceUID,
+        float volume);
+
+int setOutputDeviceVolume(
+        const char * deviceUID,
+        float volume);
+
+float getInputDeviceVolume(
+        const char * deviceUID);
+
+float getOutputDeviceVolume(
+        const char * deviceUID);
+#endif
diff --git a/src/native/windows/coreaudio/lib/include/endpointvolume.h b/src/native/windows/coreaudio/lib/include/endpointvolume.h
new file mode 100644
index 00000000..b423b5a4
--- /dev/null
+++ b/src/native/windows/coreaudio/lib/include/endpointvolume.h
@@ -0,0 +1,908 @@
+ /* File created by MIDL compiler version 8.00.0595 */
+/* @@MIDL_FILE_HEADING(  ) */
+
+//#pragma warning( disable: 4049 )  /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 500
+#endif
+
+/* verify that the <rpcsal.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCSAL_H_VERSION__
+#define __REQUIRED_RPCSAL_H_VERSION__ 100
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __endpointvolume_h__
+#define __endpointvolume_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */ 
+
+#ifndef __IAudioEndpointVolumeCallback_FWD_DEFINED__
+#define __IAudioEndpointVolumeCallback_FWD_DEFINED__
+typedef interface IAudioEndpointVolumeCallback IAudioEndpointVolumeCallback;
+
+#endif 	/* __IAudioEndpointVolumeCallback_FWD_DEFINED__ */
+
+
+#ifndef __IAudioEndpointVolume_FWD_DEFINED__
+#define __IAudioEndpointVolume_FWD_DEFINED__
+typedef interface IAudioEndpointVolume IAudioEndpointVolume;
+
+#endif 	/* __IAudioEndpointVolume_FWD_DEFINED__ */
+
+
+#ifndef __IAudioEndpointVolumeEx_FWD_DEFINED__
+#define __IAudioEndpointVolumeEx_FWD_DEFINED__
+typedef interface IAudioEndpointVolumeEx IAudioEndpointVolumeEx;
+
+#endif 	/* __IAudioEndpointVolumeEx_FWD_DEFINED__ */
+
+
+#ifndef __IAudioMeterInformation_FWD_DEFINED__
+#define __IAudioMeterInformation_FWD_DEFINED__
+typedef interface IAudioMeterInformation IAudioMeterInformation;
+
+#endif 	/* __IAudioMeterInformation_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "unknwn.h"
+#include "devicetopology.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif 
+
+
+/* interface __MIDL_itf_endpointvolume_0000_0000 */
+/* [local] */ 
+
+#include "winapifamily.h"
+//#pragma region Application Family
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+typedef struct AUDIO_VOLUME_NOTIFICATION_DATA
+    {
+    GUID guidEventContext;
+    BOOL bMuted;
+    float fMasterVolume;
+    UINT nChannels;
+    float afChannelVolumes[ 1 ];
+    } 	AUDIO_VOLUME_NOTIFICATION_DATA;
+
+typedef struct AUDIO_VOLUME_NOTIFICATION_DATA *PAUDIO_VOLUME_NOTIFICATION_DATA;
+
+#define   ENDPOINT_HARDWARE_SUPPORT_VOLUME    0x00000001
+#define   ENDPOINT_HARDWARE_SUPPORT_MUTE      0x00000002
+#define   ENDPOINT_HARDWARE_SUPPORT_METER     0x00000004
+
+
+extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IAudioEndpointVolumeCallback_INTERFACE_DEFINED__
+#define __IAudioEndpointVolumeCallback_INTERFACE_DEFINED__
+
+/* interface IAudioEndpointVolumeCallback */
+/* [unique][helpstring][nonextensible][uuid][local][object] */ 
+
+
+EXTERN_C const IID IID_IAudioEndpointVolumeCallback;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+    
+    MIDL_INTERFACE("657804FA-D6AD-4496-8A60-352752AF4F89")
+    IAudioEndpointVolumeCallback : public IUnknown
+    {
+    public:
+        virtual HRESULT STDMETHODCALLTYPE OnNotify( 
+            PAUDIO_VOLUME_NOTIFICATION_DATA pNotify) = 0;
+        
+    };
+    
+    
+#else 	/* C style interface */
+
+    typedef struct IAudioEndpointVolumeCallbackVtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            IAudioEndpointVolumeCallback * This,
+            /* [in] */ REFIID riid,
+            /* [annotation][iid_is][out] */ 
+            _COM_Outptr_  void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IAudioEndpointVolumeCallback * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IAudioEndpointVolumeCallback * This);
+        
+        HRESULT ( STDMETHODCALLTYPE *OnNotify )( 
+            IAudioEndpointVolumeCallback * This,
+            PAUDIO_VOLUME_NOTIFICATION_DATA pNotify);
+        
+        END_INTERFACE
+    } IAudioEndpointVolumeCallbackVtbl;
+
+    interface IAudioEndpointVolumeCallback
+    {
+        CONST_VTBL struct IAudioEndpointVolumeCallbackVtbl *lpVtbl;
+    };
+
+    
+
+#ifdef COBJMACROS
+
+
+#define IAudioEndpointVolumeCallback_QueryInterface(This,riid,ppvObject)	\
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
+
+#define IAudioEndpointVolumeCallback_AddRef(This)	\
+    ( (This)->lpVtbl -> AddRef(This) ) 
+
+#define IAudioEndpointVolumeCallback_Release(This)	\
+    ( (This)->lpVtbl -> Release(This) ) 
+
+
+#define IAudioEndpointVolumeCallback_OnNotify(This,pNotify)	\
+    ( (This)->lpVtbl -> OnNotify(This,pNotify) ) 
+
+#endif /* COBJMACROS */
+
+
+#endif 	/* C style interface */
+
+
+
+
+#endif 	/* __IAudioEndpointVolumeCallback_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAudioEndpointVolume_INTERFACE_DEFINED__
+#define __IAudioEndpointVolume_INTERFACE_DEFINED__
+
+/* interface IAudioEndpointVolume */
+/* [unique][helpstring][nonextensible][uuid][local][object] */ 
+
+
+EXTERN_C const IID IID_IAudioEndpointVolume;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+    
+    MIDL_INTERFACE("5CDF2C82-841E-4546-9722-0CF74078229A")
+    IAudioEndpointVolume : public IUnknown
+    {
+    public:
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterControlChangeNotify( 
+            /* [annotation][in] */ 
+            _In_  IAudioEndpointVolumeCallback *pNotify) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnregisterControlChangeNotify( 
+            /* [annotation][in] */ 
+            _In_  IAudioEndpointVolumeCallback *pNotify) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChannelCount( 
+            /* [annotation][out] */ 
+            _Out_  UINT *pnChannelCount) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMasterVolumeLevel( 
+            /* [annotation][in] */ 
+            _In_  float fLevelDB,
+            /* [unique][in] */ LPCGUID pguidEventContext) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMasterVolumeLevelScalar( 
+            /* [annotation][in] */ 
+            _In_  float fLevel,
+            /* [unique][in] */ LPCGUID pguidEventContext) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMasterVolumeLevel( 
+            /* [annotation][out] */ 
+            _Out_  float *pfLevelDB) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMasterVolumeLevelScalar( 
+            /* [annotation][out] */ 
+            _Out_  float *pfLevel) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetChannelVolumeLevel( 
+            /* [annotation][in] */ 
+            _In_  UINT nChannel,
+            float fLevelDB,
+            /* [unique][in] */ LPCGUID pguidEventContext) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetChannelVolumeLevelScalar( 
+            /* [annotation][in] */ 
+            _In_  UINT nChannel,
+            float fLevel,
+            /* [unique][in] */ LPCGUID pguidEventContext) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChannelVolumeLevel( 
+            /* [annotation][in] */ 
+            _In_  UINT nChannel,
+            /* [annotation][out] */ 
+            _Out_  float *pfLevelDB) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChannelVolumeLevelScalar( 
+            /* [annotation][in] */ 
+            _In_  UINT nChannel,
+            /* [annotation][out] */ 
+            _Out_  float *pfLevel) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMute( 
+            /* [annotation][in] */ 
+            _In_  BOOL bMute,
+            /* [unique][in] */ LPCGUID pguidEventContext) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMute( 
+            /* [annotation][out] */ 
+            _Out_  BOOL *pbMute) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVolumeStepInfo( 
+            /* [annotation][out] */ 
+            _Out_  UINT *pnStep,
+            /* [annotation][out] */ 
+            _Out_  UINT *pnStepCount) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE VolumeStepUp( 
+            /* [unique][in] */ LPCGUID pguidEventContext) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE VolumeStepDown( 
+            /* [unique][in] */ LPCGUID pguidEventContext) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryHardwareSupport( 
+            /* [annotation][out] */ 
+            _Out_  DWORD *pdwHardwareSupportMask) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVolumeRange( 
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeMindB,
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeMaxdB,
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeIncrementdB) = 0;
+        
+    };
+    
+    
+#else 	/* C style interface */
+
+    typedef struct IAudioEndpointVolumeVtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            IAudioEndpointVolume * This,
+            /* [in] */ REFIID riid,
+            /* [annotation][iid_is][out] */ 
+            _COM_Outptr_  void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IAudioEndpointVolume * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IAudioEndpointVolume * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterControlChangeNotify )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][in] */ 
+            _In_  IAudioEndpointVolumeCallback *pNotify);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnregisterControlChangeNotify )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][in] */ 
+            _In_  IAudioEndpointVolumeCallback *pNotify);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelCount )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][out] */ 
+            _Out_  UINT *pnChannelCount);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMasterVolumeLevel )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][in] */ 
+            _In_  float fLevelDB,
+            /* [unique][in] */ LPCGUID pguidEventContext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMasterVolumeLevelScalar )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][in] */ 
+            _In_  float fLevel,
+            /* [unique][in] */ LPCGUID pguidEventContext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMasterVolumeLevel )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][out] */ 
+            _Out_  float *pfLevelDB);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMasterVolumeLevelScalar )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][out] */ 
+            _Out_  float *pfLevel);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetChannelVolumeLevel )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][in] */ 
+            _In_  UINT nChannel,
+            float fLevelDB,
+            /* [unique][in] */ LPCGUID pguidEventContext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetChannelVolumeLevelScalar )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][in] */ 
+            _In_  UINT nChannel,
+            float fLevel,
+            /* [unique][in] */ LPCGUID pguidEventContext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelVolumeLevel )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][in] */ 
+            _In_  UINT nChannel,
+            /* [annotation][out] */ 
+            _Out_  float *pfLevelDB);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelVolumeLevelScalar )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][in] */ 
+            _In_  UINT nChannel,
+            /* [annotation][out] */ 
+            _Out_  float *pfLevel);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMute )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][in] */ 
+            _In_  BOOL bMute,
+            /* [unique][in] */ LPCGUID pguidEventContext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMute )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][out] */ 
+            _Out_  BOOL *pbMute);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVolumeStepInfo )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][out] */ 
+            _Out_  UINT *pnStep,
+            /* [annotation][out] */ 
+            _Out_  UINT *pnStepCount);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *VolumeStepUp )( 
+            IAudioEndpointVolume * This,
+            /* [unique][in] */ LPCGUID pguidEventContext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *VolumeStepDown )( 
+            IAudioEndpointVolume * This,
+            /* [unique][in] */ LPCGUID pguidEventContext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *QueryHardwareSupport )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][out] */ 
+            _Out_  DWORD *pdwHardwareSupportMask);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVolumeRange )( 
+            IAudioEndpointVolume * This,
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeMindB,
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeMaxdB,
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeIncrementdB);
+        
+        END_INTERFACE
+    } IAudioEndpointVolumeVtbl;
+
+    interface IAudioEndpointVolume
+    {
+        CONST_VTBL struct IAudioEndpointVolumeVtbl *lpVtbl;
+    };
+
+    
+
+#ifdef COBJMACROS
+
+
+#define IAudioEndpointVolume_QueryInterface(This,riid,ppvObject)	\
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
+
+#define IAudioEndpointVolume_AddRef(This)	\
+    ( (This)->lpVtbl -> AddRef(This) ) 
+
+#define IAudioEndpointVolume_Release(This)	\
+    ( (This)->lpVtbl -> Release(This) ) 
+
+
+#define IAudioEndpointVolume_RegisterControlChangeNotify(This,pNotify)	\
+    ( (This)->lpVtbl -> RegisterControlChangeNotify(This,pNotify) ) 
+
+#define IAudioEndpointVolume_UnregisterControlChangeNotify(This,pNotify)	\
+    ( (This)->lpVtbl -> UnregisterControlChangeNotify(This,pNotify) ) 
+
+#define IAudioEndpointVolume_GetChannelCount(This,pnChannelCount)	\
+    ( (This)->lpVtbl -> GetChannelCount(This,pnChannelCount) ) 
+
+#define IAudioEndpointVolume_SetMasterVolumeLevel(This,fLevelDB,pguidEventContext)	\
+    ( (This)->lpVtbl -> SetMasterVolumeLevel(This,fLevelDB,pguidEventContext) ) 
+
+#define IAudioEndpointVolume_SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext)	\
+    ( (This)->lpVtbl -> SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext) ) 
+
+#define IAudioEndpointVolume_GetMasterVolumeLevel(This,pfLevelDB)	\
+    ( (This)->lpVtbl -> GetMasterVolumeLevel(This,pfLevelDB) ) 
+
+#define IAudioEndpointVolume_GetMasterVolumeLevelScalar(This,pfLevel)	\
+    ( (This)->lpVtbl -> GetMasterVolumeLevelScalar(This,pfLevel) ) 
+
+#define IAudioEndpointVolume_SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext)	\
+    ( (This)->lpVtbl -> SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext) ) 
+
+#define IAudioEndpointVolume_SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext)	\
+    ( (This)->lpVtbl -> SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext) ) 
+
+#define IAudioEndpointVolume_GetChannelVolumeLevel(This,nChannel,pfLevelDB)	\
+    ( (This)->lpVtbl -> GetChannelVolumeLevel(This,nChannel,pfLevelDB) ) 
+
+#define IAudioEndpointVolume_GetChannelVolumeLevelScalar(This,nChannel,pfLevel)	\
+    ( (This)->lpVtbl -> GetChannelVolumeLevelScalar(This,nChannel,pfLevel) ) 
+
+#define IAudioEndpointVolume_SetMute(This,bMute,pguidEventContext)	\
+    ( (This)->lpVtbl -> SetMute(This,bMute,pguidEventContext) ) 
+
+#define IAudioEndpointVolume_GetMute(This,pbMute)	\
+    ( (This)->lpVtbl -> GetMute(This,pbMute) ) 
+
+#define IAudioEndpointVolume_GetVolumeStepInfo(This,pnStep,pnStepCount)	\
+    ( (This)->lpVtbl -> GetVolumeStepInfo(This,pnStep,pnStepCount) ) 
+
+#define IAudioEndpointVolume_VolumeStepUp(This,pguidEventContext)	\
+    ( (This)->lpVtbl -> VolumeStepUp(This,pguidEventContext) ) 
+
+#define IAudioEndpointVolume_VolumeStepDown(This,pguidEventContext)	\
+    ( (This)->lpVtbl -> VolumeStepDown(This,pguidEventContext) ) 
+
+#define IAudioEndpointVolume_QueryHardwareSupport(This,pdwHardwareSupportMask)	\
+    ( (This)->lpVtbl -> QueryHardwareSupport(This,pdwHardwareSupportMask) ) 
+
+#define IAudioEndpointVolume_GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB)	\
+    ( (This)->lpVtbl -> GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) ) 
+
+#endif /* COBJMACROS */
+
+
+#endif 	/* C style interface */
+
+
+
+
+#endif 	/* __IAudioEndpointVolume_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_endpointvolume_0000_0002 */
+/* [local] */ 
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
+//#pragma endregion
+//#pragma region Desktop Family
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0002_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0002_v0_0_s_ifspec;
+
+#ifndef __IAudioEndpointVolumeEx_INTERFACE_DEFINED__
+#define __IAudioEndpointVolumeEx_INTERFACE_DEFINED__
+
+/* interface IAudioEndpointVolumeEx */
+/* [unique][helpstring][nonextensible][uuid][local][object] */ 
+
+
+EXTERN_C const IID IID_IAudioEndpointVolumeEx;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+    
+    MIDL_INTERFACE("66E11784-F695-4F28-A505-A7080081A78F")
+    IAudioEndpointVolumeEx : public IAudioEndpointVolume
+    {
+    public:
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVolumeRangeChannel( 
+            /* [in] */ UINT iChannel,
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeMindB,
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeMaxdB,
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeIncrementdB) = 0;
+        
+    };
+    
+    
+#else 	/* C style interface */
+
+    typedef struct IAudioEndpointVolumeExVtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            IAudioEndpointVolumeEx * This,
+            /* [in] */ REFIID riid,
+            /* [annotation][iid_is][out] */ 
+            _COM_Outptr_  void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IAudioEndpointVolumeEx * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IAudioEndpointVolumeEx * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterControlChangeNotify )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][in] */ 
+            _In_  IAudioEndpointVolumeCallback *pNotify);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnregisterControlChangeNotify )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][in] */ 
+            _In_  IAudioEndpointVolumeCallback *pNotify);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelCount )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][out] */ 
+            _Out_  UINT *pnChannelCount);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMasterVolumeLevel )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][in] */ 
+            _In_  float fLevelDB,
+            /* [unique][in] */ LPCGUID pguidEventContext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMasterVolumeLevelScalar )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][in] */ 
+            _In_  float fLevel,
+            /* [unique][in] */ LPCGUID pguidEventContext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMasterVolumeLevel )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][out] */ 
+            _Out_  float *pfLevelDB);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMasterVolumeLevelScalar )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][out] */ 
+            _Out_  float *pfLevel);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetChannelVolumeLevel )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][in] */ 
+            _In_  UINT nChannel,
+            float fLevelDB,
+            /* [unique][in] */ LPCGUID pguidEventContext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetChannelVolumeLevelScalar )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][in] */ 
+            _In_  UINT nChannel,
+            float fLevel,
+            /* [unique][in] */ LPCGUID pguidEventContext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelVolumeLevel )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][in] */ 
+            _In_  UINT nChannel,
+            /* [annotation][out] */ 
+            _Out_  float *pfLevelDB);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelVolumeLevelScalar )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][in] */ 
+            _In_  UINT nChannel,
+            /* [annotation][out] */ 
+            _Out_  float *pfLevel);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMute )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][in] */ 
+            _In_  BOOL bMute,
+            /* [unique][in] */ LPCGUID pguidEventContext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMute )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][out] */ 
+            _Out_  BOOL *pbMute);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVolumeStepInfo )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][out] */ 
+            _Out_  UINT *pnStep,
+            /* [annotation][out] */ 
+            _Out_  UINT *pnStepCount);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *VolumeStepUp )( 
+            IAudioEndpointVolumeEx * This,
+            /* [unique][in] */ LPCGUID pguidEventContext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *VolumeStepDown )( 
+            IAudioEndpointVolumeEx * This,
+            /* [unique][in] */ LPCGUID pguidEventContext);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *QueryHardwareSupport )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][out] */ 
+            _Out_  DWORD *pdwHardwareSupportMask);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVolumeRange )( 
+            IAudioEndpointVolumeEx * This,
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeMindB,
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeMaxdB,
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeIncrementdB);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVolumeRangeChannel )( 
+            IAudioEndpointVolumeEx * This,
+            /* [in] */ UINT iChannel,
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeMindB,
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeMaxdB,
+            /* [annotation][out] */ 
+            _Out_  float *pflVolumeIncrementdB);
+        
+        END_INTERFACE
+    } IAudioEndpointVolumeExVtbl;
+
+    interface IAudioEndpointVolumeEx
+    {
+        CONST_VTBL struct IAudioEndpointVolumeExVtbl *lpVtbl;
+    };
+
+    
+
+#ifdef COBJMACROS
+
+
+#define IAudioEndpointVolumeEx_QueryInterface(This,riid,ppvObject)	\
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
+
+#define IAudioEndpointVolumeEx_AddRef(This)	\
+    ( (This)->lpVtbl -> AddRef(This) ) 
+
+#define IAudioEndpointVolumeEx_Release(This)	\
+    ( (This)->lpVtbl -> Release(This) ) 
+
+
+#define IAudioEndpointVolumeEx_RegisterControlChangeNotify(This,pNotify)	\
+    ( (This)->lpVtbl -> RegisterControlChangeNotify(This,pNotify) ) 
+
+#define IAudioEndpointVolumeEx_UnregisterControlChangeNotify(This,pNotify)	\
+    ( (This)->lpVtbl -> UnregisterControlChangeNotify(This,pNotify) ) 
+
+#define IAudioEndpointVolumeEx_GetChannelCount(This,pnChannelCount)	\
+    ( (This)->lpVtbl -> GetChannelCount(This,pnChannelCount) ) 
+
+#define IAudioEndpointVolumeEx_SetMasterVolumeLevel(This,fLevelDB,pguidEventContext)	\
+    ( (This)->lpVtbl -> SetMasterVolumeLevel(This,fLevelDB,pguidEventContext) ) 
+
+#define IAudioEndpointVolumeEx_SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext)	\
+    ( (This)->lpVtbl -> SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext) ) 
+
+#define IAudioEndpointVolumeEx_GetMasterVolumeLevel(This,pfLevelDB)	\
+    ( (This)->lpVtbl -> GetMasterVolumeLevel(This,pfLevelDB) ) 
+
+#define IAudioEndpointVolumeEx_GetMasterVolumeLevelScalar(This,pfLevel)	\
+    ( (This)->lpVtbl -> GetMasterVolumeLevelScalar(This,pfLevel) ) 
+
+#define IAudioEndpointVolumeEx_SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext)	\
+    ( (This)->lpVtbl -> SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext) ) 
+
+#define IAudioEndpointVolumeEx_SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext)	\
+    ( (This)->lpVtbl -> SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext) ) 
+
+#define IAudioEndpointVolumeEx_GetChannelVolumeLevel(This,nChannel,pfLevelDB)	\
+    ( (This)->lpVtbl -> GetChannelVolumeLevel(This,nChannel,pfLevelDB) ) 
+
+#define IAudioEndpointVolumeEx_GetChannelVolumeLevelScalar(This,nChannel,pfLevel)	\
+    ( (This)->lpVtbl -> GetChannelVolumeLevelScalar(This,nChannel,pfLevel) ) 
+
+#define IAudioEndpointVolumeEx_SetMute(This,bMute,pguidEventContext)	\
+    ( (This)->lpVtbl -> SetMute(This,bMute,pguidEventContext) ) 
+
+#define IAudioEndpointVolumeEx_GetMute(This,pbMute)	\
+    ( (This)->lpVtbl -> GetMute(This,pbMute) ) 
+
+#define IAudioEndpointVolumeEx_GetVolumeStepInfo(This,pnStep,pnStepCount)	\
+    ( (This)->lpVtbl -> GetVolumeStepInfo(This,pnStep,pnStepCount) ) 
+
+#define IAudioEndpointVolumeEx_VolumeStepUp(This,pguidEventContext)	\
+    ( (This)->lpVtbl -> VolumeStepUp(This,pguidEventContext) ) 
+
+#define IAudioEndpointVolumeEx_VolumeStepDown(This,pguidEventContext)	\
+    ( (This)->lpVtbl -> VolumeStepDown(This,pguidEventContext) ) 
+
+#define IAudioEndpointVolumeEx_QueryHardwareSupport(This,pdwHardwareSupportMask)	\
+    ( (This)->lpVtbl -> QueryHardwareSupport(This,pdwHardwareSupportMask) ) 
+
+#define IAudioEndpointVolumeEx_GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB)	\
+    ( (This)->lpVtbl -> GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) ) 
+
+
+#define IAudioEndpointVolumeEx_GetVolumeRangeChannel(This,iChannel,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB)	\
+    ( (This)->lpVtbl -> GetVolumeRangeChannel(This,iChannel,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) ) 
+
+#endif /* COBJMACROS */
+
+
+#endif 	/* C style interface */
+
+
+
+
+#endif 	/* __IAudioEndpointVolumeEx_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_endpointvolume_0000_0003 */
+/* [local] */ 
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
+//#pragma endregion
+//#pragma region Application Family
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0003_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0003_v0_0_s_ifspec;
+
+#ifndef __IAudioMeterInformation_INTERFACE_DEFINED__
+#define __IAudioMeterInformation_INTERFACE_DEFINED__
+
+/* interface IAudioMeterInformation */
+/* [unique][helpstring][nonextensible][uuid][local][object] */ 
+
+
+EXTERN_C const IID IID_IAudioMeterInformation;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+    
+    MIDL_INTERFACE("C02216F6-8C67-4B5B-9D00-D008E73E0064")
+    IAudioMeterInformation : public IUnknown
+    {
+    public:
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPeakValue( 
+            /* [out] */ float *pfPeak) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMeteringChannelCount( 
+            /* [annotation][out] */ 
+            _Out_  UINT *pnChannelCount) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChannelsPeakValues( 
+            /* [in] */ UINT32 u32ChannelCount,
+            /* [size_is][out] */ float *afPeakValues) = 0;
+        
+        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryHardwareSupport( 
+            /* [annotation][out] */ 
+            _Out_  DWORD *pdwHardwareSupportMask) = 0;
+        
+    };
+    
+    
+#else 	/* C style interface */
+
+    typedef struct IAudioMeterInformationVtbl
+    {
+        BEGIN_INTERFACE
+        
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
+            IAudioMeterInformation * This,
+            /* [in] */ REFIID riid,
+            /* [annotation][iid_is][out] */ 
+            _COM_Outptr_  void **ppvObject);
+        
+        ULONG ( STDMETHODCALLTYPE *AddRef )( 
+            IAudioMeterInformation * This);
+        
+        ULONG ( STDMETHODCALLTYPE *Release )( 
+            IAudioMeterInformation * This);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPeakValue )( 
+            IAudioMeterInformation * This,
+            /* [out] */ float *pfPeak);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMeteringChannelCount )( 
+            IAudioMeterInformation * This,
+            /* [annotation][out] */ 
+            _Out_  UINT *pnChannelCount);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelsPeakValues )( 
+            IAudioMeterInformation * This,
+            /* [in] */ UINT32 u32ChannelCount,
+            /* [size_is][out] */ float *afPeakValues);
+        
+        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *QueryHardwareSupport )( 
+            IAudioMeterInformation * This,
+            /* [annotation][out] */ 
+            _Out_  DWORD *pdwHardwareSupportMask);
+        
+        END_INTERFACE
+    } IAudioMeterInformationVtbl;
+
+    interface IAudioMeterInformation
+    {
+        CONST_VTBL struct IAudioMeterInformationVtbl *lpVtbl;
+    };
+
+    
+
+#ifdef COBJMACROS
+
+
+#define IAudioMeterInformation_QueryInterface(This,riid,ppvObject)	\
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
+
+#define IAudioMeterInformation_AddRef(This)	\
+    ( (This)->lpVtbl -> AddRef(This) ) 
+
+#define IAudioMeterInformation_Release(This)	\
+    ( (This)->lpVtbl -> Release(This) ) 
+
+
+#define IAudioMeterInformation_GetPeakValue(This,pfPeak)	\
+    ( (This)->lpVtbl -> GetPeakValue(This,pfPeak) ) 
+
+#define IAudioMeterInformation_GetMeteringChannelCount(This,pnChannelCount)	\
+    ( (This)->lpVtbl -> GetMeteringChannelCount(This,pnChannelCount) ) 
+
+#define IAudioMeterInformation_GetChannelsPeakValues(This,u32ChannelCount,afPeakValues)	\
+    ( (This)->lpVtbl -> GetChannelsPeakValues(This,u32ChannelCount,afPeakValues) ) 
+
+#define IAudioMeterInformation_QueryHardwareSupport(This,pdwHardwareSupportMask)	\
+    ( (This)->lpVtbl -> QueryHardwareSupport(This,pdwHardwareSupportMask) ) 
+
+#endif /* COBJMACROS */
+
+
+#endif 	/* C style interface */
+
+
+
+
+#endif 	/* __IAudioMeterInformation_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_endpointvolume_0000_0004 */
+/* [local] */ 
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
+//#pragma endregion
+
+
+extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0004_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0004_v0_0_s_ifspec;
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/native/windows/coreaudio/lib/include/winapifamily.h b/src/native/windows/coreaudio/lib/include/winapifamily.h
new file mode 100644
index 00000000..bb1f3c18
--- /dev/null
+++ b/src/native/windows/coreaudio/lib/include/winapifamily.h
@@ -0,0 +1,88 @@
+/*
+
+Copyright (c) Microsoft Corporation. All rights reserved.
+
+Module Name:
+
+    winapifamily.h
+
+Abstract:
+
+    Master include file for API family partitioning.
+
+*/
+
+#ifndef _INC_WINAPIFAMILY
+#define _INC_WINAPIFAMILY
+
+#if defined(_MSC_VER) && !defined(MOFCOMP_PASS)
+#pragma once
+#endif // defined(_MSC_VER) && !defined(MOFCOMP_PASS)
+
+/*
+ *  Windows APIs can be placed in a partition represented by one of the below bits.   The 
+ *  WINAPI_FAMILY value determines which partitions are available to the client code.
+ */
+
+#define WINAPI_PARTITION_DESKTOP   0x00000001
+#define WINAPI_PARTITION_APP       0x00000002    
+
+/*
+ * A family may be defined as the union of multiple families. WINAPI_FAMILY should be set
+ * to one of these values.
+ */
+#define WINAPI_FAMILY_APP          WINAPI_PARTITION_APP
+#define WINAPI_FAMILY_DESKTOP_APP  (WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_APP)    
+
+/*
+ * A constant that specifies which code is available to the program's target runtime platform.
+ * By default we use the 'desktop app' family which places no restrictions on the API surface. 
+ * To restrict the API surface to just the App API surface, define WINAPI_FAMILY to WINAPI_FAMILY_APP.
+ */
+#ifndef WINAPI_FAMILY
+#define WINAPI_FAMILY WINAPI_FAMILY_DESKTOP_APP
+#endif
+
+/* Macro to determine if a partition is enabled */
+#define WINAPI_FAMILY_PARTITION(Partition)	((WINAPI_FAMILY & Partition) == Partition)
+
+/* Macro to determine if only one partition is enabled from a set */
+#define WINAPI_FAMILY_ONE_PARTITION(PartitionSet, Partition) ((WINAPI_FAMILY & PartitionSet) == Partition)
+
+/*
+ * Macro examples:
+ *    The following examples are typical macro usage for enabling/restricting access to header code based
+ *    on the target runtime platform. The examples assume a correct setting of the WINAPI_FAMILY macro.
+ *
+ *      App programs:
+ *          Explicitly set WINAPI_FAMILY to WINAPI_PARTITION_APP (cannot access DESKTOP partition)
+ *      Desktop programs:
+ *          Leave WINAPI_FAMILY set to the default above (currently WINAPI_FAMILY_DESKTOP_APP)
+ *
+ *      Note: Other families and partitions may be added in the future.
+ *
+ *
+ * The WINAPI_FAMILY_PARTITION macro:
+ *    Code-block is available to programs that have access to specified partition.
+ *
+ *      Example: Available to App and Desktop programs
+ *          #if WINAPI_FAMILY_PARTITION( WINAPI_PARTITION_APP )
+ *
+ *      Example: Available to Desktop programs
+ *          #if WINAPI_FAMILY_PARTITION( WINAPI_PARTITION_DESKTOP )
+ *
+ *
+ * The WINAPI_FAMILY_ONE_PARTITION macro:
+ *    Code-block is available to programs that have access to specified parition, but not others in the partition set.
+ *
+ *      Example: Available only to App programs
+ *          #if WINAPI_FAMILY_ONE_PARTITION( WINAPI_FAMILY, WINAPI_PARTITION_APP )
+ *
+ *      Example: Available only to Desktop programs
+ *          #if WINAPI_FAMILY_ONE_PARTITION( WINAPI_FAMILY, WINAPI_PARTITION_DESKTOP )
+ *
+ *      Example: Available to App, but not Desktop programs
+ *          #if WINAPI_FAMILY_ONE_PARTITION( WINAPI_FAMILY_DESKTOP_APP, WINAPI_PARTITION_APP )
+ */
+
+#endif  /* !_INC_WINAPIFAMILY */
diff --git a/src/org/jitsi/impl/neomedia/coreaudio/CoreAudioVolumeControl.java b/src/org/jitsi/impl/neomedia/AbstractHardwareVolumeControl.java
similarity index 77%
rename from src/org/jitsi/impl/neomedia/coreaudio/CoreAudioVolumeControl.java
rename to src/org/jitsi/impl/neomedia/AbstractHardwareVolumeControl.java
index b0b4f136..8e3216bd 100644
--- a/src/org/jitsi/impl/neomedia/coreaudio/CoreAudioVolumeControl.java
+++ b/src/org/jitsi/impl/neomedia/AbstractHardwareVolumeControl.java
@@ -4,27 +4,26 @@
  * Distributable under LGPL license.
  * See terms of license at gnu.org.
  */
-package org.jitsi.impl.neomedia.coreaudio;
+package org.jitsi.impl.neomedia;
 
-import org.jitsi.impl.neomedia.*;
 import org.jitsi.impl.neomedia.device.*;
 import org.jitsi.util.*;
 
 /**
- * Implementation of VolumeControl which uses MacOSX sound architecture
- * CoreAudio to change input/output hardware volume.
+ * Abstract implementation of VolumeControl which uses system sound architecture
+ * to change input/output hardware volume.
  *
  * @author Vincent Lucas
  */
-public class CoreAudioVolumeControl
+public abstract class AbstractHardwareVolumeControl
     extends AbstractVolumeControl
 {
     /**
-     * The <tt>Logger</tt> used by the <tt>CoreAudioVolumeControl</tt> class and
-     * its instances for logging output.
+     * The <tt>Logger</tt> used by the <tt>AbstractHarwareVolumeControl</tt>
+     * class and its instances for logging output.
      */
     private static final Logger logger
-        = Logger.getLogger(CoreAudioVolumeControl.class);
+        = Logger.getLogger(AbstractHardwareVolumeControl.class);
 
     /**
      * The media service implementation.
@@ -46,7 +45,7 @@ public class CoreAudioVolumeControl
      * property which specifies the value of the volume level of the new
      * instance
      */
-    public CoreAudioVolumeControl(
+    public AbstractHardwareVolumeControl(
         MediaServiceImpl mediaServiceImpl,
         String volumeLevelConfigurationPropertyName)
     {
@@ -102,11 +101,21 @@ protected void updateHardwareVolume()
         }
 
         // Changes the input volume of the capture device.
-        if(CoreAudioDevice.setInputDeviceVolume(
+        if(this.setInputDeviceVolume(
                     deviceUID,
                     hardwareVolumeLevel) != 0)
         {
-            logger.debug("Could not change CoreAudio input device level");
+            logger.debug("Could not change hardware input device level");
         }
     }
+
+    /**
+     * Changes the device volume via the system API.
+     *
+     * @param deviceUID The device ID.
+     * @param volume The volume requested.
+     *
+     * @return 0 if everything works fine.
+     */
+    protected abstract int setInputDeviceVolume(String deviceUID, float volume);
 }
diff --git a/src/org/jitsi/impl/neomedia/MediaServiceImpl.java b/src/org/jitsi/impl/neomedia/MediaServiceImpl.java
index 2055b523..68581caa 100644
--- a/src/org/jitsi/impl/neomedia/MediaServiceImpl.java
+++ b/src/org/jitsi/impl/neomedia/MediaServiceImpl.java
@@ -21,7 +21,6 @@
 
 import org.jitsi.impl.neomedia.codec.*;
 import org.jitsi.impl.neomedia.codec.video.*;
-import org.jitsi.impl.neomedia.coreaudio.*;
 import org.jitsi.impl.neomedia.device.*;
 import org.jitsi.impl.neomedia.format.*;
 import org.jitsi.impl.neomedia.transform.sdes.*;
@@ -752,10 +751,21 @@ public VolumeControl getInputVolumeControl()
             if(OSUtils.IS_MAC)
             {
                 inputVolumeControl
-                    = new CoreAudioVolumeControl(
+                    = new
+                    org.jitsi.impl.neomedia.maccoreaudio.CoreAudioVolumeControl(
                             this,
                             VolumeControl.CAPTURE_VOLUME_LEVEL_PROPERTY_NAME);
             }
+            /*else if(OSUtils.IS_WINDOWS_VISTA
+                    || OSUtils.IS_WINDOWS_7
+                    || OSUtils.IS_WINDOWS_8)
+            {
+                inputVolumeControl
+                    = new
+                    org.jitsi.impl.neomedia.wincoreaudio.CoreAudioVolumeControl(
+                            this,
+                            VolumeControl.CAPTURE_VOLUME_LEVEL_PROPERTY_NAME);
+            }*/
             else
             {
                 inputVolumeControl
diff --git a/src/org/jitsi/impl/neomedia/coreaudio/CoreAudioDevice.java b/src/org/jitsi/impl/neomedia/maccoreaudio/CoreAudioDevice.java
similarity index 88%
rename from src/org/jitsi/impl/neomedia/coreaudio/CoreAudioDevice.java
rename to src/org/jitsi/impl/neomedia/maccoreaudio/CoreAudioDevice.java
index 0ed93340..21d7481a 100644
--- a/src/org/jitsi/impl/neomedia/coreaudio/CoreAudioDevice.java
+++ b/src/org/jitsi/impl/neomedia/maccoreaudio/CoreAudioDevice.java
@@ -4,12 +4,12 @@
  * Distributable under LGPL license.
  * See terms of license at gnu.org.
  */
-package org.jitsi.impl.neomedia.coreaudio;
+package org.jitsi.impl.neomedia.maccoreaudio;
 
 import org.jitsi.util.*;
 
 /**
- * JNI link to the CoreAudio library.
+ * JNI link to the MacOSX CoreAudio library.
  *
  * @author Vincent Lucqs
  */
@@ -17,7 +17,7 @@ public class CoreAudioDevice
 {
     static
     {
-        System.loadLibrary("jncoreaudio");
+        System.loadLibrary("jnmaccoreaudio");
     }
 
 //    public static native AudioDeviceID getDevice(
diff --git a/src/org/jitsi/impl/neomedia/maccoreaudio/CoreAudioVolumeControl.java b/src/org/jitsi/impl/neomedia/maccoreaudio/CoreAudioVolumeControl.java
new file mode 100644
index 00000000..2df72ad7
--- /dev/null
+++ b/src/org/jitsi/impl/neomedia/maccoreaudio/CoreAudioVolumeControl.java
@@ -0,0 +1,64 @@
+/*
+ * Jitsi, the OpenSource Java VoIP and Instant Messaging client.
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jitsi.impl.neomedia.maccoreaudio;
+
+import org.jitsi.impl.neomedia.*;
+import org.jitsi.impl.neomedia.device.*;
+import org.jitsi.util.*;
+
+/**
+ * Implementation of VolumeControl which uses MacOSX sound architecture
+ * CoreAudio to change input/output hardware volume.
+ *
+ * @author Vincent Lucas
+ */
+public class CoreAudioVolumeControl
+    extends AbstractHardwareVolumeControl
+{
+    /**
+     * The <tt>Logger</tt> used by the <tt>CoreAudioVolumeControl</tt> class and
+     * its instances for logging output.
+     */
+    private static final Logger logger
+        = Logger.getLogger(CoreAudioVolumeControl.class);
+
+    /**
+     * Creates volume control instance and initializes initial level value
+     * if stored in the configuration service.
+     *
+     * @param mediaServiceImpl The media service implementation.
+     * @param volumeLevelConfigurationPropertyName the name of the configuration
+     * property which specifies the value of the volume level of the new
+     * instance
+     */
+    public CoreAudioVolumeControl(
+        MediaServiceImpl mediaServiceImpl,
+        String volumeLevelConfigurationPropertyName)
+    {
+        super(mediaServiceImpl, volumeLevelConfigurationPropertyName);
+    }
+
+    /**
+     * Changes the device volume via the system API.
+     *
+     * @param deviceUID The device ID.
+     * @param volume The volume requested.
+     *
+     * @return 0 if everything works fine.
+     */
+    protected int setInputDeviceVolume(String deviceUID, float volume)
+    {
+        // Changes the input volume of the capture device.
+        if(CoreAudioDevice.setInputDeviceVolume(deviceUID, volume) != 0)
+        {
+            logger.debug(
+                    "Could not change MacOsX CoreAudio input device level");
+            return -1;
+        }
+        return 0;
+    }
+}
diff --git a/src/org/jitsi/impl/neomedia/wincoreaudio/CoreAudioDevice.java b/src/org/jitsi/impl/neomedia/wincoreaudio/CoreAudioDevice.java
new file mode 100644
index 00000000..3477f5ec
--- /dev/null
+++ b/src/org/jitsi/impl/neomedia/wincoreaudio/CoreAudioDevice.java
@@ -0,0 +1,55 @@
+/*
+ * Jitsi, the OpenSource Java VoIP and Instant Messaging client.
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jitsi.impl.neomedia.wincoreaudio;
+
+import org.jitsi.util.*;
+
+/**
+ * JNI link to the Windows CoreAudio library.
+ *
+ * @author Vincent Lucqs
+ */
+public class CoreAudioDevice
+{
+    static
+    {
+        System.loadLibrary("jnwincoreaudio");
+    }
+
+//    public static native AudioDeviceID getDevice(
+//            String deviceUID);
+
+    public static String getDeviceName(
+            String deviceUID)
+    {
+        byte[] deviceNameBytes = getDeviceNameBytes(deviceUID);
+        String deviceName = StringUtils.newString(deviceNameBytes);
+
+        return deviceName;
+    }
+
+    public static native int initDevices();
+
+    public static native void freeDevices();
+
+    public static native byte[] getDeviceNameBytes(
+            String deviceUID);
+
+    public static native int setInputDeviceVolume(
+            String deviceUID,
+            float volume);
+
+    public static native int setOutputDeviceVolume(
+            String deviceUID,
+            float volume);
+
+    public static native float getInputDeviceVolume(
+            String deviceUID);
+
+    public static native float getOutputDeviceVolume(
+            String deviceUID);
+}
diff --git a/src/org/jitsi/impl/neomedia/wincoreaudio/CoreAudioVolumeControl.java b/src/org/jitsi/impl/neomedia/wincoreaudio/CoreAudioVolumeControl.java
new file mode 100644
index 00000000..a14c77f4
--- /dev/null
+++ b/src/org/jitsi/impl/neomedia/wincoreaudio/CoreAudioVolumeControl.java
@@ -0,0 +1,74 @@
+/*
+ * Jitsi, the OpenSource Java VoIP and Instant Messaging client.
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jitsi.impl.neomedia.wincoreaudio;
+
+import org.jitsi.impl.neomedia.*;
+import org.jitsi.impl.neomedia.device.*;
+import org.jitsi.util.*;
+
+/**
+ * Implementation of VolumeControl which uses Windows sound architecture
+ * CoreAudio to change input/output hardware volume.
+ *
+ * @author Vincent Lucas
+ */
+public class CoreAudioVolumeControl
+    extends AbstractHardwareVolumeControl
+{
+    /**
+     * The <tt>Logger</tt> used by the <tt>CoreAudioVolumeControl</tt> class and
+     * its instances for logging output.
+     */
+    private static final Logger logger
+        = Logger.getLogger(CoreAudioVolumeControl.class);
+
+    /**
+     * Creates volume control instance and initializes initial level value
+     * if stored in the configuration service.
+     *
+     * @param mediaServiceImpl The media service implementation.
+     * @param volumeLevelConfigurationPropertyName the name of the configuration
+     * property which specifies the value of the volume level of the new
+     * instance
+     */
+    public CoreAudioVolumeControl(
+        MediaServiceImpl mediaServiceImpl,
+        String volumeLevelConfigurationPropertyName)
+    {
+        super(mediaServiceImpl, volumeLevelConfigurationPropertyName);
+    }
+
+    /**
+     * Changes the device volume via the system API.
+     *
+     * @param deviceUID The device ID.
+     * @param volume The volume requested.
+     *
+     * @return 0 if everything works fine.
+     */
+    protected int setInputDeviceVolume(String deviceUID, float volume)
+    {
+        if(CoreAudioDevice.initDevices() == -1)
+        {
+            CoreAudioDevice.freeDevices();
+            logger.debug(
+                    "Could not initialize Windows CoreAudio input devices");
+            return -1;
+        }
+        // Changes the input volume of the capture device.
+        if(CoreAudioDevice.setInputDeviceVolume(deviceUID, volume) != 0)
+        {
+            CoreAudioDevice.freeDevices();
+            logger.debug(
+                    "Could not change Windows CoreAudio input device level");
+            return -1;
+        }
+        CoreAudioDevice.freeDevices();
+
+        return 0;
+    }
+}
diff --git a/src/org/jitsi/util/OSUtils.java b/src/org/jitsi/util/OSUtils.java
index e42a5490..dc91f95d 100644
--- a/src/org/jitsi/util/OSUtils.java
+++ b/src/org/jitsi/util/OSUtils.java
@@ -57,6 +57,9 @@ public class OSUtils
     /** <tt>true</tt> if OS is Windows 7. */
     public static final boolean IS_WINDOWS_7;
 
+    /** <tt>true</tt> if OS is Windows 8. */
+    public static final boolean IS_WINDOWS_8;
+
     /** <tt>true</tt> if OS is FreeBSD. */
     public static final boolean IS_FREEBSD;
 
@@ -73,6 +76,7 @@ public class OSUtils
             IS_WINDOWS = false;
             IS_WINDOWS_VISTA = false;
             IS_WINDOWS_7 = false;
+            IS_WINDOWS_8 = false;
             IS_FREEBSD = false;
         }
         else if (osName.startsWith("Linux"))
@@ -93,6 +97,7 @@ else if (osName.startsWith("Linux"))
             IS_WINDOWS = false;
             IS_WINDOWS_VISTA = false;
             IS_WINDOWS_7 = false;
+            IS_WINDOWS_8 = false;
             IS_FREEBSD = false;
         }
         else if (osName.startsWith("Mac"))
@@ -103,6 +108,7 @@ else if (osName.startsWith("Mac"))
             IS_WINDOWS = false;
             IS_WINDOWS_VISTA = false;
             IS_WINDOWS_7 = false;
+            IS_WINDOWS_8 = false;
             IS_FREEBSD = false;
         }
         else if (osName.startsWith("Windows"))
@@ -113,6 +119,7 @@ else if (osName.startsWith("Windows"))
             IS_WINDOWS = true;
             IS_WINDOWS_VISTA = (osName.indexOf("Vista") != -1);
             IS_WINDOWS_7 = (osName.indexOf("7") != -1);
+            IS_WINDOWS_8 = (osName.indexOf("8") != -1);
             IS_FREEBSD = false;
         }
         else if (osName.startsWith("FreeBSD"))
@@ -123,6 +130,7 @@ else if (osName.startsWith("FreeBSD"))
             IS_WINDOWS = false;
             IS_WINDOWS_VISTA = false;
             IS_WINDOWS_7 = false;
+            IS_WINDOWS_8 = false;
             IS_FREEBSD = true;
         }
         else
@@ -133,6 +141,7 @@ else if (osName.startsWith("FreeBSD"))
             IS_WINDOWS = false;
             IS_WINDOWS_VISTA = false;
             IS_WINDOWS_7 = false;
+            IS_WINDOWS_8 = false;
             IS_FREEBSD = false;
         }
 
-- 
GitLab