1 /**
2 * \file trexist.c
3 * Example program to check if a certain track exists on the device.
4 *
5 * Copyright (C) 2006 The libmtp development team.
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the
19 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 * Boston, MA 02111-1307, USA.
21 */
22 #include "common.h"
23 #include <stdlib.h>
24 #include <limits.h>
25
usage(void)26 static void usage (void)
27 {
28 fprintf(stderr, "trexist <trackid>\n");
29 }
30
main(int argc,char ** argv)31 int main (int argc, char **argv)
32 {
33 LIBMTP_mtpdevice_t *device;
34 uint32_t id;
35 char *endptr;
36
37 fprintf(stdout, "libmtp version: " LIBMTP_VERSION_STRING "\n\n");
38
39 // We need track ID
40 if ( argc != 2 ) {
41 usage();
42 return 1;
43 }
44
45 // Sanity check song ID
46 id = strtoul(argv[1], &endptr, 10);
47 if ( *endptr != 0 ) {
48 fprintf(stderr, "illegal value %s\n", argv[1]);
49 return 1;
50 } else if ( ! id ) {
51 fprintf(stderr, "bad song id %u\n", id);
52 return 1;
53 }
54
55 LIBMTP_Init();
56 device = LIBMTP_Get_First_Device();
57 if (device == NULL) {
58 printf("No devices. Connect/replug device and try again.\n");
59 exit (0);
60 }
61
62 printf("%s\n", LIBMTP_Track_Exists(device, id) ? "Yes" : "No");
63
64 LIBMTP_Release_Device(device);
65 printf("OK.\n");
66 exit (0);
67 }
68
69