1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-30 15:49:41 +02:00

Possible fix for bug #435

I say possible because I can't fully test it as my motherboard
audio device doesn't show up in Windows (don't know why yet).

So, because of that and because this "fix" needs a little discussion
amongst the troops, I've ifdef'd it with EXPERIMENTAL_HAVE_DEVICE_CHANGE
and have disabled it by default.

What is does is it sets up a device change listener and performs an
automatic rescan when a change is detected.  (That's the part that
needs discussion.)
This commit is contained in:
lllucius 2014-12-06 04:11:31 +00:00
parent abaac6b443
commit 71d8b0d8ec
11 changed files with 158 additions and 27 deletions

47
configure vendored
View File

@ -2813,6 +2813,7 @@ fi
gt_needs="$gt_needs "
as_fn_append ac_header_list " alloca.h"
as_fn_append ac_header_list " libudev.h"
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
@ -23541,6 +23542,10 @@ $as_echo "#define _FILE_OFFSET_BITS 32" >>confdefs.h
*)
CONFIGHEADER="configunix.h"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
$as_echo_n "checking for library containing dlopen... " >&6; }
if ${ac_cv_search_dlopen+:} false; then :
@ -24040,6 +24045,48 @@ _ACEOF
fi
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for udev_new in -ludev" >&5
$as_echo_n "checking for udev_new in -ludev... " >&6; }
if ${ac_cv_lib_udev_udev_new+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ludev $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char udev_new ();
int
main ()
{
return udev_new ();
;
return 0;
}
_ACEOF
if ac_fn_cxx_try_link "$LINENO"; then :
ac_cv_lib_udev_udev_new=yes
else
ac_cv_lib_udev_udev_new=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_udev_udev_new" >&5
$as_echo "$ac_cv_lib_udev_udev_new" >&6; }
if test "x$ac_cv_lib_udev_udev_new" = xyes; then :
udev_libs=" -ludev"
fi
LIBS="${LIBS}${udev_libs}"
;;
esac

View File

@ -606,6 +606,8 @@ case "${host_os}" in
dnl Unix configuration
CONFIGHEADER="configunix.h"
AC_CHECK_HEADERS_ONCE(libudev.h)
dnl On Unix we always use dlopen
AC_SEARCH_LIBS([dlopen], [dl])
if [[ "$ac_cv_search_dlopen" = no ]]; then
@ -657,6 +659,9 @@ case "${host_os}" in
AC_CHECK_LIB(rt, clock_gettime, [rt_libs=" -lrt"])
LIBS="${LIBS}${rt_libs}"
AC_CHECK_FUNCS([clock_gettime nanosleep])
AC_CHECK_LIB(udev, udev_new, [udev_libs=" -ludev"])
LIBS="${LIBS}${udev_libs}"
;;
esac

View File

