Libloom sample: Difference between revisions
No edit summary |
(No difference)
|
Latest revision as of 09:03, 6 April 2011
static int refresh = 0; void device_change(device_change_t status, char *uuid, char *name) { switch(status) { case DEVICE_ADD: printf("**ADD device '%s' (%s)\n", name, uuid); refresh = 1; break; case DEVICE_DEL: printf("**DEL device '%s' (%s)\n", name, uuid); refresh = 1; break; case DEVICE_UPDATE: break; } } int main( int argc, char **argv ) { int key; char buffer[256]; CgUpnpDevice *dev; loom_device_t device; if (loom_init()) { printf("Failed to start UPnP\n"); exit(1); } loom_discovery_listener(device_change); if (loom_start()) { printf("Failed to join UPnP\n"); loom_free(); exit(2); } while(1) { char *r; printf("Push return to list MediaServer, 'q' to quit. Enter uuid to connect\n"); fgets(buffer, sizeof(buffer), stdin); if ((r = strchr(buffer, '\r'))) *r = 0; if ((r = strchr(buffer, '\n'))) *r = 0; if (*buffer=='q') break; if (!strncmp("uuid:", buffer, 5)) { list_server(buffer); } if (refresh) printf("Refresh was set.\n"); refresh = 0; while( loom_device_list( &device ) > 0 ) { printf("'%s' (%s)\n", device.friendlyName, device.uuid); } // for all devices } printf("Quitting\n"); loom_stop(); loom_free(); return 0; }