diff options
author | Michael 'Mickey' Lauer <mickey@vanille-media.de> | 2011-05-07 12:24:47 +0200 |
---|---|---|
committer | Michael 'Mickey' Lauer <mickey@vanille-media.de> | 2011-05-07 12:24:47 +0200 |
commit | 5a029766a2d5216452120315a95d5f384fe7a8bd (patch) | |
tree | e7bf17096838fdc452963871b9f6eda6d092a1b9 | |
parent | d7a3dcf3bf932df4a58d5d99255a8a5ab1abbc2a (diff) | |
download | cornucopia-5a029766a2d5216452120315a95d5f384fe7a8bd.tar.gz cornucopia-5a029766a2d5216452120315a95d5f384fe7a8bd.tar.bz2 cornucopia-5a029766a2d5216452120315a95d5f384fe7a8bd.zip |
fsoaudiod: add vapi for libcmtspeechdata; add configuration logic for optional plugin
-rw-r--r-- | fsoaudiod/configure.ac | 39 | ||||
-rw-r--r-- | fsoaudiod/src/plugins/Makefile.am | 8 | ||||
-rw-r--r-- | fsoaudiod/src/plugins/gsmvoice_alsa_cmtspeechdata/Makefile.am | 5 | ||||
-rw-r--r-- | fsoaudiod/vapi/libcmtspeechdata.vapi | 175 |
4 files changed, 219 insertions, 8 deletions
diff --git a/fsoaudiod/configure.ac b/fsoaudiod/configure.ac index 527018d2..b502ab58 100644 --- a/fsoaudiod/configure.ac +++ b/fsoaudiod/configure.ac @@ -19,12 +19,16 @@ AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) +############################################################################## +# dependency versions GLIB_REQUIRED=2.26.0 GEE_REQUIRED=0.5.0 FSO_GLIB_REQUIRED=2011.03.15.1 FSO_REQUIRED=0.2.3 ALSA_REQUIRED=0.20 +CMTSPEECHDATA_REQUIRED=2.1.1 +############################################################################## # glib and friends PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED @@ -33,18 +37,21 @@ PKG_CHECK_MODULES(GLIB, AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) +############################################################################## # gee PKG_CHECK_MODULES(GEE, gee-1.0 >= $GEE_REQUIRED) AC_SUBST(GEE_CFLAGS) AC_SUBST(GEE_LIBS) +############################################################################## # alsa PKG_CHECK_MODULES(ALSA, alsa >= $ALSA_REQUIRED) AC_SUBST(ALSA_CFLAGS) AC_SUBST(ALSA_LIBS) +############################################################################## # dbus conf directory DBUS_DIR="`$PKG_CONFIG --variable=sysconfdir dbus-1`" if (test -z "{DBUS_DIR}"); then @@ -54,6 +61,7 @@ else fi AC_SUBST(DBUS_DIR) +############################################################################## # dbus service directory DBUS_SERVICE_DIR="`$PKG_CONFIG --variable=session_bus_services_dir dbus-1`" if (test -z "{DBUS_SERVICE_DIR}"); then @@ -61,6 +69,7 @@ if (test -z "{DBUS_SERVICE_DIR}"); then fi AC_SUBST(DBUS_SERVICE_DIR) +############################################################################## # fso PKG_CHECK_MODULES(FSO, fsoframework-2.0 >= $FSO_REQUIRED @@ -68,6 +77,23 @@ PKG_CHECK_MODULES(FSO, AC_SUBST(FSO_CFLAGS) AC_SUBST(FSO_LIBS) +############################################################################## +# optional feature: GSM voice call audio using libcmtspeechdata +AC_ARG_ENABLE(cmtspeechdata, + [ --enable-cmtspeechdata Enable building the gsm voicecall plugin using libcmtspeechdata (default=disabled)], + [cmtspeechdata=$enableval], + [cmtspeechdata="no"]) + +if test x$cmtspeechdata = "xyes"; then + PKG_CHECK_MODULES(CMTSPEECHDATA, + libcmtspeechdata >= $CMTSPEECHDATA_REQUIRED) +AC_SUBST(CMTSPEECHDATA_CFLAGS) +AC_SUBST(CMTSPEECHDATA_LIBS) + +fi +AM_CONDITIONAL( [WANT_CMTSPEECHDATA], [test x"$cmtspeechdata" = x"yes"]) + +############################################################################## # check for debugging AC_ARG_ENABLE(debug, [ --enable-debug Enable debug build (default=disabled)], @@ -75,10 +101,12 @@ AC_ARG_ENABLE(debug, [debug="no"]) AM_CONDITIONAL( [WANT_DEBUG], [test x"$debug" = x"yes"]) +############################################################################## # git version GITV=`cat ../.git/refs/heads/master || echo "unknown"` AC_DEFINE_UNQUOTED([PACKAGE_GITV], ["${GITV}"], [git version]) +############################################################################## # datadir if test "x$prefix" != "xNONE"; then pkgdatadir='${prefix}/share/fsoaudiod' @@ -109,10 +137,9 @@ AC_CONFIG_FILES([ src/plugins/streamcontrol_alsa/Makefile ]) -AC_OUTPUT -# +############################################################################## # Info -# +AC_OUTPUT echo echo echo @@ -122,9 +149,11 @@ echo "------------------------------------------------------------------------" echo echo "Configuration Options:" echo -echo " debug build.............: $debug" +echo " gsmvoice_alsa_cmtspeechdata:.........: $cmtspeechdata" +echo +echo " debug build..........................: $debug" echo -echo " prefix..................: $prefix" +echo " prefix...............................: $prefix" echo echo "------------------------------------------------------------------------" echo diff --git a/fsoaudiod/src/plugins/Makefile.am b/fsoaudiod/src/plugins/Makefile.am index 41e1647d..17868715 100644 --- a/fsoaudiod/src/plugins/Makefile.am +++ b/fsoaudiod/src/plugins/Makefile.am @@ -4,8 +4,6 @@ NULL = AUTOMAKE_OPTIONS = subdir-objects SUBDIRS = \ - gsmvoice_alsa_cmtspeechdata \ - \ manager \ \ router_palmpre \ @@ -14,3 +12,9 @@ SUBDIRS = \ streamcontrol_alsa \ \ $(NULL) + +if WANT_CMTSPEECHDATA +SUBDIRS += gsmvoice_alsa_cmtspeechdata +endif + + diff --git a/fsoaudiod/src/plugins/gsmvoice_alsa_cmtspeechdata/Makefile.am b/fsoaudiod/src/plugins/gsmvoice_alsa_cmtspeechdata/Makefile.am index ae7d80cf..220b7cbf 100644 --- a/fsoaudiod/src/plugins/gsmvoice_alsa_cmtspeechdata/Makefile.am +++ b/fsoaudiod/src/plugins/gsmvoice_alsa_cmtspeechdata/Makefile.am @@ -3,6 +3,7 @@ NULL = AM_CFLAGS = \ -I$(top_srcdir)/src/lib \ + $(CMTSPEECHDATA_CFLAGS) \ $(FSO_GLIB_CFLAGS) \ $(FSO_CFLAGS) \ $(GLIB_CFLAGS) \ @@ -12,6 +13,7 @@ AM_CFLAGS = \ noinst_PROGRAMS = $(TEST_PROGS) progs_ldadd = \ + $(CMTSPEECHDATA_LIBS) \ $(FSO_GLIB_LIBS) \ $(FSO_LIBS) \ $(GLIB_LIBS) \ @@ -26,7 +28,8 @@ VALAC_ARGS = \ --pkg gee-1.0 \ --pkg fso-glib-1.0 \ --pkg fsoframework-2.0 \ - --pkg fsoaudio-2.0 + --pkg fsoaudio-2.0 \ + --pkg libcmtspeechdata if WANT_DEBUG VALAC_ARGS += -g -D DEBUG diff --git a/fsoaudiod/vapi/libcmtspeechdata.vapi b/fsoaudiod/vapi/libcmtspeechdata.vapi new file mode 100644 index 00000000..e6c2560a --- /dev/null +++ b/fsoaudiod/vapi/libcmtspeechdata.vapi @@ -0,0 +1,175 @@ +/* + * (C) 2011 Michael 'Mickey' Lauer <mlauer@vanille-media.de> + */ + +[CCode (cprefix = "CMTSPEECH_", lower_case_cprefix = "cmtspeech_", cheader_filename = "cmtspeech.h")] +namespace CmtSpeech +{ + + /* Enums */ + + [CCode (cname = "gint", cprefix = "CMTSPEECH_STATE_", has_type_id = false, cheader_filename = "cmtspeech.h")] + public enum State + { + INVALID, + DISCONNECTED, + CONNECTED, + ACTIVE_DL, + ACTIVE_DLUL, + TEST_RAMP_PING_ACTIVE + } + + [CCode (cname = "gint", cprefix = "CMTSPEECH_TR_", has_type_id = false, cheader_filename = "cmtspeech.h")] + public enum Transition + { + INVALID, + 0_NO_CHANGE, + 1_CONNECTED, + 2_DISCONNECTED, + 3_DL_START, + 4_DLUL_STOP, + 5_PARAM_UPDATE, + 6_TIMING_UPDATE, + 7_TIMING_UPDATE, + 10_RESET, + 11_UL_STOP, + 12_UL_START + } + + [CCode (cname = "gint", cprefix = "CMTSPEECH_BUFFER_TYPE_", has_type_id = false, cheader_filename = "cmtspeech.h")] + public enum BufferType + { + PCM_S16_LE + } + + [CCode (cname = "gint", cprefix = "CMTSPEECH_EVENT_", has_type_id = false, cheader_filename = "cmtspeech.h")] + public enum EventType + { + CONTROL, + DL_DATA, + XRUN + } + + [CCode (cname = "gint", cprefix = "CMTSPEECH_DATA_TYPE_", has_type_id = false, cheader_filename = "cmtspeech.h")] + public enum FrameFlags + { + ZERO, + INVALID, + VALID + } + + [CCode (cname = "gint", cprefix = "CMTSPEECH_SPC_FLAGS_", has_type_id = false, cheader_filename = "cmtspeech.h")] + public enum SpcFlags + { + SPEECH, + BFI, + ATTENUATE, + DEC_RESET, + MUTE, + PREV, + DTX_USED + } + + [CCode (cname = "gint", cprefix = "CMTSPEECH_SAMPLE_RATE_", has_type_id = false, cheader_filename = "cmtspeech_msgs.h")] + public enum SampleRate + { + NONE, + 8KHZ, + 16KHZ + } + + [CCode (cname = "gint", cprefix = "CMTSPEECH_TRACE_", has_type_id = false, cheader_filename = "cmtspeech_msgs.h")] + public enum TraceType + { + ERROR, + INFO, + STATE_CHANGE, + IO, + DEBUG, + INTERNAL + } + + /* Structs */ + + [Compact] + [CCode (cname = "struct cmtspeech_buffer_s", free_function = "", cheader_filename = "cmtspeech.h")] + public class FrameBuffer + { + public BufferType type; /**< buffer type (CMTSPEECH_BUFFER_TYPE_*) */ + public int count; /**< octets of valid data (including header) */ + public int pcount; /**< octets of valid payload data */ + public int size; /**< octets of allocated space */ + public FrameFlags frame_flags; /**< frame flags; enum CMTSPEECH_DATATYPE_* */ + public SpcFlags spc_flags; /**< speech codec flags for the frame; + for UL: always set to zero, + for DL: bitmask of CMTSPEECH_SPC_FLAGS_* */ + public uint8* data; /**< pointer to a buffer of 'size' octets */ + public uint8* payload; /**< pointer to frame payload */ + } + + [CCode (cname = "struct cmtspeech_event_s", destroy_function = "", cheader_filename = "cmtspeech.h")] + public struct Event + { + public State state; + public State prev_state; + public int msg_type; + + /* union ... */ + } + + /* Static */ + + public static string version_str(); + public static int protocol_version(); + public static void init(); + [CCode (has_target = false)] + public delegate void trace_handler_t( int priority, string message, va_list args ); + public static void trace_toggle( int priority, bool enabled ); + public static int set_trace_handler( trace_handler_t func ); + + /* Classes */ + + [Compact] + [CCode (cprefix = "cmtspeech_", cname = "cmtspeech_t", free_function = "cmtspeech_close", cheader_filename = "cmtspeech.h")] + public class Connection + { + [CCode (cname = "cmtspeech_open")] + public Connection(); + + //public int close(); + public int descriptor(); + public int check_pending( out EventType flags_mask ); + public int read_event( Event event ); + public Transition event_to_state_transition( Event event ); + + public int set_wb_preference( bool enabled ); + public State protocol_state(); + + public bool is_ssi_connection_enabled(); + public bool is_active(); + + public int state_change_call_status( bool state ); + public int state_change_call_connect( bool state ); + public int state_change_error(); + + public int ul_buffer_acquire( out FrameBuffer buffer ); + public int ul_buffer_release( FrameBuffer buffer ); + + public int dl_buffer_acquire( out FrameBuffer buffer ); + public int dl_buffer_release( FrameBuffer buffer ); + + public SampleRate buffer_codec_sample_rate(); + public SampleRate buffer_sample_rate(); + + public FrameBuffer dl_buffer_find_with_data( uint8* data); + + public string backend_name(); + public int backend_message( int type, int args, ... ); + public int send_timing_request(); + public int send_ssi_config_request( bool active ); + + public int test_data_ramp_req( uint8 rampstart, uint8 ramplen ); + } + + +} /* namespace CmtSpeech */ |