@ -937,6 +937,7 @@
28BD8AB4101DF4C700686679 /* GetAllMenuCommands.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28BD8AAE101DF4C600686679 /* GetAllMenuCommands.cpp */; };
28C3946D1818356800FDDAC9 /* AudacityLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28C3946B1818356800FDDAC9 /* AudacityLogger.cpp */; };
28CCDD000F939FD70081F2FC /* FileHistory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28CCDCFF0F939FD70081F2FC /* FileHistory.cpp */; };
28D000A51A32920C00367B21 /* DeviceChange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28D000A31A32920C00367B21 /* DeviceChange.cpp */; };
28D540050FD1912A00FA7C75 /* AppCommandEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28D53FFA0FD1912A00FA7C75 /* AppCommandEvent.cpp */; };
28D540060FD1912A00FA7C75 /* CommandBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28D53FFE0FD1912A00FA7C75 /* CommandBuilder.cpp */; };
28D540070FD1912A00FA7C75 /* CommandHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28D540000FD1912A00FA7C75 /* CommandHandler.cpp */; };
@ -3697,6 +3698,8 @@
28C3946C1818356800FDDAC9 /* AudacityLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudacityLogger.h; sourceTree = "<group>"; };
28CCDCFF0F939FD70081F2FC /* FileHistory.cpp */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.cpp.cpp; path = FileHistory.cpp; sourceTree = "<group>"; tabWidth = 3; };
28CCDD040F93A0B20081F2FC /* FileHistory.h */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.c.h; path = FileHistory.h; sourceTree = "<group>"; tabWidth = 3; };
28D000A31A32920C00367B21 /* DeviceChange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeviceChange.cpp; sourceTree = "<group>"; };
28D000A41A32920C00367B21 /* DeviceChange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeviceChange.h; sourceTree = "<group>"; };
28D53FFA0FD1912A00FA7C75 /* AppCommandEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.cpp.cpp; path = AppCommandEvent.cpp; sourceTree = "<group>"; tabWidth = 3; };
28D53FFB0FD1912A00FA7C75 /* AppCommandEvent.h */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.c.h; path = AppCommandEvent.h; sourceTree = "<group>"; tabWidth = 3; };
28D53FFC0FD1912A00FA7C75 /* BatchEvalCommand.h */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.c.h; path = BatchEvalCommand.h; sourceTree = "<group>"; tabWidth = 3; };
@ -4961,7 +4964,6 @@
1790AFC409883BFD008A330A /* src */ = {
isa = PBXGroup;
children = (
28F996D91A2A9261008FEEF3 /* AudioIOListener.h */,
1790AFDC09883BFD008A330A /* blockfile */,
174D9025098C78AF00D5909F /* commands */,
1790AFFD09883BFD008A330A /* effects */,
@ -4985,6 +4987,7 @@
28C3946C1818356800FDDAC9 /* AudacityLogger.h */,
1790AFD209883BFD008A330A /* AudioIO.cpp */,
1790AFD309883BFD008A330A /* AudioIO.h */,
28F996D91A2A9261008FEEF3 /* AudioIOListener.h */,
28560C8F0A75E40F00A3429E /* AutoRecovery.cpp */,
28560C900A75E40F00A3429E /* AutoRecovery.h */,
1790AFD409883BFD008A330A /* BatchCommandDialog.cpp */,
@ -5003,6 +5006,8 @@
1790AFF509883BFD008A330A /* CrossFade.h */,
2849B4600A7444BE00ECF12D /* Dependencies.cpp */,
2849B4610A7444BE00ECF12D /* Dependencies.h */,
28D000A31A32920C00367B21 /* DeviceChange.cpp */,
28D000A41A32920C00367B21 /* DeviceChange.h */,
8484F31213086237002DF7F0 /* DeviceManager.cpp */,
8484F31313086237002DF7F0 /* DeviceManager.h */,
1790AFF709883BFD008A330A /* DirManager.cpp */,
@ -9155,6 +9160,7 @@
28001B4B1A0F0EB6007DD161 /* SpectralSelectionBar.cpp in Sources */,
28BB98051A15BE6800D1CC80 /* NoiseReduction.cpp in Sources */,
28285C801A27A81600BC2205 /* AudioUnitCocoaHelper.mm in Sources */,
28D000A51A32920C00367B21 /* DeviceChange.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View File

@ -33,6 +33,7 @@
#include "AudioIO.h"
#include "DeviceChange.h"
#include "DeviceManager.h"
#include "toolbars/DeviceToolBar.h"
@ -311,6 +312,11 @@ void DeviceManager::Rescan()
//private constructor - Singleton.
DeviceManager::DeviceManager()
#if defined(EXPERIMENTAL_DEVICE_CHANGE_HANDLER)
#if defined(HAVE_DEVICE_CHANGE)
: DeviceChangeHandler()
#endif
#endif
{
m_inited = false;
}
@ -323,4 +329,20 @@ DeviceManager::~DeviceManager()
void DeviceManager::Init()
{
Rescan();
#if defined(EXPERIMENTAL_DEVICE_CHANGE_HANDLER)
#if defined(HAVE_DEVICE_CHANGE)
DeviceChangeHandler::Enable(true);
#endif
#endif
}
#if defined(EXPERIMENTAL_DEVICE_CHANGE_HANDLER)
#if defined(HAVE_DEVICE_CHANGE)
void DeviceManager::DeviceChangeNotification()
{
Rescan();
return;
}
#endif
#endif

View File

@ -21,6 +21,10 @@
#include <vector>
#include "wx/wx.h"
#if defined(EXPERIMENTAL_DEVICE_CHANGE_HANDLER)
#include "DeviceChange.h"
#endif
typedef struct DeviceSourceMap {
int deviceIndex;
int sourceIndex;
@ -35,6 +39,11 @@ typedef struct DeviceSourceMap {
wxString MakeDeviceSourceString(const DeviceSourceMap *map);
class DeviceManager
#if defined(EXPERIMENTAL_DEVICE_CHANGE_HANDLER)
#if defined(HAVE_DEVICE_CHANGE)
: public DeviceChangeHandler
#endif
#endif
{
public:
/// Gets the singleton instance
@ -53,7 +62,14 @@ class DeviceManager
const std::vector<DeviceSourceMap> &GetInputDeviceMaps();
const std::vector<DeviceSourceMap> &GetOutputDeviceMaps();
protected:
#if defined(EXPERIMENTAL_DEVICE_CHANGE_HANDLER)
#if defined(HAVE_DEVICE_CHANGE)
// DeviceChangeHandler implementation
void DeviceChangeNotification();
#endif
#endif
protected:
//private constructor - Singleton.
DeviceManager();
virtual ~DeviceManager();

View File

@ -191,6 +191,8 @@
// Define to make the meters look like a row of LEDs
//#define EXPERIMENTAL_METER_LED_STYLE
// Define to enable the device change handler
//#define EXPERIMENTAL_DEVICE_CHANGE_HANDLER
// Define for new noise reduction effect from Paul Licameli.
#define EXPERIMENTAL_NOISE_REDUCTION

View File

@ -116,6 +116,8 @@ audacity_SOURCES = \
CaptureEvents.h \
Dependencies.cpp \
Dependencies.h \
DeviceChange.cpp \
DeviceChange.h \
DeviceManager.cpp \
DeviceManager.h \
Envelope.cpp \

View File

@ -287,18 +287,19 @@ am__audacity_SOURCES_DIST = BlockFile.cpp BlockFile.h DirManager.cpp \
BatchCommandDialog.h BatchCommands.cpp BatchCommands.h \
BatchProcessDialog.cpp BatchProcessDialog.h Benchmark.cpp \
Benchmark.h CaptureEvents.cpp CaptureEvents.h Dependencies.cpp \
Dependencies.h DeviceManager.cpp DeviceManager.h Envelope.cpp \
Envelope.h Experimental.h FFmpeg.cpp FFmpeg.h FFT.cpp FFT.h \
FileIO.cpp FileIO.h FileNames.cpp FileNames.h float_cast.h \
FreqWindow.cpp FreqWindow.h HelpText.cpp HelpText.h \
HistoryWindow.cpp HistoryWindow.h ImageManipulation.cpp \
ImageManipulation.h InterpolateAudio.cpp InterpolateAudio.h \
LabelDialog.cpp LabelDialog.h LabelTrack.cpp LabelTrack.h \
LangChoice.cpp LangChoice.h Languages.cpp Languages.h \
Legacy.cpp Legacy.h Lyrics.cpp Lyrics.h LyricsWindow.cpp \
LyricsWindow.h MacroMagic.h Matrix.cpp Matrix.h Menus.cpp \
Menus.h Mix.cpp Mix.h MixerBoard.cpp MixerBoard.h \
ModuleManager.cpp ModuleManager.h PitchName.cpp PitchName.h \
Dependencies.h DeviceChange.cpp DeviceChange.h \
DeviceManager.cpp DeviceManager.h Envelope.cpp Envelope.h \
Experimental.h FFmpeg.cpp FFmpeg.h FFT.cpp FFT.h FileIO.cpp \
FileIO.h FileNames.cpp FileNames.h float_cast.h FreqWindow.cpp \
FreqWindow.h HelpText.cpp HelpText.h HistoryWindow.cpp \
HistoryWindow.h ImageManipulation.cpp ImageManipulation.h \
InterpolateAudio.cpp InterpolateAudio.h LabelDialog.cpp \
LabelDialog.h LabelTrack.cpp LabelTrack.h LangChoice.cpp \
LangChoice.h Languages.cpp Languages.h Legacy.cpp Legacy.h \
Lyrics.cpp Lyrics.h LyricsWindow.cpp LyricsWindow.h \
MacroMagic.h Matrix.cpp Matrix.h Menus.cpp Menus.h Mix.cpp \
Mix.h MixerBoard.cpp MixerBoard.h ModuleManager.cpp \
ModuleManager.h PitchName.cpp PitchName.h \
PlatformCompatibility.cpp PlatformCompatibility.h \
PluginManager.cpp PluginManager.h Printing.cpp Printing.h \
Profiler.cpp Profiler.h Project.cpp Project.h RealFFTf.cpp \
@ -525,6 +526,7 @@ am_audacity_OBJECTS = $(am__objects_1) audacity-AboutDialog.$(OBJEXT) \
audacity-BatchProcessDialog.$(OBJEXT) \
audacity-Benchmark.$(OBJEXT) audacity-CaptureEvents.$(OBJEXT) \
audacity-Dependencies.$(OBJEXT) \
audacity-DeviceChange.$(OBJEXT) \
audacity-DeviceManager.$(OBJEXT) audacity-Envelope.$(OBJEXT) \
audacity-FFmpeg.$(OBJEXT) audacity-FFT.$(OBJEXT) \
audacity-FileIO.$(OBJEXT) audacity-FileNames.$(OBJEXT) \
@ -1154,18 +1156,19 @@ audacity_SOURCES = $(libaudacity_la_SOURCES) AboutDialog.cpp \
BatchCommandDialog.h BatchCommands.cpp BatchCommands.h \
BatchProcessDialog.cpp BatchProcessDialog.h Benchmark.cpp \
Benchmark.h CaptureEvents.cpp CaptureEvents.h Dependencies.cpp \
Dependencies.h DeviceManager.cpp DeviceManager.h Envelope.cpp \
Envelope.h Experimental.h FFmpeg.cpp FFmpeg.h FFT.cpp FFT.h \
FileIO.cpp FileIO.h FileNames.cpp FileNames.h float_cast.h \
FreqWindow.cpp FreqWindow.h HelpText.cpp HelpText.h \
HistoryWindow.cpp HistoryWindow.h ImageManipulation.cpp \
ImageManipulation.h InterpolateAudio.cpp InterpolateAudio.h \
LabelDialog.cpp LabelDialog.h LabelTrack.cpp LabelTrack.h \
LangChoice.cpp LangChoice.h Languages.cpp Languages.h \
Legacy.cpp Legacy.h Lyrics.cpp Lyrics.h LyricsWindow.cpp \
LyricsWindow.h MacroMagic.h Matrix.cpp Matrix.h Menus.cpp \
Menus.h Mix.cpp Mix.h MixerBoard.cpp MixerBoard.h \
ModuleManager.cpp ModuleManager.h PitchName.cpp PitchName.h \
Dependencies.h DeviceChange.cpp DeviceChange.h \
DeviceManager.cpp DeviceManager.h Envelope.cpp Envelope.h \
Experimental.h FFmpeg.cpp FFmpeg.h FFT.cpp FFT.h FileIO.cpp \
FileIO.h FileNames.cpp FileNames.h float_cast.h FreqWindow.cpp \
FreqWindow.h HelpText.cpp HelpText.h HistoryWindow.cpp \
HistoryWindow.h ImageManipulation.cpp ImageManipulation.h \
InterpolateAudio.cpp InterpolateAudio.h LabelDialog.cpp \
LabelDialog.h LabelTrack.cpp LabelTrack.h LangChoice.cpp \
LangChoice.h Languages.cpp Languages.h Legacy.cpp Legacy.h \
Lyrics.cpp Lyrics.h LyricsWindow.cpp LyricsWindow.h \
MacroMagic.h Matrix.cpp Matrix.h Menus.cpp Menus.h Mix.cpp \
Mix.h MixerBoard.cpp MixerBoard.h ModuleManager.cpp \
ModuleManager.h PitchName.cpp PitchName.h \
PlatformCompatibility.cpp PlatformCompatibility.h \
PluginManager.cpp PluginManager.h Printing.cpp Printing.h \
Profiler.cpp Profiler.h Project.cpp Project.h RealFFTf.cpp \
@ -1984,6 +1987,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-BlockFile.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-CaptureEvents.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Dependencies.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-DeviceChange.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-DeviceManager.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-DirManager.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Dither.Po@am__quote@
@ -2772,6 +2776,20 @@ audacity-Dependencies.obj: Dependencies.cpp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o audacity-Dependencies.obj `if test -f 'Dependencies.cpp'; then $(CYGPATH_W) 'Dependencies.cpp'; else $(CYGPATH_W) '$(srcdir)/Dependencies.cpp'; fi`
audacity-DeviceChange.o: DeviceChange.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT audacity-DeviceChange.o -MD -MP -MF $(DEPDIR)/audacity-DeviceChange.Tpo -c -o audacity-DeviceChange.o `test -f 'DeviceChange.cpp' || echo '$(srcdir)/'`DeviceChange.cpp
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audacity-DeviceChange.Tpo $(DEPDIR)/audacity-DeviceChange.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DeviceChange.cpp' object='audacity-DeviceChange.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o audacity-DeviceChange.o `test -f 'DeviceChange.cpp' || echo '$(srcdir)/'`DeviceChange.cpp
audacity-DeviceChange.obj: DeviceChange.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT audacity-DeviceChange.obj -MD -MP -MF $(DEPDIR)/audacity-DeviceChange.Tpo -c -o audacity-DeviceChange.obj `if test -f 'DeviceChange.cpp'; then $(CYGPATH_W) 'DeviceChange.cpp'; else $(CYGPATH_W) '$(srcdir)/DeviceChange.cpp'; fi`
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audacity-DeviceChange.Tpo $(DEPDIR)/audacity-DeviceChange.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='DeviceChange.cpp' object='audacity-DeviceChange.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o audacity-DeviceChange.obj `if test -f 'DeviceChange.cpp'; then $(CYGPATH_W) 'DeviceChange.cpp'; else $(CYGPATH_W) '$(srcdir)/DeviceChange.cpp'; fi`
audacity-DeviceManager.o: DeviceManager.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT audacity-DeviceManager.o -MD -MP -MF $(DEPDIR)/audacity-DeviceManager.Tpo -c -o audacity-DeviceManager.o `test -f 'DeviceManager.cpp' || echo '$(srcdir)/'`DeviceManager.cpp
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audacity-DeviceManager.Tpo $(DEPDIR)/audacity-DeviceManager.Po

View File

@ -53,6 +53,9 @@
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the <libudev.h> header file. */
#undef HAVE_LIBUDEV_H
/* Define if you have C99's lrint function. */
#undef HAVE_LRINT

View File

@ -244,6 +244,7 @@
<ClCompile Include="..\..\..\src\CaptureEvents.cpp" />
<ClCompile Include="..\..\..\src\commands\OpenSaveCommands.cpp" />
<ClCompile Include="..\..\..\src\Dependencies.cpp" />
<ClCompile Include="..\..\..\src\DeviceChange.cpp" />
<ClCompile Include="..\..\..\src\DeviceManager.cpp" />
<ClCompile Include="..\..\..\src\DirManager.cpp" />
<ClCompile Include="..\..\..\src\Dither.cpp" />
@ -519,6 +520,7 @@
<ClInclude Include="..\..\..\src\BlockFile.h" />
<ClInclude Include="..\..\..\src\CaptureEvents.h" />
<ClInclude Include="..\..\..\src\commands\OpenSaveCommands.h" />
<ClInclude Include="..\..\..\src\DeviceChange.h" />
<ClInclude Include="..\..\..\src\effects\EffectRack.h" />
<ClInclude Include="..\..\..\src\effects\NoiseReduction.h" />
<ClInclude Include="..\..\..\src\effects\Phaser.h" />

View File

@ -834,6 +834,9 @@
<ClCompile Include="..\..\..\src\effects\NoiseReduction.cpp">
<Filter>src/effects</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\DeviceChange.cpp">
<Filter>src</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\src\AboutDialog.h">
@ -1661,7 +1664,12 @@
<ClInclude Include="..\..\..\src\effects\NoiseReduction.h">
<Filter>src/effects</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\AudioIOListener.h" />
<ClInclude Include="..\..\..\src\DeviceChange.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\AudioIOListener.h">
<Filter>src</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Image Include="..\..\audacity.ico">