]> git.sesse.net Git - vlc/blobdiff - modules/audio_output/windows_audio_common.h
auhal: do not change volume when muted
[vlc] / modules / audio_output / windows_audio_common.h
index 03e7a2fcdfaf0a024bfbf5b8671bed43f649ac7d..167710d4d714daeff035f923af9dd3c1a7203c93 100644 (file)
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * windows_common.h: Windows Audio common code
+ * windows_audio_common.h: Windows Audio common code
  *****************************************************************************
  * Copyright (C) 2001-2009 VideoLAN
  * $Id$
@@ -7,19 +7,19 @@
  * Authors: Gildas Bazin <gbazin@videolan.org>
  *          Jean-Baptiste Kempf <jb@videolan.org>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
 #include <windows.h>
 #define INITGUID /* Doesn't define the DEFINE_GUID as extern */
 #include <initguid.h>
 
-#ifndef WAVE_FORMAT_IEEE_FLOAT
-#   define WAVE_FORMAT_IEEE_FLOAT 0x0003
-#endif
-
-#ifndef WAVE_FORMAT_DOLBY_AC3_SPDIF
-#   define WAVE_FORMAT_DOLBY_AC3_SPDIF 0x0092
-#endif
-
-#ifndef WAVE_FORMAT_EXTENSIBLE
-#define  WAVE_FORMAT_EXTENSIBLE   0xFFFE
-#endif
+#include <vlc_codecs.h>
 
 DEFINE_GUID( _KSDATAFORMAT_SUBTYPE_IEEE_FLOAT, WAVE_FORMAT_IEEE_FLOAT, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 );
 DEFINE_GUID( _KSDATAFORMAT_SUBTYPE_PCM, WAVE_FORMAT_PCM, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 );
@@ -54,24 +44,8 @@ static const GUID __KSDATAFORMAT_SUBTYPE_IEEE_FLOAT = {WAVE_FORMAT_IEEE_FLOAT, 0
 static const GUID __KSDATAFORMAT_SUBTYPE_PCM = {WAVE_FORMAT_PCM, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};
 static const GUID __KSDATAFORMAT_SUBTYPE_DOLBY_AC3_SPDIF = {WAVE_FORMAT_DOLBY_AC3_SPDIF, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};
 
-
 #define FRAMES_NUM 8                                      /* Needs to be > 3 */
 
-#ifndef _WAVEFORMATEXTENSIBLE_
-typedef struct {
-    WAVEFORMATEX    Format;
-    union {
-        WORD wValidBitsPerSample;       /* bits of precision  */
-        WORD wSamplesPerBlock;          /* valid if wBitsPerSample==0 */
-        WORD wReserved;                 /* If neither applies, set to zero. */
-    } Samples;
-    DWORD           dwChannelMask;      /* which channels are */
-                                        /* present in stream  */
-    GUID            SubFormat;
-} WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE;
-#endif
-
-
 #include <dsound.h>
 
 #ifndef SPEAKER_FRONT_LEFT
@@ -97,41 +71,42 @@ typedef struct {
 #endif
 
 #ifndef DSSPEAKER_DSSPEAKER_DIRECTOUT
-#   define DSSPEAKER_DSSPEAKER_DIRECTOUT         0x00000000
+#   define DSSPEAKER_DSSPEAKER_DIRECTOUT  0x00000000
 #endif
 #ifndef DSSPEAKER_HEADPHONE
-#   define DSSPEAKER_HEADPHONE         0x00000001
+#   define DSSPEAKER_HEADPHONE            0x00000001
 #endif
 #ifndef DSSPEAKER_MONO
-#   define DSSPEAKER_MONO              0x00000002
+#   define DSSPEAKER_MONO                 0x00000002
 #endif
 #ifndef DSSPEAKER_QUAD
-#   define DSSPEAKER_QUAD              0x00000003
+#   define DSSPEAKER_QUAD                 0x00000003
 #endif
 #ifndef DSSPEAKER_STEREO
-#   define DSSPEAKER_STEREO            0x00000004
+#   define DSSPEAKER_STEREO               0x00000004
 #endif
 #ifndef DSSPEAKER_SURROUND
-#   define DSSPEAKER_SURROUND          0x00000005
+#   define DSSPEAKER_SURROUND             0x00000005
 #endif
 #ifndef DSSPEAKER_5POINT1
-#   define DSSPEAKER_5POINT1           0x00000006
+#   define DSSPEAKER_5POINT1              0x00000006
+#endif
+#ifndef DSSPEAKER_5POINT1_BACK
+#   define DSSPEAKER_5POINT1_BACK         DSSPEAKER_5POINT1
 #endif
 #ifndef DSSPEAKER_7POINT1
-#   define DSSPEAKER_7POINT1           0x00000007
+#   define DSSPEAKER_7POINT1              0x00000007
 #endif
 #ifndef DSSPEAKER_7POINT1_SURROUND
-#   define DSSPEAKER_7POINT1_SURROUND           0x00000008
+#   define DSSPEAKER_7POINT1_SURROUND     0x00000008
+#endif
+#ifndef DSSPEAKER_5POINT1_SURROUND
+#   define DSSPEAKER_5POINT1_SURROUND     0x00000009
 #endif
 #ifndef DSSPEAKER_7POINT1_WIDE
-#   define DSSPEAKER_7POINT1_WIDE           DSSPEAKER_7POINT1
+#   define DSSPEAKER_7POINT1_WIDE         DSSPEAKER_7POINT1
 #endif
 
-static const uint32_t pi_channels_src[] =
-    { AOUT_CHAN_LEFT, AOUT_CHAN_RIGHT,
-      AOUT_CHAN_MIDDLELEFT, AOUT_CHAN_MIDDLERIGHT,
-      AOUT_CHAN_REARLEFT, AOUT_CHAN_REARRIGHT, AOUT_CHAN_REARCENTER,
-      AOUT_CHAN_CENTER, AOUT_CHAN_LFE, 0 };
 static const uint32_t pi_channels_in[] =
     { SPEAKER_FRONT_LEFT, SPEAKER_FRONT_RIGHT,
       SPEAKER_SIDE_LEFT, SPEAKER_SIDE_RIGHT,