## Service-side media streaming helper interfaces

Service-side media streaming helper interfaces — media session and media stream

## Synopsis

    #include <telepathy-glib/svc-media-interfaces.h>

                        TpSvcMediaSessionHandler;
                        TpSvcMediaSessionHandlerClass;
    void                (*tp_svc_media_session_handler_error_impl)
                                                            (TpSvcMediaSessionHandler *self,
                                                             guint in_Error_Code,
                                                             const gchar *in_Message,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_media_session_handler_implement_error
                                                            (TpSvcMediaSessionHandlerClass *klass,
                                                             tp_svc_media_session_handler_error_impl impl);
    void                tp_svc_media_session_handler_return_from_error
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_media_session_handler_ready_impl)
                                                            (TpSvcMediaSessionHandler *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_media_session_handler_implement_ready
                                                            (TpSvcMediaSessionHandlerClass *klass,
                                                             tp_svc_media_session_handler_ready_impl impl);
    void                tp_svc_media_session_handler_return_from_ready
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_media_session_handler_emit_new_stream_handler
                                                            (gpointer instance,
                                                             const gchar *arg_Stream_Handler,
                                                             guint arg_ID,
                                                             guint arg_Media_Type,
                                                             guint arg_Direction);

                        TpSvcMediaStreamHandler;
                        TpSvcMediaStreamHandlerClass;
    void                (*tp_svc_media_stream_handler_codec_choice_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             guint in_Codec_ID,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_media_stream_handler_implement_codec_choice
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_codec_choice_impl impl);
    void                tp_svc_media_stream_handler_return_from_codec_choice
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_media_stream_handler_error_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             guint in_Error_Code,
                                                             const gchar *in_Message,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_media_stream_handler_implement_error
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_error_impl impl);
    void                tp_svc_media_stream_handler_return_from_error
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_media_stream_handler_native_candidates_prepared_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_media_stream_handler_implement_native_candidates_prepared
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_native_candidates_prepared_impl impl);
    void                tp_svc_media_stream_handler_return_from_native_candidates_prepared
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_media_stream_handler_new_active_candidate_pair_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             const gchar *in_Native_Candidate_ID,
                                                             const gchar *in_Remote_Candidate_ID,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_media_stream_handler_implement_new_active_candidate_pair
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_new_active_candidate_pair_impl impl);
    void                tp_svc_media_stream_handler_return_from_new_active_candidate_pair
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_media_stream_handler_new_native_candidate_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             const gchar *in_Candidate_ID,
                                                             const GPtrArray *in_Transports,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_media_stream_handler_implement_new_native_candidate
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_new_native_candidate_impl impl);
    void                tp_svc_media_stream_handler_return_from_new_native_candidate
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_media_stream_handler_ready_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             const GPtrArray *in_Codecs,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_media_stream_handler_implement_ready
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_ready_impl impl);
    void                tp_svc_media_stream_handler_return_from_ready
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_media_stream_handler_set_local_codecs_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             const GPtrArray *in_Codecs,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_media_stream_handler_implement_set_local_codecs
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_set_local_codecs_impl impl);
    void                tp_svc_media_stream_handler_return_from_set_local_codecs
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_media_stream_handler_stream_state_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             guint in_State,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_media_stream_handler_implement_stream_state
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_stream_state_impl impl);
    void                tp_svc_media_stream_handler_return_from_stream_state
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_media_stream_handler_supported_codecs_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             const GPtrArray *in_Codecs,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_media_stream_handler_implement_supported_codecs
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_supported_codecs_impl impl);
    void                tp_svc_media_stream_handler_return_from_supported_codecs
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_media_stream_handler_emit_add_remote_candidate
                                                            (gpointer instance,
                                                             const gchar *arg_Candidate_ID,
                                                             const GPtrArray *arg_Transports);
    void                tp_svc_media_stream_handler_emit_close
                                                            (gpointer instance);
    void                tp_svc_media_stream_handler_emit_remove_remote_candidate
                                                            (gpointer instance,
                                                             const gchar *arg_Candidate_ID);
    void                tp_svc_media_stream_handler_emit_set_active_candidate_pair
                                                            (gpointer instance,
                                                             const gchar *arg_Native_Candidate_ID,
                                                             const gchar *arg_Remote_Candidate_ID);
    void                tp_svc_media_stream_handler_emit_set_remote_candidate_list
                                                            (gpointer instance,
                                                             const GPtrArray *arg_Remote_Candidates);
    void                tp_svc_media_stream_handler_emit_set_remote_codecs
                                                            (gpointer instance,
                                                             const GPtrArray *arg_Codecs);
    void                tp_svc_media_stream_handler_emit_set_stream_playing
                                                            (gpointer instance,
                                                             gboolean arg_Playing);
    void                tp_svc_media_stream_handler_emit_set_stream_sending
                                                            (gpointer instance,
                                                             gboolean arg_Sending);
    void                tp_svc_media_stream_handler_emit_start_telephony_event
                                                            (gpointer instance,
                                                             guchar arg_Event);
    void                tp_svc_media_stream_handler_emit_stop_telephony_event
                                                            (gpointer instance);
    void                tp_svc_media_stream_handler_emit_set_stream_held
                                                            (gpointer instance,
                                                             gboolean arg_Held);
    void                (*tp_svc_media_stream_handler_hold_state_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             gboolean in_Held,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_media_stream_handler_implement_hold_state
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_hold_state_impl impl);
    void                tp_svc_media_stream_handler_implement_unhold_failure
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_unhold_failure_impl impl);
    void                tp_svc_media_stream_handler_return_from_hold_state
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_media_stream_handler_return_from_unhold_failure
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_media_stream_handler_unhold_failure_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             DBusGMethodInvocation *context);
    void                (*tp_svc_media_stream_handler_codecs_updated_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             const GPtrArray *in_Codecs,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_media_stream_handler_implement_codecs_updated
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_codecs_updated_impl impl);
    void                tp_svc_media_stream_handler_return_from_codecs_updated
                                                            (DBusGMethodInvocation *context);

