Esempio n. 1
0
void dbDeviceCallbackFunction( mapper_db_device record,
                                mapper_db_action_t action,
                                void* user ) {
/*
    printf( "\nForm::db_device_callback_function( ... )\n" );
    printf( "record->name %s action %d user %p \n\n",
            record->name, action, user );
*/


    if ( action == MDB_NEW ) {

        /*form->addNewDevice( record->name,
                            record->host,
                            record->port,
                            false );
                            */
        form->addNewDevice( record );
        mapper_monitor_request_signals_by_name( qtmapper, record->name );
        mapper_monitor_request_links_by_name( qtmapper, record->name );
        mapper_monitor_request_mappings_by_name( qtmapper, record->name );

    } else if ( action == MDB_REMOVE ) {

        //form->removeDevice( record->name );
        form->removeDevice( record );

    }

}
Esempio n. 2
0
int mapper_monitor_batch_request_signals_by_name(mapper_monitor mon,
                                                 const char* name,
                                                 int batch_size)
{
    // find the db record of device
    mapper_db_device dev = mapper_db_get_device_by_name(&mon->db, name);
    if (!dev) {
        return 1;
    }

    int signal_count = 0;
    lo_type type;
    const lo_arg *value;
    if (!mapper_db_device_property_lookup(dev, "n_inputs", &type, &value)) {
        if (type == LO_INT32)
            signal_count = value->i32;
    }
    if (!mapper_db_device_property_lookup(dev, "n_outputs", &type, &value))
        if (type == LO_INT32)
            signal_count = signal_count > value->i32 ? signal_count : value->i32;

    if (!signal_count)
        return 1;

    if (signal_count <= batch_size) {
        mapper_monitor_request_signals_by_name(mon, name);
        return 1;
    }

    mapper_db_batch_request data = (mapper_db_batch_request)
                                    malloc(sizeof(struct _mapper_db_batch_request));
    data->monitor = mon;
    data->device = dev;
    data->index = 0;
    data->total_count = signal_count;
    data->batch_size = batch_size;

    mapper_db_add_signal_callback(&mon->db, on_signal_continue_batch_request, data);
    mapper_monitor_request_signals_by_name_and_index(mon, name, 0, batch_size);
    return 0;
}