Beispiel #1
0
static void callback_send_a_stream_subscribe(void *user, VNodeID node_id, VLayerID stream_id)
{
    VSNodeAudio *node;
    node = (VSNodeAudio *)vs_get_node(node_id, V_NT_AUDIO);
    if(node == NULL)
        return;
    if(node->stream_count <= stream_id)
        return;
    if(node->streams[stream_id].name[0] == 0)
        return;
    vs_add_new_subscriptor(node->streams[stream_id].subscribers);
}
Beispiel #2
0
static void callback_send_c_curve_subscribe(void *user, VNodeID node_id, VLayerID curve_id)
{
	VSNodeCurve *node;
	unsigned int i;
	node = (VSNodeCurve *)vs_get_node(node_id, V_NT_CURVE);
	if(node == NULL || node->curve_count <= curve_id || node->curves[curve_id].name[0] == 0)
		return;

	vs_add_new_subscriptor(node->curves[curve_id].subscribers);

	for(i = 0; i < node->curves[curve_id].length; i++)
		if(node->curves[curve_id].keys[i].pos != V_REAL64_MAX)
			verse_send_c_key_set(node_id, curve_id, i, node->curves[curve_id].dimensions, node->curves[curve_id].keys[i].pre_value, node->curves[curve_id].keys[i].pre_pos, node->curves[curve_id].keys[i].value, node->curves[curve_id].keys[i].pos, node->curves[curve_id].keys[i].post_value, node->curves[curve_id].keys[i].post_pos);
}
Beispiel #3
0
static void callback_send_a_buffer_subscribe(void *user, VNodeID node_id, VLayerID buffer_id)
{
    VSNodeAudio *node;
    unsigned int i;

    node = (VSNodeAudio *)vs_get_node(node_id, V_NT_AUDIO);
    if(node == NULL)
        return;
    if(node->buffer_count <= buffer_id)
        return;
    if(node->buffers[buffer_id].name[0] == 0)
        return;
    vs_add_new_subscriptor(node->buffers[buffer_id].subscribers);
    for(i = 0; i < node->buffers[buffer_id].length; i++)
    {
        if(node->buffers[buffer_id].data[i] != NULL)
            verse_send_a_block_set(node_id, buffer_id, i, node->buffers[buffer_id].type, node->buffers[buffer_id].data[i]);
    }
}
Beispiel #4
0
static void callback_send_node_index_subscribe(void *user_data, uint32 mask)
{
	unsigned int i, j, pow = 1;

	for(i = 0; i < V_NT_NUM_TYPES; i++, pow <<= 1)
	{
		if((mask & pow) != 0)
		{
			for(j = 0; j < VSNodeStorage.node_length; j++)
			{
				if(VSNodeStorage.nodes[j] != NULL && VSNodeStorage.nodes[j]->type == (VNodeType)i)
				{
					if(VSNodeStorage.nodes[j]->owner == verse_session_get_avatar())
						verse_send_node_create(VSNodeStorage.nodes[j]->id, i, VN_OWNER_MINE);
					else
						verse_send_node_create(VSNodeStorage.nodes[j]->id, i, VN_OWNER_OTHER);
				}
			}
			vs_add_new_subscriptor(VSNodeStorage.list[i]);
		}
		else
			vs_remove_subscriptor(VSNodeStorage.list[i]);
	}
}