static void prepare(GtkAssistant *w){ AudioStream *audio_stream = NULL; LinphoneCore *lc=linphone_gtk_get_core(); int page = gtk_assistant_get_current_page(w); GtkWidget *mic_audiolevel = get_widget_from_assistant("mic_audiolevel"); GtkWidget *label_audiolevel = get_widget_from_assistant("label_audiolevel"); //Speaker page if(page == 1){ MSSndCardManager *manager = ms_snd_card_manager_get(); audio_stream = audio_stream_start_with_sndcards(&av_profile,9898,"127.0.0.1",19898,0,0,ms_snd_card_manager_get_card(manager,linphone_core_get_playback_device(lc)),ms_snd_card_manager_get_card(manager,linphone_core_get_capture_device(lc)),FALSE); if (mic_audiolevel != NULL && audio_stream != NULL){ g_object_set_data(G_OBJECT(audio_assistant),"stream",audio_stream); linphone_gtk_init_audio_meter(mic_audiolevel,(get_volume_t)audio_stream_get_record_volume,audio_stream); linphone_gtk_init_audio_label(label_audiolevel,(get_volume_t)audio_stream_get_max_volume,audio_stream); } } else if(page == 2 || page == 0){ if(mic_audiolevel != NULL && label_audiolevel != NULL){ audio_stream = (AudioStream *)g_object_get_data(G_OBJECT(audio_assistant),"stream"); if(audio_stream != NULL){ linphone_gtk_uninit_audio_meter(mic_audiolevel); linphone_gtk_uninit_audio_label(label_audiolevel); audio_stream_stop(audio_stream); g_object_set_data(G_OBJECT(audio_assistant),"stream",NULL); } } } }
void linphone_gtk_in_call_view_enable_audio_view(LinphoneCall *call, gboolean val) { GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call); GtkWidget *audio_view=linphone_gtk_get_widget(callview,"incall_audioview"); GtkWidget *mic_level=linphone_gtk_get_widget(callview,"mic_audiolevel"); GtkWidget *spk_level=linphone_gtk_get_widget(callview,"spk_audiolevel"); GtkWidget *spk_vol_ctrl = linphone_gtk_get_widget(callview, "incall_spk_vol_ctrl_button"); GtkWidget *mic_vol_ctrl = linphone_gtk_get_widget(callview, "incall_mic_vol_ctrl_button"); if (val) { linphone_gtk_init_audio_meter(mic_level,(get_volume_t)linphone_call_get_record_volume,call); linphone_gtk_init_audio_meter(spk_level,(get_volume_t)linphone_call_get_play_volume,call); volume_control_init(spk_vol_ctrl, VOLUME_CTRL_PLAYBACK, call); volume_control_init(mic_vol_ctrl, VOLUME_CTRL_RECORD, call); gtk_widget_show_all(audio_view); } else { linphone_gtk_uninit_audio_meter(mic_level); linphone_gtk_uninit_audio_meter(spk_level); gtk_widget_hide(audio_view); } }
void linphone_gtk_in_call_view_enable_audio_view(LinphoneCall *call, gboolean val){ GtkWidget *callview=(GtkWidget*)linphone_call_get_user_pointer(call); GtkWidget *audio_view=linphone_gtk_get_widget(callview,"incall_audioview"); //GtkWidget *mic=linphone_gtk_get_widget(callview,"incall_mic_icon"); GtkWidget *spk=linphone_gtk_get_widget(callview,"incall_spk_icon"); GtkWidget *mic_level=linphone_gtk_get_widget(callview,"mic_audiolevel"); GtkWidget *spk_level=linphone_gtk_get_widget(callview,"spk_audiolevel"); GdkPixbuf *pbuf; //gtk_image_set_from_pixbuf(GTK_IMAGE(mic),(pbuf=create_pixbuf("mic_active.png"))); //g_object_unref(pbuf); if (val){ gtk_image_set_from_pixbuf(GTK_IMAGE(spk),(pbuf=create_pixbuf("speaker.png"))); g_object_unref(pbuf); linphone_gtk_init_audio_meter(mic_level,(get_volume_t)linphone_call_get_record_volume,call); linphone_gtk_init_audio_meter(spk_level,(get_volume_t)linphone_call_get_play_volume,call); gtk_widget_show_all(audio_view); }else{ linphone_gtk_uninit_audio_meter(mic_level); linphone_gtk_uninit_audio_meter(spk_level); gtk_widget_hide(audio_view); } }
static void capture_device_changed(GtkWidget *capture_device){ gchar *sel; GtkWidget *mic_audiolevel; GtkWidget *label_audiolevel; GtkWidget *assistant=gtk_widget_get_toplevel(capture_device); AudioStream *audio_stream; mic_audiolevel = get_widget_from_assistant("mic_audiolevel"); label_audiolevel = get_widget_from_assistant("label_audiolevel"); audio_stream = (AudioStream *) g_object_get_data(G_OBJECT(assistant),"stream"); sel = gtk_combo_box_get_active_text(GTK_COMBO_BOX(capture_device)); linphone_core_set_capture_device(linphone_gtk_get_core(),sel); linphone_gtk_uninit_audio_meter(mic_audiolevel); linphone_gtk_uninit_audio_label(label_audiolevel); audio_stream_stop(audio_stream); g_free(sel); /*now restart the audio stream*/ prepare(GTK_ASSISTANT(assistant)); }