diff --git a/.gitignore b/.gitignore index 3b1ac87..e8739ba 100644 --- a/.gitignore +++ b/.gitignore @@ -22,4 +22,5 @@ DerivedData/ # Visual Studio 2015 cache/options directory .vs/ -xcuserdata/ \ No newline at end of file +xcuserdata/ +autom4te.cache/ \ No newline at end of file diff --git a/Makefile.am b/Makefile.am index 381ef37..0bef64a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -161,6 +161,14 @@ webrtc_dsp/webrtc/modules/audio_processing/aec/aec_core_sse2.cc \ webrtc_dsp/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc endif +if ENABLE_AUDIO_CALLBACK +CFLAGS += -DTGVOIP_USE_CALLBACK_AUDIO_IO +SRC += \ +audio/AudioIOCallback.cpp +TGVOIP_HDRS += \ +audio/AudioIOCallback.h +endif + if TARGET_CPU_ARM SRC += \ webrtc_dsp/webrtc/common_audio/signal_processing/complex_bit_reverse_arm.S \ diff --git a/configure b/configure index c6b9cde..0a40189 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libtgvoip 2.2. +# Generated by GNU Autoconf 2.69 for libtgvoip 2.2.4. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libtgvoip' PACKAGE_TARNAME='libtgvoip' -PACKAGE_VERSION='2.2' -PACKAGE_STRING='libtgvoip 2.2' +PACKAGE_VERSION='2.2.4' +PACKAGE_STRING='libtgvoip 2.2.4' PACKAGE_BUGREPORT='https://github.com/grishka/libtgvoip/issues' PACKAGE_URL='' @@ -643,6 +643,8 @@ WITH_ALSA_FALSE WITH_ALSA_TRUE WITH_PULSE_FALSE WITH_PULSE_TRUE +ENABLE_AUDIO_CALLBACK_FALSE +ENABLE_AUDIO_CALLBACK_TRUE TARGET_OS_OSX_FALSE TARGET_OS_OSX_TRUE TARGET_CPU_ARMV7_FALSE @@ -795,6 +797,7 @@ enable_dependency_tracking with_gnu_ld with_sysroot enable_libtool_lock +enable_audio_callback with_pulse with_alsa enable_dsp @@ -1357,7 +1360,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libtgvoip 2.2 to adapt to many kinds of systems. +\`configure' configures libtgvoip 2.2.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1427,7 +1430,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libtgvoip 2.2:";; + short | recursive ) echo "Configuration of libtgvoip 2.2.4:";; esac cat <<\_ACEOF @@ -1446,6 +1449,7 @@ Optional Features: --disable-dependency-tracking speeds up one-time build --disable-libtool-lock avoid locking (might break parallel builds) + --enable-audio-callback enable callback-based audio I/O --disable-dsp disable signal processing (echo cancellation, noise suppression, and automatic gain control) @@ -1548,7 +1552,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libtgvoip configure 2.2 +libtgvoip configure 2.2.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2260,7 +2264,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libtgvoip $as_me 2.2, which was +It was created by libtgvoip $as_me 2.2.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3126,7 +3130,7 @@ fi # Define the identity of the package. PACKAGE='libtgvoip' - VERSION='2.2' + VERSION='2.2.4' cat >>confdefs.h <<_ACEOF @@ -17648,7 +17652,23 @@ else fi -if test "x$os_osx" != xyes; then : +# Check whether --enable-audio-callback was given. +if test "${enable_audio_callback+set}" = set; then : + enableval=$enable_audio_callback; +else + enable_audio_callback=yes +fi + + if test "x$enable_audio_callback" == xyes; then + ENABLE_AUDIO_CALLBACK_TRUE= + ENABLE_AUDIO_CALLBACK_FALSE='#' +else + ENABLE_AUDIO_CALLBACK_TRUE='#' + ENABLE_AUDIO_CALLBACK_FALSE= +fi + + +if test "x$os_osx" != xyes && test "x$enable_audio_callback" != xyes; then : # Linux { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } @@ -18700,6 +18720,10 @@ if test -z "${TARGET_OS_OSX_TRUE}" && test -z "${TARGET_OS_OSX_FALSE}"; then as_fn_error $? "conditional \"TARGET_OS_OSX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${ENABLE_AUDIO_CALLBACK_TRUE}" && test -z "${ENABLE_AUDIO_CALLBACK_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_AUDIO_CALLBACK\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${WITH_PULSE_TRUE}" && test -z "${WITH_PULSE_FALSE}"; then as_fn_error $? "conditional \"WITH_PULSE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -19109,7 +19133,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libtgvoip $as_me 2.2, which was +This file was extended by libtgvoip $as_me 2.2.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19175,7 +19199,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libtgvoip config.status 2.2 +libtgvoip config.status 2.2.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index b49b8aa..fa1b367 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT([libtgvoip], [2.2], [https://github.com/grishka/libtgvoip/issues]) +AC_INIT([libtgvoip], [2.2.4], [https://github.com/grishka/libtgvoip/issues]) AC_CONFIG_SRCDIR([config.h.in]) AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE([subdir-objects]) @@ -44,7 +44,10 @@ AS_CASE([$host_os], ) AM_CONDITIONAL(TARGET_OS_OSX, test "x$os_osx" == xyes) -AS_IF([test "x$os_osx" != xyes], [ # Linux +AC_ARG_ENABLE([audio-callback], [AS_HELP_STRING([--enable-audio-callback], [enable callback-based audio I/O])], [], [enable_audio_callback=yes]) +AM_CONDITIONAL(ENABLE_AUDIO_CALLBACK, test "x$enable_audio_callback" == xyes) + +AS_IF([test "x$os_osx" != xyes && test "x$enable_audio_callback" != xyes], [ # Linux AC_CHECK_LIB([dl], [dlopen]) AC_ARG_WITH([pulse], [AS_HELP_STRING([--without-pulse], [disable PulseAudio support])], [], [with_pulse=yes])