Example #1
0
/*----------------------------------------------------------------------
|    CrossFader_Activate
+---------------------------------------------------------------------*/
BLT_METHOD
CrossFader_Activate(BLT_MediaNodeInstance* instance, BLT_Stream* stream)
{
    ATX_Properties settings;
    CrossFader*    fader = (CrossFader*)instance;

    /* stop listening for settings on the current stream, if any */
    if (!ATX_OBJECT_IS_NULL(&fader->context) &&
        fader->listener_handle != NULL) {
        if (BLT_SUCCEEDED(BLT_Core_GetSettings(&fader->base.core, 
                                               &settings))) {
            ATX_Properties_RemoveListener(&settings, fader->listener_handle);
        }
        fader->listener_handle = NULL;
    }

    /* keep a reference to the stream */
    fader->context = *stream;

    /* listen to settings on the new stream */
    if (BLT_SUCCEEDED(BLT_Core_GetSettings(&fader->base.core, 
                                            &settings))) {
        ATX_PropertyListener me;
        ATX_INSTANCE(&me)  = (ATX_PropertyListenerInstance*)fader;
        ATX_INTERFACE(&me) = &CrossFader_ATX_PropertyListenerInterface;
        ATX_Properties_AddListener(&settings, 
                                    "SomeSetting",
                                    &me,
                                    &fader->listener_handle);
    }

    return BLT_SUCCESS;
}
Example #2
0
/*----------------------------------------------------------------------
|       ConnectClient
+---------------------------------------------------------------------*/
static ATX_Result
ConnectClient(ATX_ClientSocket* client, 
              char*             hostname, 
              ATX_SocketPort    port,
              ATX_ByteStream*   stream)
{
    ATX_Socket socket;
    ATX_Result result;
    
    ATX_Debug("connecting to %s on port %d\n", hostname, port);

    /* connect client */
    result = ATX_ClientSocket_Connect(client, hostname, port, 10000);
    if (result != ATX_SUCCESS) {
        ATX_Debug("ERROR: connection failed (%d)\n", result);
        return result;
    }
    ATX_Debug("connected\n");

    /* cast to ATX_Socket interface */
    result = ATX_CAST_OBJECT(client, &socket, ATX_Socket);
    if (result != ATX_SUCCESS) {
        ATX_Debug("ERROR: client object does not implement the "
                  "ATX_Socket interface\n");
        return result;
    }

    /* get socket stream */
    result = ATX_Socket_GetStream(&socket, stream);
    if (result != ATX_SUCCESS) {
        ATX_Debug("ERROR: cannot get socket stream\n");
        return result;
    }

    /* check stream */
    if (ATX_OBJECT_IS_NULL(stream)) {
        ATX_Debug("ERROR: stream is NULL\n");
        return ATX_FAILURE;
    }

    return ATX_SUCCESS;
}