diff --git a/debian/autopackage.sh b/debian/autopackage.sh index fe8a9e5be4c1a7163dada8f1090128e12181ff8c..73a833b0b8aff16d7076080abb516922074e49dd 100755 --- a/debian/autopackage.sh +++ b/debian/autopackage.sh @@ -54,12 +54,12 @@ cp $sharedir/applications/sflphone.desktop $sfldir$sharedir/applications/ #/usr/share/dbus-1/services mkdir -p $sfldir$sharedir/dbus-1/services cp $sharedir/dbus-1/services/org.sflphone.SFLphone.service $sfldir$sharedir/dbus-1/services/ -#/usr/share/pixmaps +/usr/share/pixmaps mkdir -p $sfldir$sharedir/pixmaps cp $sharedir/pixmaps/sflphone.png $sfldir$sharedir/pixmaps #/usr/share/sflphone mkdir -p $sfldir$sharedir/sflphone/ringtones -cp $sharedir/sflphone/*.svg $sfldir$sharedir/sflphone +cp $sharedir/sflphone/* $sfldir$sharedir/sflphone #/usr/share/sflphone/ringtones cp $sharedir/sflphone/ringtones/* $sfldir$sharedir/sflphone/ringtones #/usr/share/locale/fr/LC_MESSAGES diff --git a/debian/changelog.Debian.gz b/debian/changelog.Debian.gz index e8bf4d0dd2a4ac6ee239941c03505de95611661e..acd4e1302bfdaf685b3b5324ea135ca24b7dc864 100644 Binary files a/debian/changelog.Debian.gz and b/debian/changelog.Debian.gz differ diff --git a/sflphone-gtk/src/calltree.c b/sflphone-gtk/src/calltree.c index a1386191fbdec81bd61d856bc62baeaab65ca32c..85d7599c88a6e064f72069436ad70fcf65ee6f27 100644 --- a/sflphone-gtk/src/calltree.c +++ b/sflphone-gtk/src/calltree.c @@ -361,7 +361,7 @@ create_toolbar () g_signal_connect (G_OBJECT (unholdButton), "clicked", G_CALLBACK (unhold), NULL); //gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(unholdButton), -1); - //gtk_widget_show_all(GTK_WIDGET(unholdButton)); + gtk_widget_show_all(GTK_WIDGET(unholdButton)); image = gtk_image_new_from_file( ICONS_DIR "/hold.svg"); holdButton = gtk_tool_button_new (image, _("On Hold")); diff --git a/src/audio/audiolayer.cpp b/src/audio/audiolayer.cpp index fa93ee08f6064271a5ac60c772350fed3e2d7c70..d799939335b1e22cda5456a85532f8bd12885c79 100644 --- a/src/audio/audiolayer.cpp +++ b/src/audio/audiolayer.cpp @@ -302,7 +302,7 @@ AudioLayer::open_device(std::string pcm_p, std::string pcm_c, int flag) snd_pcm_uframes_t buffer_size_out = period_size_out * 4 ; unsigned int buffer_time = 80000; //80ms - unsigned int period_time = buffer_time / 4; //20ms + unsigned int period_time = buffer_time / 4 ; //20ms if(flag == SFL_PCM_BOTH || flag == SFL_PCM_CAPTURE) { @@ -330,6 +330,19 @@ AudioLayer::open_device(std::string pcm_p, std::string pcm_c, int flag) _debug("buffer size = %d\n" , period_size_in); _debug("period size = %d\n" , buffer_size_in); snd_pcm_hw_params_free( hwParams ); + + snd_pcm_uframes_t val ; + snd_pcm_sw_params_malloc( &swparams ); + snd_pcm_sw_params_current( _CaptureHandle, swparams ); + + if( err = snd_pcm_sw_params_set_start_threshold( _CaptureHandle, swparams, period_size_out) < 0 ) _debugAlsa(" Cannot set start threshold (%s)\n", snd_strerror(err)); + snd_pcm_sw_params_get_start_threshold( swparams , &val); + _debug("Start threshold = %d\n" ,val); + if( err = snd_pcm_sw_params_set_avail_min( _CaptureHandle, swparams, period_size_out) < 0) _debugAlsa(" Cannot set min avail (%s)\n" , snd_strerror(err)); + snd_pcm_sw_params_get_avail_min( swparams , &val); + _debug("Min available = %d\n" ,val); + if( err = snd_pcm_sw_params( _CaptureHandle, swparams ) < 0 ) _debugAlsa(" Cannot set sw parameters (%s)\n", snd_strerror(err)); + snd_pcm_sw_params_free( swparams ); deviceClosed = false; } @@ -348,6 +361,7 @@ AudioLayer::open_device(std::string pcm_p, std::string pcm_c, int flag) } if( err = snd_pcm_hw_params_any( _PlaybackHandle,hwParams) < 0) _debugAlsa(" Cannot initialize hardware parameter structure (%s)\n", snd_strerror(err)); if( err = snd_pcm_hw_params_set_access( _PlaybackHandle, hwParams, SND_PCM_ACCESS_MMAP_INTERLEAVED) < 0) _debugAlsa(" Cannot set access type (%s)\n", snd_strerror(err)); + //if( err = snd_pcm_hw_params_set_access( _PlaybackHandle, hwParams, SND_PCM_ACCESS_RW_INTERLEAVED) < 0) _debugAlsa(" Cannot set access type (%s)\n", snd_strerror(err)); if( err = snd_pcm_hw_params_set_format( _PlaybackHandle, hwParams, SND_PCM_FORMAT_S16_LE) < 0) _debugAlsa(" Cannot set sample format (%s)\n", snd_strerror(err)); if( err = snd_pcm_hw_params_set_rate( _PlaybackHandle, hwParams, rate_out, dir) < 0) _debugAlsa(" Cannot set sample rate (%s)\n", snd_strerror(err)); if( err = snd_pcm_hw_params_set_channels( _PlaybackHandle, hwParams, 1) < 0) _debugAlsa(" Cannot set channel count (%s)\n", snd_strerror(err)); @@ -441,6 +455,7 @@ AudioLayer::read( void* buffer, int toCopy) case EPERM: _debugAlsa(" Capture EPERM (%s)\n", snd_strerror(err)); snd_pcm_prepare( _CaptureHandle); + snd_pcm_start( _CaptureHandle ); break; case -ESTRPIPE: _debugAlsa(" Capture ESTRPIPE (%s)\n", snd_strerror(err)); diff --git a/src/global.h b/src/global.h index 350a37e5ee98c32be3f1c6638454637c9c5d572b..af95fbc6dd8bfd9cb407825c127d60050d500490 100644 --- a/src/global.h +++ b/src/global.h @@ -83,6 +83,7 @@ typedef short int16; #define PCM_FRONT "plug:front" /** Alsa plugin: front PCM */ #define PCM_DEFAULT "default" /** Default ALSA plugin */ #define PCM_DMIX "plug:dmix" /** Alsa plugin for software mixing */ +#define PCM_DSNOOP "plug:dsnoop" /** Alsa plugin for software mixing */ #define PCM_SURROUND40 "plug:surround40" /** Alsa plugin: surround40 */ #define PCM_SURROUND41 "plug:surround41" /** Alsa plugin: surround41 */ #define PCM_SURROUND50 "plug:surround50" /** Alsa plugin: surround50 */ diff --git a/src/managerimpl.cpp b/src/managerimpl.cpp index 29a641ff5f49a4350a950ad71a69478be3a68e4f..26f4dc9852f31a4ff0dc6182f680a3c7ba3aea26 100644 --- a/src/managerimpl.cpp +++ b/src/managerimpl.cpp @@ -1145,6 +1145,7 @@ ManagerImpl::getOutputAudioPluginList(void) v.push_back( PCM_DEFAULT ); v.push_back( PCM_PLUGHW ); v.push_back( PCM_DMIX ); + v.push_back( PCM_PULSE ); return v; }