## Object Hierarchy

      GInterface
       +----TpSvcMediaSessionHandler

      GInterface
       +----TpSvcMediaStreamHandler

## Signals

      "new-stream-handler"                             : Run Last / Has Details
      "add-remote-candidate"                           : Run Last / Has Details
      "close"                                          : Run Last / Has Details
      "remove-remote-candidate"                        : Run Last / Has Details
      "set-active-candidate-pair"                      : Run Last / Has Details
      "set-remote-candidate-list"                      : Run Last / Has Details
      "set-remote-codecs"                              : Run Last / Has Details
      "set-stream-held"                                : Run Last / Has Details
      "set-stream-playing"                             : Run Last / Has Details
      "set-stream-sending"                             : Run Last / Has Details
      "start-telephony-event"                          : Run Last / Has Details
      "stop-telephony-event"                           : Run Last / Has Details

## Description

These interfaces (auto-generated from the telepathy spec) make it easier to export the objects used to implement TpSvcChannelTypeStreamedMedia, with the correct method and signal signatures, and emit signals from those objects.

## Details

### TpSvcMediaSessionHandler

    typedef struct _TpSvcMediaSessionHandler TpSvcMediaSessionHandler;

Dummy typedef representing any implementation of this interface.

### TpSvcMediaSessionHandlerClass

    typedef struct _TpSvcMediaSessionHandlerClass TpSvcMediaSessionHandlerClass;

The class of TpSvcMediaSessionHandler.

In a full implementation of this interface (i.e. all methods implemented), the interface initialization function used in `G_IMPLEMENT_INTERFACE()` would typically look like this:

    static void
    implement_media_session_handler (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_media_session_handler_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (error);
      IMPLEMENT (ready);
    #undef IMPLEMENT
    }

