63
<td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span> <span class="function">stream_handler_iface_init</span> <span class="gtkdoc opt">(</span>gpointer<span class="gtkdoc opt">,</span> gpointer<span class="gtkdoc opt">);</span>
63
<td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span><span class="normal"> </span><span class="function">stream_handler_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">gpointer</span><span class="symbol">,</span><span class="normal"> gpointer</span><span class="symbol">);</span>
65
<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS">G_DEFINE_TYPE_WITH_CODE</a></span><span class="gtkdoc opt">(</span>GabbleMediaStream<span class="gtkdoc opt">,</span>
66
gabble_media_stream<span class="gtkdoc opt">,</span>
67
G_TYPE_OBJECT<span class="gtkdoc opt">,</span>
68
<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_MEDIA_STREAM_HANDLER<span class="gtkdoc opt">,</span>
69
stream_handler_iface_init<span class="gtkdoc opt">)</span>
70
<span class="gtkdoc opt">)</span></pre></td>
65
<span class="function">G_DEFINE_TYPE_WITH_CODE</span><span class="symbol">(</span><span class="normal">GabbleMediaStream</span><span class="symbol">,</span>
66
<span class="normal"> gabble_media_stream</span><span class="symbol">,</span>
67
<span class="normal"> G_TYPE_OBJECT</span><span class="symbol">,</span>
68
<span class="normal"> </span><span class="function">G_IMPLEMENT_INTERFACE</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_MEDIA_STREAM_HANDLER</span><span class="symbol">,</span>
69
<span class="normal"> stream_handler_iface_init</span><span class="symbol">)</span>
70
<span class="normal"> </span><span class="symbol">)</span></pre></td>
114
114
<td class="listing_code"><pre class="programlisting"><span class="comment">/* in header files */</span>
115
<span class="gtkdoc kwb">void</span> <span class="function">conn_aliasing_iface_init</span> <span class="gtkdoc opt">(</span>gpointer<span class="gtkdoc opt">,</span> gpointer<span class="gtkdoc opt">);</span>
116
<span class="gtkdoc kwb">void</span> <span class="function">conn_avatars_iface_init</span> <span class="gtkdoc opt">(</span>gpointer<span class="gtkdoc opt">,</span> gpointer<span class="gtkdoc opt">);</span>
117
<span class="gtkdoc kwb">void</span> <span class="function">conn_presence_iface_init</span> <span class="gtkdoc opt">(</span>gpointer<span class="gtkdoc opt">,</span> gpointer<span class="gtkdoc opt">);</span>
115
<span class="type">void</span><span class="normal"> </span><span class="function">conn_aliasing_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">gpointer</span><span class="symbol">,</span><span class="normal"> gpointer</span><span class="symbol">);</span>
116
<span class="type">void</span><span class="normal"> </span><span class="function">conn_avatars_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">gpointer</span><span class="symbol">,</span><span class="normal"> gpointer</span><span class="symbol">);</span>
117
<span class="type">void</span><span class="normal"> </span><span class="function">conn_presence_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">gpointer</span><span class="symbol">,</span><span class="normal"> gpointer</span><span class="symbol">);</span>
119
119
<span class="comment">/* in gabble-connection.c */</span>
120
<span class="gtkdoc kwb">static void</span> <span class="function">conn_iface_init</span> <span class="gtkdoc opt">(</span>gpointer<span class="gtkdoc opt">,</span> gpointer<span class="gtkdoc opt">);</span>
121
<span class="gtkdoc kwb">static void</span> <span class="function">capabilities_iface_init</span> <span class="gtkdoc opt">(</span>gpointer<span class="gtkdoc opt">,</span> gpointer<span class="gtkdoc opt">);</span>
120
<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span><span class="normal"> </span><span class="function">conn_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">gpointer</span><span class="symbol">,</span><span class="normal"> gpointer</span><span class="symbol">);</span>
121
<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span><span class="normal"> </span><span class="function">capabilities_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">gpointer</span><span class="symbol">,</span><span class="normal"> gpointer</span><span class="symbol">);</span>
123
<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS">G_DEFINE_TYPE_WITH_CODE</a></span><span class="gtkdoc opt">(</span>GabbleConnection<span class="gtkdoc opt">,</span>
124
gabble_connection<span class="gtkdoc opt">,</span>
125
TP_TYPE_BASE_CONNECTION<span class="gtkdoc opt">,</span>
126
<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CONNECTION<span class="gtkdoc opt">,</span>
127
conn_iface_init<span class="gtkdoc opt">);</span>
128
<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CONNECTION_INTERFACE_ALIASING<span class="gtkdoc opt">,</span>
129
conn_aliasing_iface_init<span class="gtkdoc opt">);</span>
130
<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CONNECTION_INTERFACE_AVATARS<span class="gtkdoc opt">,</span>
131
conn_avatars_iface_init<span class="gtkdoc opt">);</span>
132
<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CONNECTION_INTERFACE_CAPABILITIES<span class="gtkdoc opt">,</span>
133
capabilities_init<span class="gtkdoc opt">);</span>
134
<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span> <span class="gtkdoc opt">(</span>TP_TYPE_SVC_CONNECTION_INTERFACE_PRESENCE<span class="gtkdoc opt">,</span>
135
conn_presence_iface_init<span class="gtkdoc opt">);</span>
136
<span class="gtkdoc opt">)</span></pre></td>
123
<span class="function">G_DEFINE_TYPE_WITH_CODE</span><span class="symbol">(</span><span class="normal">GabbleConnection</span><span class="symbol">,</span>
124
<span class="normal"> gabble_connection</span><span class="symbol">,</span>
125
<span class="normal"> TP_TYPE_BASE_CONNECTION</span><span class="symbol">,</span>
126
<span class="normal"> </span><span class="function">G_IMPLEMENT_INTERFACE</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CONNECTION</span><span class="symbol">,</span>
127
<span class="normal"> conn_iface_init</span><span class="symbol">);</span>
128
<span class="normal"> </span><span class="function">G_IMPLEMENT_INTERFACE</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CONNECTION_INTERFACE_ALIASING</span><span class="symbol">,</span>
129
<span class="normal"> conn_aliasing_iface_init</span><span class="symbol">);</span>
130
<span class="normal"> </span><span class="function">G_IMPLEMENT_INTERFACE</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CONNECTION_INTERFACE_AVATARS</span><span class="symbol">,</span>
131
<span class="normal"> conn_avatars_iface_init</span><span class="symbol">);</span>
132
<span class="normal"> </span><span class="function">G_IMPLEMENT_INTERFACE</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CONNECTION_INTERFACE_CAPABILITIES</span><span class="symbol">,</span>
133
<span class="normal"> capabilities_init</span><span class="symbol">);</span>
134
<span class="normal"> </span><span class="function">G_IMPLEMENT_INTERFACE</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TP_TYPE_SVC_CONNECTION_INTERFACE_PRESENCE</span><span class="symbol">,</span>
135
<span class="normal"> conn_presence_iface_init</span><span class="symbol">);</span>
136
<span class="normal"> </span><span class="symbol">)</span></pre></td>
159
159
<td class="listing_lines" align="right"><pre>1
162
<td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">void</span> <span class="gtkdoc opt">(*</span>tp_svc_media_session_handler_error_impl<span class="gtkdoc opt">)</span>
163
<span class="gtkdoc opt">(</span>TpSvcMediaSessionHandler <span class="gtkdoc opt">*</span>self<span class="gtkdoc opt">,</span> guint errno<span class="gtkdoc opt">,</span> <span class="gtkdoc kwb">const char</span> <span class="gtkdoc opt">*</span>message<span class="gtkdoc opt">,</span>
164
DBusGMethodInvocation <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">);</span></pre></td>
162
<td class="listing_code"><pre class="programlisting"><span class="type">void</span><span class="normal"> </span><span class="symbol">(*</span><span class="normal"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-error-impl">tp_svc_media_session_handler_error_impl</a></span><span class="symbol">)</span>
163
<span class="normal"> </span><span class="symbol">(</span><span class="usertype">TpSvcMediaSessionHandler</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">guint</span><span class="normal"> errno</span><span class="symbol">,</span><span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">message</span><span class="symbol">,</span>
164
<span class="normal"> </span><span class="usertype">DBusGMethodInvocation</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">);</span></pre></td>
186
<td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
187
<span class="function">gabble_media_session_error</span> <span class="gtkdoc opt">(</span>TpSvcMediaSessionHandler <span class="gtkdoc opt">*</span>iface<span class="gtkdoc opt">,</span>
188
guint errno<span class="gtkdoc opt">,</span>
189
<span class="gtkdoc kwb">const char</span> <span class="gtkdoc opt">*</span>message<span class="gtkdoc opt">,</span>
190
DBusGMethodInvocation <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">)</span>
191
<span class="gtkdoc opt">{</span>
192
GabbleMediaSession <span class="gtkdoc opt">*</span>self <span class="gtkdoc opt">=</span> <span class="function">GABBLE_MEDIA_SESSION</span> <span class="gtkdoc opt">(</span>iface<span class="gtkdoc opt">);</span>
186
<td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
187
<span class="function">gabble_media_session_error</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TpSvcMediaSessionHandler</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">iface</span><span class="symbol">,</span>
188
<span class="normal"> </span><span class="usertype">guint</span><span class="normal"> errno</span><span class="symbol">,</span>
189
<span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">message</span><span class="symbol">,</span>
190
<span class="normal"> </span><span class="usertype">DBusGMethodInvocation</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">)</span>
191
<span class="cbracket">{</span>
192
<span class="normal"> </span><span class="usertype">GabbleMediaSession</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self </span><span class="symbol">=</span><span class="normal"> </span><span class="function">GABBLE_MEDIA_SESSION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">iface</span><span class="symbol">);</span>
194
<span class="comment">/* do stuff with self here */</span></pre></td>
194
<span class="normal"> </span><span class="comment">/* do stuff with self here */</span></pre></td>
237
<td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
238
<span class="function">gabble_media_session_error</span> <span class="gtkdoc opt">(</span>TpSvcMediaSessionHandler <span class="gtkdoc opt">*</span>iface<span class="gtkdoc opt">,</span>
239
guint errno<span class="gtkdoc opt">,</span>
240
<span class="gtkdoc kwb">const char</span> <span class="gtkdoc opt">*</span>message<span class="gtkdoc opt">,</span>
241
DBusGMethodInvocation <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">)</span>
242
<span class="gtkdoc opt">{</span>
243
GabbleMediaSession <span class="gtkdoc opt">*</span>self <span class="gtkdoc opt">=</span> <span class="function">GABBLE_MEDIA_SESSION</span> <span class="gtkdoc opt">(</span>iface<span class="gtkdoc opt">);</span>
245
<span class="comment">/* do stuff with self here */</span>
247
<span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-return-from-error">tp_svc_media_session_handler_return_from_error</a></span> <span class="gtkdoc opt">(</span>context<span class="gtkdoc opt">);</span>
248
<span class="gtkdoc opt">}</span></pre></td>
237
<td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
238
<span class="function">gabble_media_session_error</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TpSvcMediaSessionHandler</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">iface</span><span class="symbol">,</span>
239
<span class="normal"> </span><span class="usertype">guint</span><span class="normal"> errno</span><span class="symbol">,</span>
240
<span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">message</span><span class="symbol">,</span>
241
<span class="normal"> </span><span class="usertype">DBusGMethodInvocation</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">)</span>
242
<span class="cbracket">{</span>
243
<span class="normal"> </span><span class="usertype">GabbleMediaSession</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self </span><span class="symbol">=</span><span class="normal"> </span><span class="function">GABBLE_MEDIA_SESSION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">iface</span><span class="symbol">);</span>
245
<span class="normal"> </span><span class="comment">/* do stuff with self here */</span>
247
<span class="normal"> </span><span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-return-from-error">tp_svc_media_session_handler_return_from_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">context</span><span class="symbol">);</span>
248
<span class="cbracket">}</span></pre></td>
270
270
<td class="listing_lines" align="right"><pre>1
272
<td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-emit-new-stream-handler">tp_svc_media_session_handler_emit_new_stream_handler</a></span> <span class="gtkdoc opt">(</span>session<span class="gtkdoc opt">,</span>
273
object_path<span class="gtkdoc opt">,</span> id<span class="gtkdoc opt">,</span> media_type<span class="gtkdoc opt">,</span> TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL<span class="gtkdoc opt">);</span></pre></td>
272
<td class="listing_code"><pre class="programlisting"><span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-emit-new-stream-handler">tp_svc_media_session_handler_emit_new_stream_handler</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">session</span><span class="symbol">,</span>
273
<span class="normal"> object_path</span><span class="symbol">,</span><span class="normal"> id</span><span class="symbol">,</span><span class="normal"> media_type</span><span class="symbol">,</span><span class="normal"> <a href="telepathy-glib-enums.html#TP-MEDIA-STREAM-DIRECTION-BIDIRECTIONAL:CAPS">TP_MEDIA_STREAM_DIRECTION_BIDIRECTIONAL</a></span><span class="symbol">);</span></pre></td>
304
<td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
305
<span class="function">session_handler_iface_init</span> <span class="gtkdoc opt">(</span>gpointer g_iface<span class="gtkdoc opt">,</span> gpointer iface_data<span class="gtkdoc opt">)</span>
306
<span class="gtkdoc opt">{</span>
307
TpSvcMediaSessionHandlerClass <span class="gtkdoc opt">*</span>klass <span class="gtkdoc opt">=</span>
308
<span class="gtkdoc opt">(</span>TpSvcMediaSessionHandlerClass <span class="gtkdoc opt">*)</span>g_iface<span class="gtkdoc opt">;</span>
304
<td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
305
<span class="function">session_handler_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">gpointer</span><span class="normal"> g_iface</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> iface_data</span><span class="symbol">)</span>
306
<span class="cbracket">{</span>
307
<span class="normal"> </span><span class="usertype">TpSvcMediaSessionHandlerClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">klass </span><span class="symbol">=</span>
308
<span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="telepathy-glib-svc-media-interfaces.html#TpSvcMediaSessionHandlerClass">TpSvcMediaSessionHandlerClass</a> </span><span class="symbol">*)</span><span class="normal">g_iface</span><span class="symbol">;</span>
310
<span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-implement-error">tp_svc_media_session_handler_implement_error</a></span> <span class="gtkdoc opt">(</span>klass<span class="gtkdoc opt">,</span>
311
gabble_media_session_error<span class="gtkdoc opt">);</span>
312
<span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-implement-ready">tp_svc_media_session_handler_implement_ready</a></span> <span class="gtkdoc opt">(</span>klass<span class="gtkdoc opt">,</span>
313
gabble_media_session_ready<span class="gtkdoc opt">);</span>
314
<span class="gtkdoc opt">}</span></pre></td>
310
<span class="normal"> </span><span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-implement-error">tp_svc_media_session_handler_implement_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">klass</span><span class="symbol">,</span>
311
<span class="normal"> gabble_media_session_error</span><span class="symbol">);</span>
312
<span class="normal"> </span><span class="function"><a href="telepathy-glib-svc-media-interfaces.html#tp-svc-media-session-handler-implement-ready">tp_svc_media_session_handler_implement_ready</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">klass</span><span class="symbol">,</span>
313
<span class="normal"> gabble_media_session_ready</span><span class="symbol">);</span>
314
<span class="cbracket">}</span></pre></td>
341
<td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
342
<span class="function">session_handler_iface_init</span> <span class="gtkdoc opt">(</span>gpointer g_iface<span class="gtkdoc opt">,</span> gpointer iface_data<span class="gtkdoc opt">)</span>
343
<span class="gtkdoc opt">{</span>
344
TpSvcMediaSessionHandlerClass <span class="gtkdoc opt">*</span>klass <span class="gtkdoc opt">=</span>
345
<span class="gtkdoc opt">(</span>TpSvcMediaSessionHandlerClass <span class="gtkdoc opt">*)</span>g_iface<span class="gtkdoc opt">;</span>
341
<td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
342
<span class="function">session_handler_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">gpointer</span><span class="normal"> g_iface</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> iface_data</span><span class="symbol">)</span>
343
<span class="cbracket">{</span>
344
<span class="normal"> </span><span class="usertype">TpSvcMediaSessionHandlerClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">klass </span><span class="symbol">=</span>
345
<span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="telepathy-glib-svc-media-interfaces.html#TpSvcMediaSessionHandlerClass">TpSvcMediaSessionHandlerClass</a> </span><span class="symbol">*)</span><span class="normal">g_iface</span><span class="symbol">;</span>
347
<span class="gtkdoc ppc">#define IMPLEMENT(x) tp_svc_media_session_handler_implement_##x (\</span>
348
<span class="gtkdoc ppc"> klass, gabble_media_session_##x)</span>
349
<span class="function">IMPLEMENT</span><span class="gtkdoc opt">(</span>error<span class="gtkdoc opt">);</span>
350
<span class="function">IMPLEMENT</span><span class="gtkdoc opt">(</span>ready<span class="gtkdoc opt">);</span>
351
<span class="gtkdoc ppc">#undef IMPLEMENT</span>
352
<span class="gtkdoc opt">}</span></pre></td>
347
<span class="preproc">#define</span><span class="normal"> </span><span class="function">IMPLEMENT</span><span class="symbol">(</span><span class="normal">x</span><span class="symbol">)</span><span class="normal"> tp_svc_media_session_handler_implement_##</span><span class="function">x</span><span class="normal"> </span><span class="symbol">(\</span>
348
<span class="normal"> klass</span><span class="symbol">,</span><span class="normal"> gabble_media_session_##x</span><span class="symbol">)</span>
349
<span class="normal"> </span><span class="function">IMPLEMENT</span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
350
<span class="normal"> </span><span class="function">IMPLEMENT</span><span class="symbol">(</span><span class="normal">ready</span><span class="symbol">);</span>
351
<span class="preproc">#undef</span><span class="normal"> IMPLEMENT</span>
352
<span class="cbracket">}</span></pre></td>