ekiga r7623 - trunk/lib/engine/components/gnome-session
- From: jpuydt svn gnome org
- To: svn-commits-list gnome org
- Subject: ekiga r7623 - trunk/lib/engine/components/gnome-session
- Date: Thu, 29 Jan 2009 14:40:43 +0000 (UTC)
Author: jpuydt
Date: Thu Jan 29 14:40:43 2009
New Revision: 7623
URL: http://svn.gnome.org/viewvc/ekiga?rev=7623&view=rev
Log:
Made the gnome session react on established and cleared calls (just prints something for now)
Modified:
trunk/lib/engine/components/gnome-session/gnome-session-main.cpp
Modified: trunk/lib/engine/components/gnome-session/gnome-session-main.cpp
==============================================================================
--- trunk/lib/engine/components/gnome-session/gnome-session-main.cpp (original)
+++ trunk/lib/engine/components/gnome-session/gnome-session-main.cpp Thu Jan 29 14:40:43 2009
@@ -35,11 +35,35 @@
*
*/
+#include <iostream>
+#include <map>
+
#include "services.h"
#include "call-core.h"
#include "gnome-session-main.h"
+struct GNOMESESSIONService: public Ekiga::Service
+{
+ GNOMESESSIONService (gmref_ptr<Ekiga::CallCore> call_core);
+
+ const std::string get_name () const
+ { return "gnome-session"; }
+
+ const std::string get_description () const
+ { return "\tComponent connecting ekiga to the gnome session"; }
+
+private:
+
+ void on_established_call (gmref_ptr<Ekiga::CallManager> manager,
+ gmref_ptr<Ekiga::Call> call);
+
+ void on_cleared_call (gmref_ptr<Ekiga::CallManager> manager,
+ gmref_ptr<Ekiga::Call> call);
+
+ std::map<gmref_ptr<Ekiga::Call>, std::string> cookies;
+};
+
struct GNOMESESSIONSpark: public Ekiga::Spark
{
GNOMESESSIONSpark (): result(false)
@@ -49,14 +73,13 @@
int* /*argc*/,
char** /*argv*/[])
{
- gmref_ptr<Ekiga::CallCore> call = core.get ("call-core");
+ gmref_ptr<Ekiga::CallCore> call_core = core.get ("call-core");
gmref_ptr<Ekiga::Service> service = core.get ("gnome-session");
- if (call && !service) {
+ if (call_core && !service) {
result = true;
- core.add (gmref_ptr<Ekiga::Service> (new Ekiga::BasicService ("gnome-session",
- "\tComponent connecting ekiga to the gnome session")));
+ core.add (gmref_ptr<Ekiga::Service> (new GNOMESESSIONService (call_core)));
}
return result;
@@ -77,3 +100,29 @@
gmref_ptr<Ekiga::Spark> spark(new GNOMESESSIONSpark);
kickstart.add_spark (spark);
}
+
+GNOMESESSIONService::GNOMESESSIONService (gmref_ptr<Ekiga::CallCore> call_core)
+{
+ call_core->established_call.connect (sigc::mem_fun (this, &GNOMESESSIONService::on_established_call));
+ call_core->setup_call.connect (sigc::mem_fun (this, &GNOMESESSIONService::on_cleared_call));
+}
+
+void
+GNOMESESSIONService::on_established_call (gmref_ptr<Ekiga::CallManager> /*manager*/,
+ gmref_ptr<Ekiga::Call> /*call*/)
+{
+ std::cout << "Should Inhibit and store a cookie" << std::endl;
+}
+
+void
+GNOMESESSIONService::on_cleared_call (gmref_ptr<Ekiga::CallManager> /*manager*/,
+ gmref_ptr<Ekiga::Call> call)
+{
+ std::map<gmref_ptr<Ekiga::Call>, std::string>::iterator iter = cookies.find (call);
+
+ if (iter != cookies.end ()) {
+
+ std::cout << "Should Uninhibit cookie " << iter->second << std::endl;
+ cookies.erase (iter);
+ }
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]