meta.c
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:3k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*
  2.  * meta.c - libvlc smoke test
  3.  *
  4.  * $Id: f2e5963d9291a18eaac06ebd64d4a0f098227bd7 $
  5.  */
  6. /**********************************************************************
  7.  *  Copyright (C) 2007 Rémi Denis-Courmont.                           *
  8.  *  Copyright (C) 2008 Pierre d'Herbemont.                            *
  9.  *  This program is free software; you can redistribute and/or modify *
  10.  *  it under the terms of the GNU General Public License as published *
  11.  *  by the Free Software Foundation; version 2 of the license, or (at *
  12.  *  your option) any later version.                                   *
  13.  *                                                                    *
  14.  *  This program is distributed in the hope that it will be useful,   *
  15.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of    *
  16.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.              *
  17.  *  See the GNU General Public License for more details.              *
  18.  *                                                                    *
  19.  *  You should have received a copy of the GNU General Public License *
  20.  *  along with this program; if not, you can get it from:             *
  21.  *  http://www.gnu.org/copyleft/gpl.html                              *
  22.  **********************************************************************/
  23. #include "test.h"
  24. static void test_meta (const char ** argv, int argc)
  25. {
  26.     libvlc_instance_t *vlc;
  27.     libvlc_media_t *media;
  28.     char * artist;
  29.     log ("Testing metan");
  30.     libvlc_exception_init (&ex);
  31.     vlc = libvlc_new (argc, argv, &ex);
  32.     catch ();
  33.     media = libvlc_media_new (vlc, "samples/meta.sample", &ex);
  34.     catch ();
  35.     /* Tell that we are interested in this precise meta data
  36.      * This is needed to trigger meta data reading
  37.      * (the first calls return NULL) */
  38.     artist = libvlc_media_get_meta (media, libvlc_meta_Artist, &ex);
  39.     catch ();
  40.     free (artist);
  41.     /* Wait for the meta */
  42.     while (!libvlc_media_is_preparsed (media, &ex))
  43.     {
  44.         catch ();
  45.         msleep (10000);
  46.     }
  47.     artist = libvlc_media_get_meta (media, libvlc_meta_Artist, &ex);
  48.     catch ();
  49.     const char *expected_artist = "mike";
  50.     assert (artist);
  51.     log ("+ got '%s' as Artist, expecting %sn", artist, expected_artist);
  52.     int string_compare = strcmp (artist, expected_artist);
  53.     assert (!string_compare);
  54.     free (artist);
  55.     libvlc_media_release (media);
  56.     libvlc_release (vlc);
  57. }
  58. int main (void)
  59. {
  60.     test_init();
  61.     test_meta (test_defaults_args, test_defaults_nargs);
  62.     return 0;
  63. }