### tp_svc_media_session_handler_error_impl ()

    void                (*tp_svc_media_session_handler_error_impl)
                                                            (TpSvcMediaSessionHandler *self,
                                                             guint in_Error_Code,
                                                             const gchar *in_Message,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method Error on interface org.freedesktop.Telepathy.Media.SessionHandler.

`self` : | The object implementing this interface
`in_Error_Code` : | guint (FIXME, generate documentation)
`in_Message` : | const gchar * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_media_session_handler_implement_error ()

    void                tp_svc_media_session_handler_implement_error
                                                            (TpSvcMediaSessionHandlerClass *klass,
                                                             tp_svc_media_session_handler_error_impl impl);

Register an implementation for the Error method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the Error D-Bus method

### tp_svc_media_session_handler_return_from_error ()

    void                tp_svc_media_session_handler_return_from_error
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_media_session_handler_ready_impl ()

    void                (*tp_svc_media_session_handler_ready_impl)
                                                            (TpSvcMediaSessionHandler *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method Ready on interface org.freedesktop.Telepathy.Media.SessionHandler.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_media_session_handler_implement_ready ()

    void                tp_svc_media_session_handler_implement_ready
                                                            (TpSvcMediaSessionHandlerClass *klass,
                                                             tp_svc_media_session_handler_ready_impl impl);

Register an implementation for the Ready method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the Ready D-Bus method

### tp_svc_media_session_handler_return_from_ready ()

    void                tp_svc_media_session_handler_return_from_ready
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_media_session_handler_emit_new_stream_handler ()

    void                tp_svc_media_session_handler_emit_new_stream_handler
                                                            (gpointer instance,
                                                             const gchar *arg_Stream_Handler,
                                                             guint arg_ID,
                                                             guint arg_Media_Type,
                                                             guint arg_Direction);

Type-safe wrapper around g_signal_emit to emit the NewStreamHandler signal on interface org.freedesktop.Telepathy.Media.SessionHandler.

`instance` : | The object implementing this interface
`arg_Stream_Handler` : | const gchar * (FIXME, generate documentation)
`arg_ID` : | guint (FIXME, generate documentation)
`arg_Media_Type` : | guint (FIXME, generate documentation)
`arg_Direction` : | guint (FIXME, generate documentation)

### TpSvcMediaStreamHandler

    typedef struct _TpSvcMediaStreamHandler TpSvcMediaStreamHandler;

Dummy typedef representing any implementation of this interface.

### TpSvcMediaStreamHandlerClass

    typedef struct _TpSvcMediaStreamHandlerClass TpSvcMediaStreamHandlerClass;

The class of TpSvcMediaStreamHandler.

In a full implementation of this interface (i.e. all methods implemented), the interface initialization function used in `G_IMPLEMENT_INTERFACE()` would typically look like this:

    static void
    implement_media_stream_handler (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_media_stream_handler_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (codec_choice);
      IMPLEMENT (error);
      IMPLEMENT (native_candidates_prepared);
      IMPLEMENT (new_active_candidate_pair);
      IMPLEMENT (new_native_candidate);
      IMPLEMENT (ready);
      IMPLEMENT (set_local_codecs);
      IMPLEMENT (stream_state);
      IMPLEMENT (supported_codecs);
      IMPLEMENT (codecs_updated);
      IMPLEMENT (hold_state);
      IMPLEMENT (unhold_failure);
    #undef IMPLEMENT
    }

### tp_svc_media_stream_handler_codec_choice_impl ()

    void                (*tp_svc_media_stream_handler_codec_choice_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             guint in_Codec_ID,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method CodecChoice on interface org.freedesktop.Telepathy.Media.StreamHandler.

`self` : | The object implementing this interface
`in_Codec_ID` : | guint (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_media_stream_handler_implement_codec_choice ()

    void                tp_svc_media_stream_handler_implement_codec_choice
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_codec_choice_impl impl);

Register an implementation for the CodecChoice method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the CodecChoice D-Bus method

### tp_svc_media_stream_handler_return_from_codec_choice ()

    void                tp_svc_media_stream_handler_return_from_codec_choice
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_media_stream_handler_error_impl ()

    void                (*tp_svc_media_stream_handler_error_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             guint in_Error_Code,
                                                             const gchar *in_Message,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method Error on interface org.freedesktop.Telepathy.Media.StreamHandler.

`self` : | The object implementing this interface
`in_Error_Code` : | guint (FIXME, generate documentation)
`in_Message` : | const gchar * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_media_stream_handler_implement_error ()

    void                tp_svc_media_stream_handler_implement_error
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_error_impl impl);

Register an implementation for the Error method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the Error D-Bus method

### tp_svc_media_stream_handler_return_from_error ()

    void                tp_svc_media_stream_handler_return_from_error
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_media_stream_handler_native_candidates_prepared_impl ()

    void                (*tp_svc_media_stream_handler_native_candidates_prepared_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method NativeCandidatesPrepared on interface org.freedesktop.Telepathy.Media.StreamHandler.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_media_stream_handler_implement_native_candidates_prepared ()

    void                tp_svc_media_stream_handler_implement_native_candidates_prepared
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_native_candidates_prepared_impl impl);

Register an implementation for the NativeCandidatesPrepared method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the NativeCandidatesPrepared D-Bus method

### tp_svc_media_stream_handler_return_from_native_candidates_prepared ()

    void                tp_svc_media_stream_handler_return_from_native_candidates_prepared
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_media_stream_handler_new_active_candidate_pair_impl ()

    void                (*tp_svc_media_stream_handler_new_active_candidate_pair_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             const gchar *in_Native_Candidate_ID,
                                                             const gchar *in_Remote_Candidate_ID,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method NewActiveCandidatePair on interface org.freedesktop.Telepathy.Media.StreamHandler.

`self` : | The object implementing this interface
`in_Native_Candidate_ID` : | const gchar * (FIXME, generate documentation)
`in_Remote_Candidate_ID` : | const gchar * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_media_stream_handler_implement_new_active_candidate_pair ()

    void                tp_svc_media_stream_handler_implement_new_active_candidate_pair
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_new_active_candidate_pair_impl impl);

Register an implementation for the NewActiveCandidatePair method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the NewActiveCandidatePair D-Bus method

### tp_svc_media_stream_handler_return_from_new_active_candidate_pair ()

    void                tp_svc_media_stream_handler_return_from_new_active_candidate_pair
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_media_stream_handler_new_native_candidate_impl ()

    void                (*tp_svc_media_stream_handler_new_native_candidate_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             const gchar *in_Candidate_ID,
                                                             const GPtrArray *in_Transports,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method NewNativeCandidate on interface org.freedesktop.Telepathy.Media.StreamHandler.

`self` : | The object implementing this interface
`in_Candidate_ID` : | const gchar * (FIXME, generate documentation)
`in_Transports` : | const GPtrArray * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_media_stream_handler_implement_new_native_candidate ()

    void                tp_svc_media_stream_handler_implement_new_native_candidate
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_new_native_candidate_impl impl);

Register an implementation for the NewNativeCandidate method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the NewNativeCandidate D-Bus method

### tp_svc_media_stream_handler_return_from_new_native_candidate ()

    void                tp_svc_media_stream_handler_return_from_new_native_candidate
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_media_stream_handler_ready_impl ()

    void                (*tp_svc_media_stream_handler_ready_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             const GPtrArray *in_Codecs,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method Ready on interface org.freedesktop.Telepathy.Media.StreamHandler.

`self` : | The object implementing this interface
`in_Codecs` : | const GPtrArray * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_media_stream_handler_implement_ready ()

    void                tp_svc_media_stream_handler_implement_ready
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_ready_impl impl);

Register an implementation for the Ready method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the Ready D-Bus method

### tp_svc_media_stream_handler_return_from_ready ()

    void                tp_svc_media_stream_handler_return_from_ready
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_media_stream_handler_set_local_codecs_impl ()

    void                (*tp_svc_media_stream_handler_set_local_codecs_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             const GPtrArray *in_Codecs,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method SetLocalCodecs on interface org.freedesktop.Telepathy.Media.StreamHandler.

`self` : | The object implementing this interface
`in_Codecs` : | const GPtrArray * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_media_stream_handler_implement_set_local_codecs ()

    void                tp_svc_media_stream_handler_implement_set_local_codecs
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_set_local_codecs_impl impl);

Register an implementation for the SetLocalCodecs method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the SetLocalCodecs D-Bus method

### tp_svc_media_stream_handler_return_from_set_local_codecs ()

    void                tp_svc_media_stream_handler_return_from_set_local_codecs
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_media_stream_handler_stream_state_impl ()

    void                (*tp_svc_media_stream_handler_stream_state_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             guint in_State,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method StreamState on interface org.freedesktop.Telepathy.Media.StreamHandler.

`self` : | The object implementing this interface
`in_State` : | guint (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_media_stream_handler_implement_stream_state ()

    void                tp_svc_media_stream_handler_implement_stream_state
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_stream_state_impl impl);

Register an implementation for the StreamState method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the StreamState D-Bus method

### tp_svc_media_stream_handler_return_from_stream_state ()

    void                tp_svc_media_stream_handler_return_from_stream_state
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_media_stream_handler_supported_codecs_impl ()

    void                (*tp_svc_media_stream_handler_supported_codecs_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             const GPtrArray *in_Codecs,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method SupportedCodecs on interface org.freedesktop.Telepathy.Media.StreamHandler.

`self` : | The object implementing this interface
`in_Codecs` : | const GPtrArray * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_media_stream_handler_implement_supported_codecs ()

    void                tp_svc_media_stream_handler_implement_supported_codecs
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_supported_codecs_impl impl);

Register an implementation for the SupportedCodecs method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the SupportedCodecs D-Bus method

### tp_svc_media_stream_handler_return_from_supported_codecs ()

    void                tp_svc_media_stream_handler_return_from_supported_codecs
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_media_stream_handler_emit_add_remote_candidate ()

    void                tp_svc_media_stream_handler_emit_add_remote_candidate
                                                            (gpointer instance,
                                                             const gchar *arg_Candidate_ID,
                                                             const GPtrArray *arg_Transports);

Type-safe wrapper around g_signal_emit to emit the AddRemoteCandidate signal on interface org.freedesktop.Telepathy.Media.StreamHandler.

`instance` : | The object implementing this interface
`arg_Candidate_ID` : | const gchar * (FIXME, generate documentation)
`arg_Transports` : | const GPtrArray * (FIXME, generate documentation)

### tp_svc_media_stream_handler_emit_close ()

    void                tp_svc_media_stream_handler_emit_close
                                                            (gpointer instance);

Type-safe wrapper around g_signal_emit to emit the Close signal on interface org.freedesktop.Telepathy.Media.StreamHandler.

`instance` : | The object implementing this interface

### tp_svc_media_stream_handler_emit_remove_remote_candidate ()

    void                tp_svc_media_stream_handler_emit_remove_remote_candidate
                                                            (gpointer instance,
                                                             const gchar *arg_Candidate_ID);

Type-safe wrapper around g_signal_emit to emit the RemoveRemoteCandidate signal on interface org.freedesktop.Telepathy.Media.StreamHandler.

`instance` : | The object implementing this interface
`arg_Candidate_ID` : | const gchar * (FIXME, generate documentation)

### tp_svc_media_stream_handler_emit_set_active_candidate_pair ()

    void                tp_svc_media_stream_handler_emit_set_active_candidate_pair
                                                            (gpointer instance,
                                                             const gchar *arg_Native_Candidate_ID,
                                                             const gchar *arg_Remote_Candidate_ID);

Type-safe wrapper around g_signal_emit to emit the SetActiveCandidatePair signal on interface org.freedesktop.Telepathy.Media.StreamHandler.

`instance` : | The object implementing this interface
`arg_Native_Candidate_ID` : | const gchar * (FIXME, generate documentation)
`arg_Remote_Candidate_ID` : | const gchar * (FIXME, generate documentation)

### tp_svc_media_stream_handler_emit_set_remote_candidate_list ()

    void                tp_svc_media_stream_handler_emit_set_remote_candidate_list
                                                            (gpointer instance,
                                                             const GPtrArray *arg_Remote_Candidates);

Type-safe wrapper around g_signal_emit to emit the SetRemoteCandidateList signal on interface org.freedesktop.Telepathy.Media.StreamHandler.

`instance` : | The object implementing this interface
`arg_Remote_Candidates` : | const GPtrArray * (FIXME, generate documentation)

### tp_svc_media_stream_handler_emit_set_remote_codecs ()

    void                tp_svc_media_stream_handler_emit_set_remote_codecs
                                                            (gpointer instance,
                                                             const GPtrArray *arg_Codecs);

Type-safe wrapper around g_signal_emit to emit the SetRemoteCodecs signal on interface org.freedesktop.Telepathy.Media.StreamHandler.

`instance` : | The object implementing this interface
`arg_Codecs` : | const GPtrArray * (FIXME, generate documentation)

### tp_svc_media_stream_handler_emit_set_stream_playing ()

    void                tp_svc_media_stream_handler_emit_set_stream_playing
                                                            (gpointer instance,
                                                             gboolean arg_Playing);

Type-safe wrapper around g_signal_emit to emit the SetStreamPlaying signal on interface org.freedesktop.Telepathy.Media.StreamHandler.

`instance` : | The object implementing this interface
`arg_Playing` : | gboolean (FIXME, generate documentation)

### tp_svc_media_stream_handler_emit_set_stream_sending ()

    void                tp_svc_media_stream_handler_emit_set_stream_sending
                                                            (gpointer instance,
                                                             gboolean arg_Sending);

Type-safe wrapper around g_signal_emit to emit the SetStreamSending signal on interface org.freedesktop.Telepathy.Media.StreamHandler.

`instance` : | The object implementing this interface
`arg_Sending` : | gboolean (FIXME, generate documentation)

### tp_svc_media_stream_handler_emit_start_telephony_event ()

    void                tp_svc_media_stream_handler_emit_start_telephony_event
                                                            (gpointer instance,
                                                             guchar arg_Event);

Type-safe wrapper around g_signal_emit to emit the StartTelephonyEvent signal on interface org.freedesktop.Telepathy.Media.StreamHandler.

`instance` : | The object implementing this interface
`arg_Event` : | guchar (FIXME, generate documentation)

### tp_svc_media_stream_handler_emit_stop_telephony_event ()

    void                tp_svc_media_stream_handler_emit_stop_telephony_event
                                                            (gpointer instance);

Type-safe wrapper around g_signal_emit to emit the StopTelephonyEvent signal on interface org.freedesktop.Telepathy.Media.StreamHandler.

`instance` : | The object implementing this interface

### tp_svc_media_stream_handler_emit_set_stream_held ()

    void                tp_svc_media_stream_handler_emit_set_stream_held
                                                            (gpointer instance,
                                                             gboolean arg_Held);

Type-safe wrapper around g_signal_emit to emit the SetStreamHeld signal on interface org.freedesktop.Telepathy.Media.StreamHandler.

`instance` : | The object implementing this interface
`arg_Held` : | gboolean (FIXME, generate documentation)

### tp_svc_media_stream_handler_hold_state_impl ()

    void                (*tp_svc_media_stream_handler_hold_state_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             gboolean in_Held,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method HoldState on interface org.freedesktop.Telepathy.Media.StreamHandler.

`self` : | The object implementing this interface
`in_Held` : | gboolean (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_media_stream_handler_implement_hold_state ()

    void                tp_svc_media_stream_handler_implement_hold_state
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_hold_state_impl impl);

Register an implementation for the HoldState method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the HoldState D-Bus method

### tp_svc_media_stream_handler_implement_unhold_failure ()

    void                tp_svc_media_stream_handler_implement_unhold_failure
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_unhold_failure_impl impl);

Register an implementation for the UnholdFailure method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the UnholdFailure D-Bus method

### tp_svc_media_stream_handler_return_from_hold_state ()

    void                tp_svc_media_stream_handler_return_from_hold_state
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_media_stream_handler_return_from_unhold_failure ()

    void                tp_svc_media_stream_handler_return_from_unhold_failure
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_media_stream_handler_unhold_failure_impl ()

    void                (*tp_svc_media_stream_handler_unhold_failure_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method UnholdFailure on interface org.freedesktop.Telepathy.Media.StreamHandler.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_media_stream_handler_codecs_updated_impl ()

    void                (*tp_svc_media_stream_handler_codecs_updated_impl)
                                                            (TpSvcMediaStreamHandler *self,
                                                             const GPtrArray *in_Codecs,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method CodecsUpdated on interface org.freedesktop.Telepathy.Media.StreamHandler.

`self` : | The object implementing this interface
`in_Codecs` : | const GPtrArray * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_media_stream_handler_implement_codecs_updated ()

    void                tp_svc_media_stream_handler_implement_codecs_updated
                                                            (TpSvcMediaStreamHandlerClass *klass,
                                                             tp_svc_media_stream_handler_codecs_updated_impl impl);

Register an implementation for the CodecsUpdated method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the CodecsUpdated D-Bus method

### tp_svc_media_stream_handler_return_from_codecs_updated ()

    void                tp_svc_media_stream_handler_return_from_codecs_updated
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

## Signal Details

### The `"new-stream-handler"` signal

    void                user_function                      (TpSvcMediaSessionHandler *arg_Stream_Handler,
                                                            DBusGObjectPath          *arg_ID,
                                                            guint                     arg_Media_Type,
                                                            guint                     arg_Direction,
                                                            guint                     arg4,
                                                            gpointer                  user_data)               : Run Last / Has Details

The NewStreamHandler D-Bus signal is emitted whenever this GObject signal is.

`arg_Stream_Handler` : | const gchar * (FIXME, generate documentation)
`arg_ID` : | guint (FIXME, generate documentation)
`arg_Media_Type` : | guint (FIXME, generate documentation)
`arg_Direction` : | guint (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"add-remote-candidate"` signal

    void                user_function                      (TpSvcMediaStreamHandler *arg_Candidate_ID,
                                                            gchar                   *arg_Transports,
                                                            gpointer                 user_data)             : Run Last / Has Details

The AddRemoteCandidate D-Bus signal is emitted whenever this GObject signal is.

`arg_Candidate_ID` : | const gchar * (FIXME, generate documentation)
`arg_Transports` : | const GPtrArray * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"close"` signal

    void                user_function                      (TpSvcMediaStreamHandler *arg0,
                                                            gpointer                 user_data)      : Run Last / Has Details

The Close D-Bus signal is emitted whenever this GObject signal is.

`user_data` : | user data set when the signal handler was connected.

### The `"remove-remote-candidate"` signal

    void                user_function                      (TpSvcMediaStreamHandler *arg_Candidate_ID,
                                                            gchar                   *arg1,
                                                            gpointer                 user_data)             : Run Last / Has Details

The RemoveRemoteCandidate D-Bus signal is emitted whenever this GObject signal is.

`arg_Candidate_ID` : | const gchar * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"set-active-candidate-pair"` signal

    void                user_function                      (TpSvcMediaStreamHandler *arg_Native_Candidate_ID,
                                                            gchar                   *arg_Remote_Candidate_ID,
                                                            gchar                   *arg2,
                                                            gpointer                 user_data)                    : Run Last / Has Details

The SetActiveCandidatePair D-Bus signal is emitted whenever this GObject signal is.

`arg_Native_Candidate_ID` : | const gchar * (FIXME, generate documentation)
`arg_Remote_Candidate_ID` : | const gchar * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"set-remote-candidate-list"` signal

    void                user_function                      (TpSvcMediaStreamHandler *arg_Remote_Candidates,
                                                            gpointer                 user_data)                  : Run Last / Has Details

The SetRemoteCandidateList D-Bus signal is emitted whenever this GObject signal is.

`arg_Remote_Candidates` : | const GPtrArray * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"set-remote-codecs"` signal

    void                user_function                      (TpSvcMediaStreamHandler *arg_Codecs,
                                                            gpointer                 user_data)       : Run Last / Has Details

The SetRemoteCodecs D-Bus signal is emitted whenever this GObject signal is.

`arg_Codecs` : | const GPtrArray * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"set-stream-held"` signal

    void                user_function                      (TpSvcMediaStreamHandler *arg_Held,
                                                            gboolean                 arg1,
                                                            gpointer                 user_data)      : Run Last / Has Details

The SetStreamHeld D-Bus signal is emitted whenever this GObject signal is.

`arg_Held` : | gboolean (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"set-stream-playing"` signal

    void                user_function                      (TpSvcMediaStreamHandler *arg_Playing,
                                                            gboolean                 arg1,
                                                            gpointer                 user_data)        : Run Last / Has Details

The SetStreamPlaying D-Bus signal is emitted whenever this GObject signal is.

`arg_Playing` : | gboolean (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"set-stream-sending"` signal

    void                user_function                      (TpSvcMediaStreamHandler *arg_Sending,
                                                            gboolean                 arg1,
                                                            gpointer                 user_data)        : Run Last / Has Details

The SetStreamSending D-Bus signal is emitted whenever this GObject signal is.

`arg_Sending` : | gboolean (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"start-telephony-event"` signal

    void                user_function                      (TpSvcMediaStreamHandler *arg_Event,
                                                            guchar                   arg1,
                                                            gpointer                 user_data)      : Run Last / Has Details

The StartTelephonyEvent D-Bus signal is emitted whenever this GObject signal is.

`arg_Event` : | guchar (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"stop-telephony-event"` signal

    void                user_function                      (TpSvcMediaStreamHandler *arg0,
                                                            gpointer                 user_data)      : Run Last / Has Details

The StopTelephonyEvent D-Bus signal is emitted whenever this GObject signal is.

`user_data` : | user data set when the signal handler was connected.

## See Also

TpSvcChannelTypeStreamedMedia