[darcs-to-svn @ fix including of mcd-*.h files]
[empathy.git] / src / empathy-filter-plugin.c
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3  * Copyright (C) 2007 Collabora Ltd.
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License as
7  * published by the Free Software Foundation; either version 2 of the
8  * License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public
16  * License along with this program; if not, write to the
17  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18  * Boston, MA 02111-1307, USA.
19  * 
20  * Authors: Xavier Claessens <xclaesse@gmail.com>
21  */
22
23 #include <glib.h>
24
25 #include <mcd-dispatcher.h>
26 #include <mcd-dispatcher-context.h>
27
28 static void filter_plugin_text_channel (McdDispatcherContext *ctx);
29
30 static McdFilter text_in_filters[] = {
31     {filter_plugin_text_channel, MCD_FILTER_PRIORITY_USER},
32     {NULL, 0}
33 };
34
35 void
36 mcd_filters_init (McdDispatcher *dispatcher)
37 {
38         mcd_dispatcher_register_filters (dispatcher,
39                                          text_in_filters,
40                                          TELEPATHY_CHAN_IFACE_TEXT_QUARK,
41                                          MCD_FILTER_IN);
42 }
43
44 static void
45 filter_plugin_text_channel (McdDispatcherContext *ctx)
46 {
47         McdChannel  *channel;
48         const gchar *channel_name;
49
50         channel = mcd_dispatcher_context_get_channel (ctx);
51         channel_name = mcd_channel_get_name (channel);
52
53         if (strcmp (channel_name, "goerge.w.bush@whitehouse.com") == 0) {
54                 g_debug ("Blocking contact");
55                 mcd_dispatcher_context_process (ctx, FALSE);
56                 return;
57         }
58
59         mcd_dispatcher_context_process (ctx, TRUE);
60 }
61