static void *list_prepend_new(t_symbol *s, int argc, t_atom *argv) { t_list_prepend *x = (t_list_prepend *)pd_new(list_prepend_class); alist_init(&x->x_alist); alist_list(&x->x_alist, 0, argc, argv); outlet_new(&x->x_obj, &s_list); inlet_new(&x->x_obj, &x->x_alist.l_pd, 0, 0); return (x); }
static void *list_cat_new( void) { t_list_cat *x = (t_list_cat *)pd_new(list_cat_class); alist_init(&x->x_alist); outlet_new(&x->x_obj, &s_list); list_cat_proxy_init(&x->x_pxy, x); inlet_new(&x->x_obj, &x->x_pxy.l_pd, 0, 0); return (x); }
/******************************************************************************** * ADB server API *******************************************************************************/ int adb_server_init(int port) { if (!_adb_server_initialized) { /* Initialize the descriptor. */ memset(&_adb_server, 0, sizeof(_adb_server)); alist_init(&_adb_server.adb_hosts); alist_init(&_adb_server.adb_guests); alist_init(&_adb_server.pending_hosts); alist_init(&_adb_server.pending_guests); _adb_server.port = port; /* Create looper for an async I/O on the server. */ _adb_server.looper = looper_newCore(); if (_adb_server.looper == NULL) { E("Unable to create I/O looper for ADB server"); return -1; } /* Create loopback server socket for the ADB port. */ sock_address_init_inet(&_adb_server.socket_address, SOCK_ADDRESS_INET_LOOPBACK, port); _adb_server.so = socket_loopback_server(port, SOCKET_STREAM); if (_adb_server.so < 0) { E("Unable to create ADB server socket: %s", strerror(errno)); return -1; } /* Prepare server socket for I/O */ socket_set_nonblock(_adb_server.so); loopIo_init(_adb_server.io, _adb_server.looper, _adb_server.so, _on_server_socket_io, &_adb_server); loopIo_wantRead(_adb_server.io); D("ADB server has been initialized for port %d. Socket: %d", port, _adb_server.so); _adb_server_initialized = 1; } return 0; }
/* Creates and initializes a new AdbGuest instance. */ static AdbGuest* _adb_guest_new(AdbServer* adb_srv) { AdbGuest* adb_guest; ANEW0(adb_guest); alist_init(&adb_guest->list_entry); adb_guest->adb_srv = adb_srv; return adb_guest; }
/* Creates and initializes a new AdbHost instance. */ static AdbHost* _adb_host_new(AdbServer* adb_srv) { AdbHost* adb_host; ANEW0(adb_host); alist_init(&adb_host->list_entry); adb_host->adb_srv = adb_srv; adb_host->host_so = -1; return adb_host; }