Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
savoirfairelinux
jami-daemon
Commits
7852adff
Commit
7852adff
authored
Sep 14, 2011
by
Emmanuel Lepage
Browse files
Merge branch 'master' of
git+ssh://git.sflphone.org/var/repos/sflphone/git/sflphone
parents
6ddf5306
4c0d55c5
Changes
16
Hide whitespace changes
Inline
Side-by-side
daemon/configure.ac
View file @
7852adff
...
@@ -180,16 +180,7 @@ DBUS_CPP_REQUIRED_VERSION=0.6.0-pre1
...
@@ -180,16 +180,7 @@ DBUS_CPP_REQUIRED_VERSION=0.6.0-pre1
PKG_CHECK_MODULES(DBUSCPP, dbus-c++-1,,
PKG_CHECK_MODULES(DBUSCPP, dbus-c++-1,,
AC_MSG_ERROR([You need the DBus-c++ libraries (version $DBUS_CPP_REQUIRED_VERSION or better)]))
AC_MSG_ERROR([You need the DBus-c++ libraries (version $DBUS_CPP_REQUIRED_VERSION or better)]))
AC_ARG_WITH(debug,
CXXFLAGS="${CXXFLAGS} -g -Wno-return-type -Wall -Wextra -Wnon-virtual-dtor"
AS_HELP_STRING(
[--with-debug],
[Set to enable debugging information @<:@default=no@:>@]
),
[CXXFLAGS="-g -O0"],
[CXXFLAGS="-O2"]
)
CXXFLAGS="${CXXFLAGS} -Wno-return-type -Wall -Wextra -Wnon-virtual-dtor"
AC_CHECK_LIB([expat], XML_ParserCreate_MM,
AC_CHECK_LIB([expat], XML_ParserCreate_MM,
[AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false)],
[AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false)],
...
...
daemon/src/audio/pulseaudio/audiostream.cpp
View file @
7852adff
...
@@ -93,7 +93,7 @@ AudioStream::~AudioStream()
...
@@ -93,7 +93,7 @@ AudioStream::~AudioStream()
}
}
void
void
AudioStream
::
stream_state_callback
(
pa_stream
*
s
,
void
*
user_data
)
AudioStream
::
stream_state_callback
(
pa_stream
*
s
,
void
*
user_data
UNUSED
)
{
{
char
str
[
PA_SAMPLE_SPEC_SNPRINT_MAX
];
char
str
[
PA_SAMPLE_SPEC_SNPRINT_MAX
];
...
...
daemon/src/audio/sound/audiofile.cpp
View file @
7852adff
...
@@ -172,18 +172,10 @@ WaveFile::WaveFile (const std::string& fileName, unsigned int audioSamplingRate)
...
@@ -172,18 +172,10 @@ WaveFile::WaveFile (const std::string& fileName, unsigned int audioSamplingRate)
fileStream
.
read
(
(
char
*
)
&
blockal
,
2
);
fileStream
.
read
(
(
char
*
)
&
blockal
,
2
);
// Determine the data type
// Determine the data type
SOUND_FORMAT
dataType
;
SINT16
dt
;
SINT16
dt
;
fileStream
.
read
(
(
char
*
)
&
dt
,
2
);
fileStream
.
read
(
(
char
*
)
&
dt
,
2
);
if
(
dt
==
8
)
if
(
dt
!=
8
&&
dt
!=
16
&&
dt
!=
32
)
dataType
=
1
;
// SINT8;
else
if
(
dt
==
16
)
dataType
=
2
;
// SINT16;
else
if
(
dt
==
32
)
dataType
=
3
;
// SINT32;
else
{
throw
AudioFileException
(
"File's bits per sample with is not supported"
);
throw
AudioFileException
(
"File's bits per sample with is not supported"
);
}
// Find the "data" chunk
// Find the "data" chunk
char
data
[
4
]
=
{
0
,
0
,
0
,
0
};
char
data
[
4
]
=
{
0
,
0
,
0
,
0
};
...
...
daemon/src/dbus/callmanager.h
View file @
7852adff
...
@@ -42,6 +42,11 @@
...
@@ -42,6 +42,11 @@
#pragma GCC diagnostic warning "-Wignored-qualifiers"
#pragma GCC diagnostic warning "-Wignored-qualifiers"
#pragma GCC diagnostic warning "-Wunused-parameter"
#pragma GCC diagnostic warning "-Wunused-parameter"
#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 6
/* This warning option only exists for gcc 4.6.0 and greater. */
#pragma GCC diagnostic warning "-Wunused-but-set-variable"
#endif
#include <dbus-c++/dbus.h>
#include <dbus-c++/dbus.h>
#include <stdexcept>
#include <stdexcept>
...
...
daemon/src/dbus/configurationmanager.h
View file @
7852adff
...
@@ -44,6 +44,10 @@
...
@@ -44,6 +44,10 @@
#pragma GCC diagnostic warning "-Wignored-qualifiers"
#pragma GCC diagnostic warning "-Wignored-qualifiers"
#pragma GCC diagnostic warning "-Wunused-parameter"
#pragma GCC diagnostic warning "-Wunused-parameter"
#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 6
#pragma GCC diagnostic warning "-Wunused-but-set-variable"
#endif
#include <dbus-c++/dbus.h>
#include <dbus-c++/dbus.h>
class
ConfigurationManager
class
ConfigurationManager
...
...
daemon/src/dbus/dbusmanager.h
View file @
7852adff
...
@@ -34,6 +34,8 @@
...
@@ -34,6 +34,8 @@
#pragma GCC diagnostic ignored "-Wignored-qualifiers"
#pragma GCC diagnostic ignored "-Wignored-qualifiers"
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wunused-parameter"
#include <dbus-c++/dbus.h>
#include <dbus-c++/dbus.h>
#pragma GCC diagnostic warning "-Wignored-qualifiers"
#pragma GCC diagnostic warning "-Wunused-parameter"
class
ConfigurationManager
;
class
ConfigurationManager
;
class
CallManager
;
class
CallManager
;
class
NetworkManager
;
class
NetworkManager
;
...
...
daemon/src/dbus/instance.h
View file @
7852adff
...
@@ -40,6 +40,10 @@
...
@@ -40,6 +40,10 @@
#include "instance-glue.h"
#include "instance-glue.h"
#pragma GCC diagnostic warning "-Wignored-qualifiers"
#pragma GCC diagnostic warning "-Wignored-qualifiers"
#pragma GCC diagnostic warning "-Wunused-parameter"
#pragma GCC diagnostic warning "-Wunused-parameter"
#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 6
#pragma GCC diagnostic warning "-Wunused-but-set-variable"
#endif
#include <dbus-c++/dbus.h>
#include <dbus-c++/dbus.h>
...
...
daemon/src/managerimpl.cpp
View file @
7852adff
...
@@ -1101,9 +1101,6 @@ void ManagerImpl::detachParticipant (const std::string& call_id,
...
@@ -1101,9 +1101,6 @@ void ManagerImpl::detachParticipant (const std::string& call_id,
return
;
return
;
}
}
// TODO: add conference_id as a second parameter
ConferenceMap
::
iterator
iter
=
_conferencemap
.
find
(
call
->
getConfId
());
Conference
*
conf
=
getConferenceFromCallID
(
call_id
);
Conference
*
conf
=
getConferenceFromCallID
(
call_id
);
if
(
conf
==
NULL
)
{
if
(
conf
==
NULL
)
{
_error
(
"Manager: Error: Call is not conferencing, cannot detach"
);
_error
(
"Manager: Error: Call is not conferencing, cannot detach"
);
...
...
daemon/src/sip/sdp.cpp
View file @
7852adff
...
@@ -337,9 +337,6 @@ int Sdp::createLocalSession (const CodecOrder &selectedCodecs)
...
@@ -337,9 +337,6 @@ int Sdp::createLocalSession (const CodecOrder &selectedCodecs)
int
Sdp
::
createOffer
(
const
CodecOrder
&
selectedCodecs
)
int
Sdp
::
createOffer
(
const
CodecOrder
&
selectedCodecs
)
{
{
pj_status_t
status
;
pj_status_t
status
;
pjmedia_sdp_neg_state
state
;
_info
(
"SDP: Create initial offer"
);
// Build the SDP session descriptor
// Build the SDP session descriptor
status
=
createLocalSession
(
selectedCodecs
);
status
=
createLocalSession
(
selectedCodecs
);
...
@@ -355,8 +352,6 @@ int Sdp::createOffer (const CodecOrder &selectedCodecs)
...
@@ -355,8 +352,6 @@ int Sdp::createOffer (const CodecOrder &selectedCodecs)
return
status
;
return
status
;
}
}
state
=
pjmedia_sdp_neg_get_state
(
negotiator_
);
PJ_ASSERT_RETURN
(
status
==
PJ_SUCCESS
,
1
);
PJ_ASSERT_RETURN
(
status
==
PJ_SUCCESS
,
1
);
return
PJ_SUCCESS
;
return
PJ_SUCCESS
;
...
...
gnome/src/actions.c
View file @
7852adff
...
@@ -384,10 +384,6 @@ sflphone_hang_up()
...
@@ -384,10 +384,6 @@ sflphone_hang_up()
selectedCall
->
_state
=
CALL_STATE_DIALING
;
selectedCall
->
_state
=
CALL_STATE_DIALING
;
time
(
&
selectedCall
->
_time_stop
);
time
(
&
selectedCall
->
_time_stop
);
//if ( (im_window_get_nb_tabs() > 1) && selectedCall->_im_widget &&
// ! (IM_WIDGET (selectedCall->_im_widget)->containText))
// im_window_remove_tab (selectedCall->_im_widget);
//else
im_widget_update_state
(
IM_WIDGET
(
selectedCall
->
_im_widget
),
FALSE
);
im_widget_update_state
(
IM_WIDGET
(
selectedCall
->
_im_widget
),
FALSE
);
break
;
break
;
...
@@ -436,7 +432,8 @@ sflphone_pick_up()
...
@@ -436,7 +432,8 @@ sflphone_pick_up()
// if instant messaging window is visible, create new tab (deleted automatically if not used)
// if instant messaging window is visible, create new tab (deleted automatically if not used)
if
(
im_window_is_visible
())
if
(
im_window_is_visible
())
im_widget_display
(
(
IMWidget
**
)
(
&
selectedCall
->
_im_widget
),
NULL
,
selectedCall
->
_callID
,
NULL
);
if
(
!
selectedCall
->
_im_widget
)
selectedCall
->
_im_widget
=
im_widget_display
(
selectedCall
->
_callID
);
break
;
break
;
case
CALL_STATE_INCOMING
:
case
CALL_STATE_INCOMING
:
...
@@ -444,9 +441,9 @@ sflphone_pick_up()
...
@@ -444,9 +441,9 @@ sflphone_pick_up()
calltree_update_call
(
history
,
selectedCall
,
NULL
);
calltree_update_call
(
history
,
selectedCall
,
NULL
);
// if instant messaging window is visible, create new tab (deleted automatically if not used)
// if instant messaging window is visible, create new tab (deleted automatically if not used)
if
(
selectedCall
->
_im_widget
&&
im_window_is_visible
())
{
if
(
im_window_is_visible
())
i
m_widget_display
(
(
IMWidget
**
)
(
&
selectedCall
->
_im_widget
),
NULL
,
selectedCall
->
_callID
,
NULL
);
i
f
(
!
selectedCall
->
_im_widget
)
}
selectedCall
->
_im_widget
=
im_widget_display
(
selectedCall
->
_callID
);
dbus_accept
(
selectedCall
);
dbus_accept
(
selectedCall
);
break
;
break
;
...
@@ -896,9 +893,7 @@ sflphone_detach_participant (const gchar* callID)
...
@@ -896,9 +893,7 @@ sflphone_detach_participant (const gchar* callID)
g_free
(
selectedCall
->
_confID
);
g_free
(
selectedCall
->
_confID
);
selectedCall
->
_confID
=
NULL
;
selectedCall
->
_confID
=
NULL
;
}
}
// Instant messaging widget should have been deactivated during the conference
im_widget_update_state
(
IM_WIDGET
(
selectedCall
->
_im_widget
),
TRUE
);
if
(
selectedCall
->
_im_widget
)
im_widget_update_state
(
IM_WIDGET
(
selectedCall
->
_im_widget
),
TRUE
);
calltree_remove_call
(
current_calls
,
selectedCall
,
NULL
);
calltree_remove_call
(
current_calls
,
selectedCall
,
NULL
);
calltree_add_call
(
current_calls
,
selectedCall
,
NULL
);
calltree_add_call
(
current_calls
,
selectedCall
,
NULL
);
dbus_detach_participant
(
selectedCall
->
_callID
);
dbus_detach_participant
(
selectedCall
->
_callID
);
...
...
gnome/src/dbus/dbus.c
View file @
7852adff
...
@@ -122,17 +122,15 @@ voice_mail_cb (DBusGProxy *proxy UNUSED, const gchar* accountID, const guint nb,
...
@@ -122,17 +122,15 @@ voice_mail_cb (DBusGProxy *proxy UNUSED, const gchar* accountID, const guint nb,
static
void
static
void
incoming_message_cb
(
DBusGProxy
*
proxy
UNUSED
,
const
gchar
*
callID
UNUSED
,
const
gchar
*
from
,
const
gchar
*
msg
,
void
*
foo
UNUSED
)
incoming_message_cb
(
DBusGProxy
*
proxy
UNUSED
,
const
gchar
*
callID
UNUSED
,
const
gchar
*
from
,
const
gchar
*
msg
,
void
*
foo
UNUSED
)
{
{
DEBUG
(
"DBUS: Message
\"
%s
\"
from %s!"
,
msg
,
from
);
// do not display message if instant messaging is disabled
// do not display message if instant messaging is disabled
if
(
eel_gconf_key_exists
(
INSTANT_MESSAGING_ENABLED
)
&&
!
eel_gconf_get_integer
(
INSTANT_MESSAGING_ENABLED
))
if
(
eel_gconf_key_exists
(
INSTANT_MESSAGING_ENABLED
)
&&
!
eel_gconf_get_integer
(
INSTANT_MESSAGING_ENABLED
))
return
;
return
;
IM
Widget
**
widget
;
Gtk
Widget
**
widget
;
gchar
*
id
;
gchar
*
id
;
callable_obj_t
*
call
=
calllist_get_call
(
current_calls
,
callID
);
callable_obj_t
*
call
=
calllist_get_call
(
current_calls
,
callID
);
if
(
call
)
{
if
(
call
)
{
widget
=
(
IMWidget
**
)
&
call
->
_im_widget
;
widget
=
&
call
->
_im_widget
;
id
=
call
->
_callID
;
id
=
call
->
_callID
;
}
else
{
}
else
{
conference_obj_t
*
conf
=
conferencelist_get
(
current_calls
,
callID
);
conference_obj_t
*
conf
=
conferencelist_get
(
current_calls
,
callID
);
...
@@ -140,12 +138,14 @@ incoming_message_cb (DBusGProxy *proxy UNUSED, const gchar* callID UNUSED, const
...
@@ -140,12 +138,14 @@ incoming_message_cb (DBusGProxy *proxy UNUSED, const gchar* callID UNUSED, const
ERROR
(
"Message received, but no recipient found"
);
ERROR
(
"Message received, but no recipient found"
);
return
;
return
;
}
}
widget
=
(
IMWidget
**
)
&
conf
->
_im_widget
;
widget
=
&
conf
->
_im_widget
;
id
=
conf
->
_confID
;
id
=
conf
->
_confID
;
}
}
if
(
im_widget_display
(
widget
,
msg
,
id
,
from
))
if
(
!*
widget
)
im_widget_add_message
(
*
widget
,
from
,
msg
,
0
);
*
widget
=
im_widget_display
(
id
);
im_widget_add_message
(
IM_WIDGET
(
*
widget
),
from
,
msg
,
0
);
}
}
static
void
static
void
...
@@ -211,7 +211,7 @@ static void toggle_im(conference_obj_t *conf, gboolean activate)
...
@@ -211,7 +211,7 @@ static void toggle_im(conference_obj_t *conf, gboolean activate)
{
{
for
(
GSList
*
part
=
conf
->
participant_list
;
part
;
part
=
g_slist_next
(
part
))
{
for
(
GSList
*
part
=
conf
->
participant_list
;
part
;
part
=
g_slist_next
(
part
))
{
callable_obj_t
*
call
=
calllist_get_call
(
current_calls
,
part
->
data
);
callable_obj_t
*
call
=
calllist_get_call
(
current_calls
,
part
->
data
);
if
(
call
&&
call
->
_im_widget
)
if
(
call
)
im_widget_update_state
(
IM_WIDGET
(
call
->
_im_widget
),
activate
);
im_widget_update_state
(
IM_WIDGET
(
call
->
_im_widget
),
activate
);
}
}
}
}
...
@@ -282,9 +282,7 @@ conference_created_cb (DBusGProxy *proxy UNUSED, const gchar* confID, void * foo
...
@@ -282,9 +282,7 @@ conference_created_cb (DBusGProxy *proxy UNUSED, const gchar* confID, void * foo
// set when this call have been added to the conference
// set when this call have been added to the conference
time
(
&
call
->
_time_added
);
time
(
&
call
->
_time_added
);
// if a text widget is already created, disable it, use conference widget instead
im_widget_update_state
(
IM_WIDGET
(
call
->
_im_widget
),
FALSE
);
if
(
call
->
_im_widget
)
im_widget_update_state
(
IM_WIDGET
(
call
->
_im_widget
),
FALSE
);
// if one of these participant is currently recording, the whole conference will be recorded
// if one of these participant is currently recording, the whole conference will be recorded
if
(
call
->
_state
==
CALL_STATE_RECORD
)
if
(
call
->
_state
==
CALL_STATE_RECORD
)
...
@@ -312,9 +310,7 @@ conference_removed_cb (DBusGProxy *proxy UNUSED, const gchar* confID, void * foo
...
@@ -312,9 +310,7 @@ conference_removed_cb (DBusGProxy *proxy UNUSED, const gchar* confID, void * foo
conference_obj_t
*
c
=
conferencelist_get
(
current_calls
,
confID
);
conference_obj_t
*
c
=
conferencelist_get
(
current_calls
,
confID
);
calltree_remove_conference
(
current_calls
,
c
,
NULL
);
calltree_remove_conference
(
current_calls
,
c
,
NULL
);
// deactivate instant messaging window for this conference
im_widget_update_state
(
IM_WIDGET
(
c
->
_im_widget
),
FALSE
);
if
(
c
->
_im_widget
)
im_widget_update_state
(
IM_WIDGET
(
c
->
_im_widget
),
FALSE
);
// remove all participant for this conference
// remove all participant for this conference
for
(
GSList
*
p
=
c
->
participant_list
;
p
;
p
=
conference_next_participant
(
p
))
{
for
(
GSList
*
p
=
c
->
participant_list
;
p
;
p
=
conference_next_participant
(
p
))
{
...
@@ -324,9 +320,7 @@ conference_removed_cb (DBusGProxy *proxy UNUSED, const gchar* confID, void * foo
...
@@ -324,9 +320,7 @@ conference_removed_cb (DBusGProxy *proxy UNUSED, const gchar* confID, void * foo
g_free
(
call
->
_confID
);
g_free
(
call
->
_confID
);
call
->
_confID
=
NULL
;
call
->
_confID
=
NULL
;
// if an instant messaging was previously disabled, enabled it
im_widget_update_state
(
IM_WIDGET
(
call
->
_im_widget
),
TRUE
);
if
(
call
->
_im_widget
)
im_widget_update_state
(
IM_WIDGET
(
call
->
_im_widget
),
TRUE
);
}
}
}
}
...
...
gnome/src/imwindow.c
View file @
7852adff
...
@@ -83,15 +83,11 @@ on_delete (GtkWidget * widget UNUSED, gpointer data UNUSED)
...
@@ -83,15 +83,11 @@ on_delete (GtkWidget * widget UNUSED, gpointer data UNUSED)
static
void
static
void
on_switch_page
(
GtkNotebook
*
notebook
,
GtkNotebookPage
*
page
UNUSED
,
guint
page_num
,
gpointer
userdata
UNUSED
)
on_switch_page
(
GtkNotebook
*
notebook
,
GtkNotebookPage
*
page
UNUSED
,
guint
page_num
,
gpointer
userdata
UNUSED
)
{
{
guint
index
=
gtk_notebook_get_current_page
(
GTK_NOTEBOOK
(
notebook
));
GtkWidget
*
tab
=
gtk_notebook_get_nth_page
(
GTK_NOTEBOOK
(
notebook
),
page_num
);
GtkWidget
*
tab
=
gtk_notebook_get_nth_page
(
GTK_NOTEBOOK
(
notebook
),
page_num
);
// show the current widget
// show the current widget
gtk_widget_grab_focus
(
tab
);
gtk_widget_grab_focus
(
tab
);
gtk_widget_show_now
(
tab
);
gtk_widget_show_now
(
tab
);
DEBUG
(
"InstantMessaging: switch to %i - current = %i
\n
"
,
page_num
,
index
);
}
}
static
void
static
void
...
@@ -141,6 +137,7 @@ im_window_init()
...
@@ -141,6 +137,7 @@ im_window_init()
// Restore position according to the configuration stored in gconf
// Restore position according to the configuration stored in gconf
gtk_window_move
(
GTK_WINDOW
(
im_window
),
position_x
,
position_y
);
gtk_window_move
(
GTK_WINDOW
(
im_window
),
position_x
,
position_y
);
gtk_widget_set_visible
(
im_window
,
FALSE
);
}
}
gboolean
gboolean
...
@@ -155,28 +152,15 @@ im_window_is_active ()
...
@@ -155,28 +152,15 @@ im_window_is_active ()
gboolean
gboolean
im_window_is_visible
()
im_window_is_visible
()
{
{
return
gtk_widget_get_visible
(
GTK_WIDGET
(
im_window_get
()));
return
gtk_widget_get_visible
(
GTK_WIDGET
(
im_window_get
()));
}
void
im_window_show
()
{
gtk_window_present
(
im_window_get
());
}
}
void
void
im_window_add
(
GtkWidget
*
widget
)
im_window_add
(
GtkWidget
*
widget
)
{
{
if
(
im_window_get
())
{
if
(
im_window_get
())
{
/* Add the new tab to the notebook */
im_window_add_tab
(
widget
);
im_window_add_tab
(
widget
);
/* Show it all */
gtk_widget_show_all
(
GTK_WIDGET
(
im_window_get
()));
gtk_widget_show_all
(
GTK_WIDGET
(
im_window_get
()));
}
else
{
ERROR
(
"InstantMessaging: Error: Could not create the main instant messaging window"
);
}
}
}
}
...
@@ -199,6 +183,14 @@ close_tab_cb (GtkButton *button UNUSED, gpointer userdata)
...
@@ -199,6 +183,14 @@ close_tab_cb (GtkButton *button UNUSED, gpointer userdata)
// gtk_widget_destroy (im_window);
// gtk_widget_destroy (im_window);
}
}
static
void
im_window_hide_show_tabs
()
{
/* If only one tab is open, do not display the tab, only the content */
gtk_notebook_set_show_tabs
(
GTK_NOTEBOOK
(
im_notebook
),
gtk_notebook_get_n_pages
(
GTK_NOTEBOOK
(
im_notebook
))
!=
1
);
}
void
void
im_window_add_tab
(
GtkWidget
*
widget
)
im_window_add_tab
(
GtkWidget
*
widget
)
{
{
...
@@ -247,17 +239,6 @@ im_window_add_tab (GtkWidget *widget)
...
@@ -247,17 +239,6 @@ im_window_add_tab (GtkWidget *widget)
im_window_hide_show_tabs
();
im_window_hide_show_tabs
();
}
}
void
im_window_hide_show_tabs
()
{
/* If only one tab is open, do not display the tab, only the content */
if
(
gtk_notebook_get_n_pages
(
GTK_NOTEBOOK
(
im_notebook
))
==
1
)
{
gtk_notebook_set_show_tabs
(
GTK_NOTEBOOK
(
im_notebook
),
FALSE
);
}
else
gtk_notebook_set_show_tabs
(
GTK_NOTEBOOK
(
im_notebook
),
TRUE
);
}
void
void
im_window_show_tab
(
GtkWidget
*
widget
)
im_window_show_tab
(
GtkWidget
*
widget
)
{
{
...
...
gnome/src/imwindow.h
View file @
7852adff
...
@@ -52,8 +52,6 @@ void im_window_add (GtkWidget *widget);
...
@@ -52,8 +52,6 @@ void im_window_add (GtkWidget *widget);
*/
*/
void
im_window_remove_tab
(
GtkWidget
*
widget
);
void
im_window_remove_tab
(
GtkWidget
*
widget
);
void
im_window_show
();
/**
/**
* Return wether the instant messaging window have been created or not
* Return wether the instant messaging window have been created or not
*/
*/
...
@@ -75,11 +73,6 @@ gint im_window_get_nb_tabs (void);
...
@@ -75,11 +73,6 @@ gint im_window_get_nb_tabs (void);
*/
*/
void
im_window_add_tab
(
GtkWidget
*
widget
);
void
im_window_add_tab
(
GtkWidget
*
widget
);
/*! @function
@abstract Decide whether or not the notebook should display its tab. Display the tabs only if more than one tab is opened.
*/
void
im_window_hide_show_tabs
();
/*! @function
/*! @function
@abstract Select the specified tab as current in instant messaging window
@abstract Select the specified tab as current in instant messaging window
@param The tab to be set as current
@param The tab to be set as current
...
...
gnome/src/uimanager.c
View file @
7852adff
...
@@ -577,14 +577,16 @@ call_im(void* foo UNUSED)
...
@@ -577,14 +577,16 @@ call_im(void* foo UNUSED)
conference_obj_t
*
selectedConf
=
calltab_get_selected_conf
(
current_calls
);
conference_obj_t
*
selectedConf
=
calltab_get_selected_conf
(
current_calls
);
if
(
calltab_get_selected_type
(
current_calls
)
==
A_CALL
)
{
if
(
calltab_get_selected_type
(
current_calls
)
==
A_CALL
)
{
if
(
selectedCall
)
if
(
selectedCall
)
{
im_widget_display
((
IMWidget
**
)
(
&
selectedCall
->
_im_widget
),
NULL
,
selectedCall
->
_callID
,
NULL
);
if
(
!
selectedCall
->
_im_widget
)
else
selectedCall
->
_im_widget
=
im_widget_display
(
selectedCall
->
_callID
);
}
else
WARN
(
"Sorry. Instant messaging is not allowed outside a call
\n
"
);
WARN
(
"Sorry. Instant messaging is not allowed outside a call
\n
"
);
}
else
{
}
else
{
if
(
selectedConf
)
if
(
selectedConf
)
{
im_widget_display
((
IMWidget
**
)
(
&
selectedConf
->
_im_widget
),
NULL
,
selectedConf
->
_confID
,
NULL
);
if
(
!
selectedConf
->
_im_widget
)
else
selectedConf
->
_im_widget
=
im_widget_display
(
selectedConf
->
_confID
);
}
else
WARN
(
"Sorry. Instant messaging is not allowed outside a call
\n
"
);
WARN
(
"Sorry. Instant messaging is not allowed outside a call
\n
"
);
}
}
}
}
...
...
gnome/src/widget/imwidget.c
View file @
7852adff
...
@@ -35,6 +35,7 @@
...
@@ -35,6 +35,7 @@
#include <JavaScriptCore/JavaScript.h>
#include <JavaScriptCore/JavaScript.h>
#include <gdk/gdkkeysyms.h>
#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
#include <gtk/gtk.h>
#include <assert.h>
#include "sflphone_const.h"
#include "sflphone_const.h"
...
@@ -44,84 +45,81 @@ static void
...
@@ -44,84 +45,81 @@ static void
on_frame_loading_done
(
GObject
*
gobject
UNUSED
,
GParamSpec
*
pspec
UNUSED
,
gpointer
user_data
)
on_frame_loading_done
(
GObject
*
gobject
UNUSED
,
GParamSpec
*
pspec
UNUSED
,
gpointer
user_data
)
{
{
IMWidget
*
im
=
IM_WIDGET
(
user_data
);
IMWidget
*
im
=
IM_WIDGET
(
user_data
);
callable_obj_t
*
call
;
conference_obj_t
*
conf
;
if
(
im
->
first_message
&&
im
->
first_message_from
)
{
switch
(
webkit_web_frame_get_load_status
(
WEBKIT_WEB_FRAME
(
im
->
web_frame
)))
{
case
WEBKIT_LOAD_PROVISIONAL
:
case
WEBKIT_LOAD_COMMITTED
:
break
;
case
WEBKIT_LOAD_FINISHED
:
call
=
calllist_get_call
(
current_calls
,
im
->
call_id
);
conf
=
conferencelist_get
(
current_calls
,
im
->
call_id
);
if
(
call
)
im_widget_add_message
(
im
,
im
->
first_message_from
,
im
->
first_message
,
0
);
if
(
conf
)
im_widget_add_message
(
im
,
im
->
first_message_from
,
im
->
first_message
,
0
);
g_free
(
im
->
first_message
);
g_free
(
im
->
first_message_from
);
im
->
first_message
=
NULL
;
im
->
first_message_from
=
NULL
;
DEBUG
(
"InstantMessaging: JavaScrip loading frame finished"
);
break
;
case
WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT
:
// case WEBKIT_LOAD_FAILED: // only available in webkit-1.0-2
break
;
case
WEBKIT_LOAD_FAILED
:
DEBUG
(
"InstantMessaging: Webkit load failed"
);
break
;
default:
ERROR
(
"InstantMessaging: Error: Not a valid case in switch"
);
break
;
}
}
if
(
!
im
->
first_message
||
!
im
->
first_message_from
)
return
;
switch
(
webkit_web_frame_get_load_status
(
WEBKIT_WEB_FRAME
(
im
->
web_frame
)))
{
case
WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT
:
case
WEBKIT_LOAD_PROVISIONAL
:
case
WEBKIT_LOAD_COMMITTED
:
break
;
case
WEBKIT_LOAD_FINISHED
:
if
(
calllist_get_call
(
current_calls
,
im
->
call_id
))
im_widget_add_message
(
im
,
im
->
first_message_from
,
im
->
first_message
,
0
);
if
(
conferencelist_get
(
current_calls
,
im
->
call_id
))
im_widget_add_message
(
im
,
im
->
first_message_from
,
im
->
first_message
,
0
);
g_free
(
im
->
first_message
);
g_free
(
im
->
first_message_from
);
im
->
first_message
=
NULL
;
im
->
first_message_from
=
NULL
;
break
;
case
WEBKIT_LOAD_FAILED
:
DEBUG
(
"InstantMessaging: Webkit load failed"
);
break
;
}
}
}
gchar
*