/* load files onto the Network Walkman */ #include #include #include #include #include #include #include void usage( void ) { if ( errno ) { perror( "mple-rm" ); } else { fprintf( stderr, "usage: %s /device/path tracknum\n", "mple-rm" ); } exit( 1 ); } int main( int argc, char *argv[] ) { struct stat statbuf; mple_device *dev; guint16 newtrack = 1; errno = 0; /* safety clown says ... */ if ( argc < 3 ) { usage(); } if ( stat( argv[1], &statbuf ) != 0 ) { usage(); } newtrack = atoi( argv[2] ); if ( !newtrack ) { usage(); } /* create a new device structure for argv[1] */ dev = mple_dev_init( argv[1] ); if ( dev != NULL ) { fprintf( stderr, "trying to delete track %d\n", newtrack ); newtrack = mple_del_track( dev, newtrack ); if ( newtrack ) { fprintf( stderr, "deleted %s\n", argv[2] ); } else { fprintf( stderr, "failed: %s\n", strerror( errno )); } /* check the device for empty folders */ STARTOVER: { GList *node = dev->folderlist; guint16 folder = 0; while( node ) { mple_folder *fptr = node->data; folder++; if ( g_list_length( fptr->tracklist ) == 0 ) { fprintf( stderr, "deleting empty folder\n" ); mple_del_folder( dev, folder ); goto STARTOVER; /* index will be out of whack otherwise */ } node = g_list_next( node ); } } mple_dev_free( dev ); } return 0; }