void channels_add( int channelid ) { // exit if we haven't initialized the channel stuff // get channel data from libventrilo v3_channel* p_chan = v3_get_channel( channelid ); // dont add if we dont have data to add. if ( p_chan == NULL ) { printf( "trying to add null channel\n" ); return; } channels[channelid] = p_chan; //channel* chan = malloc( sizeof( struct channel_s ) ); //chan->data = chan_ptr; // INIT_LIST_HEAD( &chan->sub ); // INIT_LIST_HEAD( &chan->list ); // list_add( &(chan->list), &(channel_root.list) ); printf( "added channel: %s\n", p_chan->name ); //while ( channels[i] != NULL ) i++; //printf( "putting channel (%s,%s)[%i|%i] in %i\n", chan_ptr->name, chan_ptr->comment, chan_ptr->id, chan_ptr->parent, i ); //channels[i] = chan_ptr; //if ( i > channel_limit ) channel_limit = i; }
void channels_update( int channelid ) { // update all channels for( int i = 0; i < MAX_CHANNELS; i++ ) { if ( channels[i] != NULL ) { v3_free_channel( channels[i] ); channels[i] = v3_get_channel( i ); } } }
JNIEXPORT void JNICALL Java_com_jtxdriggers_android_ventriloid_VentriloInterface_getchannel(JNIEnv* env, jobject obj, jobject eventdata, jshort channelid) { v3_channel *c = v3_get_channel(channelid); if(c) { jclass event_class = get_class(env, eventdata); jobject data = get_object(env, eventdata, event_class, "data", "Lcom/jtxdriggers/android/ventriloid/VentriloEventData$_data;"); jclass data_class = get_class(env, data); jobject channel = get_object(env, data, data_class, "channel", "Lcom/jtxdriggers/android/ventriloid/VentriloEventData$_data$_channel;"); jclass channel_class = get_class(env, channel); jobject text = get_object(env, eventdata, event_class, "text", "Lcom/jtxdriggers/android/ventriloid/VentriloEventData$_text;"); jclass text_class = get_class(env, text); set_short(env, channel, channel_class, "parent", c->parent); set_short(env, channel, channel_class, "channel_codec", c->channel_codec); set_short(env, channel, channel_class, "channel_format",c->channel_format); set_bool (env, channel, channel_class, "password_protected", v3_channel_requires_password(channelid)); set_bool (env, channel, channel_class, "is_admin", v3_is_channel_admin(channelid)); set_bool (env, channel, channel_class, "allow_phantoms", c->allow_phantoms != 0); set_bool (env, channel, channel_class, "allow_paging", c->allow_paging != 0); set_byte_array(env, text, text_class, "name", c->name); set_byte_array(env, text, text_class, "phonetic", c->phonetic); set_byte_array(env, text, text_class, "comment", c->comment); v3_free_channel(c); } }