taglib-ruby 0.7.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES.md +7 -0
  3. data/README.md +25 -10
  4. data/Rakefile +11 -1
  5. data/docs/taglib/aiff.rb +35 -3
  6. data/docs/taglib/base.rb +8 -1
  7. data/docs/taglib/flac.rb +60 -4
  8. data/docs/taglib/id3v1.rb +29 -0
  9. data/docs/taglib/id3v2.rb +1 -1
  10. data/docs/taglib/mp4.rb +124 -13
  11. data/docs/taglib/mpeg.rb +30 -1
  12. data/docs/taglib/ogg.rb +47 -5
  13. data/docs/taglib/vorbis.rb +1 -1
  14. data/docs/taglib/wav.rb +56 -3
  15. data/ext/extconf_common.rb +9 -2
  16. data/ext/taglib_aiff/taglib_aiff.i +16 -0
  17. data/ext/taglib_aiff/taglib_aiff_wrap.cxx +228 -58
  18. data/ext/taglib_base/includes.i +4 -4
  19. data/ext/taglib_base/taglib_base.i +24 -2
  20. data/ext/taglib_base/taglib_base_wrap.cxx +76 -51
  21. data/ext/taglib_flac/taglib_flac.i +14 -18
  22. data/ext/taglib_flac/taglib_flac_wrap.cxx +341 -799
  23. data/ext/taglib_flac_picture/extconf.rb +4 -0
  24. data/ext/taglib_flac_picture/includes.i +15 -0
  25. data/ext/taglib_flac_picture/taglib_flac_picture.i +15 -0
  26. data/ext/taglib_flac_picture/taglib_flac_picture_wrap.cxx +3087 -0
  27. data/ext/taglib_id3v1/taglib_id3v1.i +19 -0
  28. data/ext/taglib_id3v1/taglib_id3v1_wrap.cxx +241 -58
  29. data/ext/taglib_id3v2/taglib_id3v2.i +52 -1
  30. data/ext/taglib_id3v2/taglib_id3v2_wrap.cxx +152 -155
  31. data/ext/taglib_mp4/taglib_mp4.i +100 -19
  32. data/ext/taglib_mp4/taglib_mp4_wrap.cxx +939 -148
  33. data/ext/taglib_mpeg/taglib_mpeg.i +11 -16
  34. data/ext/taglib_mpeg/taglib_mpeg_wrap.cxx +522 -208
  35. data/ext/taglib_ogg/taglib_ogg.i +11 -0
  36. data/ext/taglib_ogg/taglib_ogg_wrap.cxx +328 -57
  37. data/ext/taglib_vorbis/taglib_vorbis.i +8 -0
  38. data/ext/taglib_vorbis/taglib_vorbis_wrap.cxx +53 -22
  39. data/ext/taglib_wav/taglib_wav.i +24 -0
  40. data/ext/taglib_wav/taglib_wav_wrap.cxx +543 -198
  41. data/lib/taglib/mp4.rb +2 -1
  42. data/lib/taglib/version.rb +3 -3
  43. data/lib/taglib/wav.rb +4 -0
  44. data/taglib-ruby.gemspec +15 -9
  45. data/tasks/ext.rake +36 -15
  46. data/tasks/swig.rake +26 -2
  47. data/test/aiff_examples_test.rb +1 -1
  48. data/test/aiff_file_test.rb +12 -3
  49. data/test/data/vorbis-create.cpp +20 -1
  50. data/test/data/vorbis.oga +0 -0
  51. data/test/fileref_properties_test.rb +1 -1
  52. data/test/flac_file_test.rb +45 -30
  53. data/test/id3v1_genres_test.rb +23 -0
  54. data/test/id3v1_tag_test.rb +1 -0
  55. data/test/id3v2_tag_test.rb +6 -6
  56. data/test/id3v2_write_test.rb +10 -13
  57. data/test/mp4_file_test.rb +33 -4
  58. data/test/mp4_file_write_test.rb +5 -5
  59. data/test/mp4_items_test.rb +83 -29
  60. data/test/mpeg_file_test.rb +120 -7
  61. data/test/vorbis_file_test.rb +2 -2
  62. data/test/vorbis_tag_test.rb +61 -7
  63. data/test/wav_examples_test.rb +1 -1
  64. data/test/wav_file_test.rb +53 -41
  65. data/test/wav_file_write_test.rb +25 -0
  66. metadata +19 -9
@@ -6,8 +6,6 @@
6
6
  #include <taglib/mpegproperties.h>
7
7
  #include <taglib/mpegfile.h>
8
8
  #include <taglib/id3v2tag.h>
9
-
10
- static bool taglib_ruby_mpeg_file_save(TagLib::MPEG::File *file, int tags, bool stripOthers, int id3v2Version);
11
9
  %}
12
10
 
13
11
  %include "../taglib_base/includes.i"
@@ -15,7 +13,10 @@ static bool taglib_ruby_mpeg_file_save(TagLib::MPEG::File *file, int tags, bool
15
13
 
16
14
  %ignore TagLib::MPEG::Header::operator=;
17
15
  %include <taglib/xingheader.h>
16
+
18
17
  %include <taglib/mpegheader.h>
18
+
19
+ %ignore TagLib::MPEG::length; // Deprecated.
19
20
  %include <taglib/mpegproperties.h>
20
21
 
21
22
  %rename(id3v1_tag) TagLib::MPEG::File::ID3v1Tag;
@@ -24,6 +25,14 @@ static bool taglib_ruby_mpeg_file_save(TagLib::MPEG::File *file, int tags, bool
24
25
 
25
26
  %freefunc TagLib::MPEG::File "free_taglib_mpeg_file";
26
27
 
28
+ // Ignore IOStream and all the constructors using it.
29
+ %ignore IOStream;
30
+ %ignore TagLib::MPEG::File::File(IOStream *, ID3v2::FrameFactory *, bool, Properties::ReadStyle);
31
+ %ignore TagLib::MPEG::File::File(IOStream *, ID3v2::FrameFactory *, bool);
32
+ %ignore TagLib::MPEG::File::File(IOStream *, ID3v2::FrameFactory *);
33
+ %rename("id3v1_tag?") TagLib::MPEG::File::hasID3v1Tag;
34
+ %rename("id3v2_tag?") TagLib::MPEG::File::hasID3v2Tag;
35
+ %rename("ape_tag?") TagLib::MPEG::File::hasAPETag;
27
36
  %include <taglib/mpegfile.h>
28
37
 
29
38
  // Unlink Ruby objects from the deleted C++ objects. Otherwise Ruby code
@@ -71,26 +80,12 @@ static bool taglib_ruby_mpeg_file_save(TagLib::MPEG::File *file, int tags, bool
71
80
 
72
81
  delete file;
73
82
  }
74
-
75
- static bool taglib_ruby_mpeg_file_save(TagLib::MPEG::File *file, int tags, bool stripOthers, int id3v2Version) {
76
- #if defined(TAGLIB_MAJOR_VERSION) && (TAGLIB_MAJOR_VERSION > 1 || (TAGLIB_MAJOR_VERSION == 1 && TAGLIB_MINOR_VERSION >= 8))
77
- return file->save(tags, stripOthers, id3v2Version);
78
- #else
79
- rb_raise(rb_eArgError, "Overloaded method save(int tags, bool stripOthers, int id3v2Version) on TagLib::MPEG::File is only available when compiled against TagLib >= 1.8");
80
- return false;
81
- #endif
82
- }
83
83
  %}
84
84
 
85
85
  %extend TagLib::MPEG::File {
86
86
  void close() {
87
87
  free_taglib_mpeg_file($self);
88
88
  }
89
-
90
- bool save(int tags, bool stripOthers, int id3v2Version) {
91
- return taglib_ruby_mpeg_file_save($self, tags, stripOthers, id3v2Version);
92
- }
93
89
  }
94
90
 
95
-
96
91
  // vim: set filetype=cpp sw=2 ts=2 expandtab:
@@ -1880,8 +1880,6 @@ static VALUE mMPEG;
1880
1880
  #include <taglib/mpegfile.h>
1881
1881
  #include <taglib/id3v2tag.h>
1882
1882
 
1883
- static bool taglib_ruby_mpeg_file_save(TagLib::MPEG::File *file, int tags, bool stripOthers, int id3v2Version);
1884
-
1885
1883
 
1886
1884
  #include <taglib/tstring.h>
1887
1885
  #include <taglib/tstringlist.h>
@@ -1902,7 +1900,7 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) {
1902
1900
  if (byteVector.isNull()) {
1903
1901
  return Qnil;
1904
1902
  } else {
1905
- return rb_tainted_str_new(byteVector.data(), byteVector.size());
1903
+ return rb_str_new(byteVector.data(), byteVector.size());
1906
1904
  }
1907
1905
  }
1908
1906
 
@@ -1918,7 +1916,7 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
1918
1916
  if (string.isNull()) {
1919
1917
  return Qnil;
1920
1918
  } else {
1921
- VALUE result = rb_tainted_str_new2(string.toCString(true));
1919
+ VALUE result = rb_str_new2(string.toCString(true));
1922
1920
  ASSOCIATE_UTF8_ENCODING(result);
1923
1921
  return result;
1924
1922
  }
@@ -1958,9 +1956,9 @@ VALUE taglib_filename_to_ruby_string(TagLib::FileName filename) {
1958
1956
  VALUE result;
1959
1957
  #ifdef _WIN32
1960
1958
  const char *s = (const char *) filename;
1961
- result = rb_tainted_str_new2(s);
1959
+ result = rb_str_new2(s);
1962
1960
  #else
1963
- result = rb_tainted_str_new2(filename);
1961
+ result = rb_str_new2(filename);
1964
1962
  #endif
1965
1963
  ASSOCIATE_FILESYSTEM_ENCODING(result);
1966
1964
  return result;
@@ -1995,6 +1993,26 @@ TagLib::FileName ruby_string_to_taglib_filename(VALUE s) {
1995
1993
 
1996
1994
 
1997
1995
 
1996
+ #include <limits.h>
1997
+ #if !defined(SWIG_NO_LLONG_MAX)
1998
+ # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
1999
+ # define LLONG_MAX __LONG_LONG_MAX__
2000
+ # define LLONG_MIN (-LLONG_MAX - 1LL)
2001
+ # define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
2002
+ # endif
2003
+ #endif
2004
+
2005
+
2006
+ #define SWIG_From_long LONG2NUM
2007
+
2008
+
2009
+ SWIGINTERNINLINE VALUE
2010
+ SWIG_From_int (int value)
2011
+ {
2012
+ return SWIG_From_long (value);
2013
+ }
2014
+
2015
+
1998
2016
  SWIGINTERN swig_type_info*
1999
2017
  SWIG_pchar_descriptor(void)
2000
2018
  {
@@ -2052,19 +2070,6 @@ SWIG_From_bool (bool value)
2052
2070
  }
2053
2071
 
2054
2072
 
2055
- #include <limits.h>
2056
- #if !defined(SWIG_NO_LLONG_MAX)
2057
- # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
2058
- # define LLONG_MAX __LONG_LONG_MAX__
2059
- # define LLONG_MIN (-LLONG_MAX - 1LL)
2060
- # define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
2061
- # endif
2062
- #endif
2063
-
2064
-
2065
- #define SWIG_From_long LONG2NUM
2066
-
2067
-
2068
2073
  SWIGINTERNINLINE VALUE
2069
2074
  SWIG_From_unsigned_SS_long (unsigned long value)
2070
2075
  {
@@ -2131,13 +2136,6 @@ SWIG_AsVal_int (VALUE obj, int *val)
2131
2136
  }
2132
2137
 
2133
2138
 
2134
- SWIGINTERNINLINE VALUE
2135
- SWIG_From_int (int value)
2136
- {
2137
- return SWIG_From_long (value);
2138
- }
2139
-
2140
-
2141
2139
  SWIGINTERN int
2142
2140
  SWIG_AsVal_bool (VALUE obj, bool *val)
2143
2141
  {
@@ -2160,9 +2158,6 @@ SWIG_AsVal_bool (VALUE obj, bool *val)
2160
2158
  SWIGINTERN void TagLib_MPEG_File_close(TagLib::MPEG::File *self){
2161
2159
  free_taglib_mpeg_file(self);
2162
2160
  }
2163
- SWIGINTERN bool TagLib_MPEG_File_save__SWIG_3(TagLib::MPEG::File *self,int tags,bool stripOthers,int id3v2Version){
2164
- return taglib_ruby_mpeg_file_save(self, tags, stripOthers, id3v2Version);
2165
- }
2166
2161
 
2167
2162
  static void free_taglib_mpeg_file(void *ptr) {
2168
2163
  TagLib::MPEG::File *file = (TagLib::MPEG::File *) ptr;
@@ -2204,15 +2199,6 @@ SWIGINTERN bool TagLib_MPEG_File_save__SWIG_3(TagLib::MPEG::File *self,int tags,
2204
2199
  delete file;
2205
2200
  }
2206
2201
 
2207
- static bool taglib_ruby_mpeg_file_save(TagLib::MPEG::File *file, int tags, bool stripOthers, int id3v2Version) {
2208
- #if defined(TAGLIB_MAJOR_VERSION) && (TAGLIB_MAJOR_VERSION > 1 || (TAGLIB_MAJOR_VERSION == 1 && TAGLIB_MINOR_VERSION >= 8))
2209
- return file->save(tags, stripOthers, id3v2Version);
2210
- #else
2211
- rb_raise(rb_eArgError, "Overloaded method save(int tags, bool stripOthers, int id3v2Version) on TagLib::MPEG::File is only available when compiled against TagLib >= 1.8");
2212
- return false;
2213
- #endif
2214
- }
2215
-
2216
2202
  static swig_class SwigClassXingHeader;
2217
2203
 
2218
2204
  #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
@@ -2289,7 +2275,7 @@ _wrap_XingHeader_total_frames(int argc, VALUE *argv, VALUE self) {
2289
2275
  TagLib::MPEG::XingHeader *arg1 = (TagLib::MPEG::XingHeader *) 0 ;
2290
2276
  void *argp1 = 0 ;
2291
2277
  int res1 = 0 ;
2292
- TagLib::uint result;
2278
+ unsigned int result;
2293
2279
  VALUE vresult = Qnil;
2294
2280
 
2295
2281
  if ((argc < 0) || (argc > 0)) {
@@ -2300,7 +2286,7 @@ _wrap_XingHeader_total_frames(int argc, VALUE *argv, VALUE self) {
2300
2286
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::XingHeader const *","totalFrames", 1, self ));
2301
2287
  }
2302
2288
  arg1 = reinterpret_cast< TagLib::MPEG::XingHeader * >(argp1);
2303
- result = (TagLib::uint)((TagLib::MPEG::XingHeader const *)arg1)->totalFrames();
2289
+ result = (unsigned int)((TagLib::MPEG::XingHeader const *)arg1)->totalFrames();
2304
2290
  vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
2305
2291
  return vresult;
2306
2292
  fail:
@@ -2313,7 +2299,7 @@ _wrap_XingHeader_total_size(int argc, VALUE *argv, VALUE self) {
2313
2299
  TagLib::MPEG::XingHeader *arg1 = (TagLib::MPEG::XingHeader *) 0 ;
2314
2300
  void *argp1 = 0 ;
2315
2301
  int res1 = 0 ;
2316
- TagLib::uint result;
2302
+ unsigned int result;
2317
2303
  VALUE vresult = Qnil;
2318
2304
 
2319
2305
  if ((argc < 0) || (argc > 0)) {
@@ -2324,7 +2310,7 @@ _wrap_XingHeader_total_size(int argc, VALUE *argv, VALUE self) {
2324
2310
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::XingHeader const *","totalSize", 1, self ));
2325
2311
  }
2326
2312
  arg1 = reinterpret_cast< TagLib::MPEG::XingHeader * >(argp1);
2327
- result = (TagLib::uint)((TagLib::MPEG::XingHeader const *)arg1)->totalSize();
2313
+ result = (unsigned int)((TagLib::MPEG::XingHeader const *)arg1)->totalSize();
2328
2314
  vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
2329
2315
  return vresult;
2330
2316
  fail:
@@ -2332,6 +2318,30 @@ fail:
2332
2318
  }
2333
2319
 
2334
2320
 
2321
+ SWIGINTERN VALUE
2322
+ _wrap_XingHeader_type(int argc, VALUE *argv, VALUE self) {
2323
+ TagLib::MPEG::XingHeader *arg1 = (TagLib::MPEG::XingHeader *) 0 ;
2324
+ void *argp1 = 0 ;
2325
+ int res1 = 0 ;
2326
+ TagLib::MPEG::XingHeader::HeaderType result;
2327
+ VALUE vresult = Qnil;
2328
+
2329
+ if ((argc < 0) || (argc > 0)) {
2330
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
2331
+ }
2332
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__MPEG__XingHeader, 0 | 0 );
2333
+ if (!SWIG_IsOK(res1)) {
2334
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::XingHeader const *","type", 1, self ));
2335
+ }
2336
+ arg1 = reinterpret_cast< TagLib::MPEG::XingHeader * >(argp1);
2337
+ result = (TagLib::MPEG::XingHeader::HeaderType)((TagLib::MPEG::XingHeader const *)arg1)->type();
2338
+ vresult = SWIG_From_int(static_cast< int >(result));
2339
+ return vresult;
2340
+ fail:
2341
+ return Qnil;
2342
+ }
2343
+
2344
+
2335
2345
  SWIGINTERN VALUE
2336
2346
  _wrap_XingHeader_xing_header_offset(int argc, VALUE *argv, VALUE self) {
2337
2347
  TagLib::MPEG::Header::Version arg1 ;
@@ -2388,6 +2398,78 @@ fail:
2388
2398
  }
2389
2399
 
2390
2400
 
2401
+ SWIGINTERN VALUE
2402
+ _wrap_new_Header__SWIG_1(int argc, VALUE *argv, VALUE self) {
2403
+ TagLib::MPEG::File *arg1 = (TagLib::MPEG::File *) 0 ;
2404
+ long arg2 ;
2405
+ bool arg3 ;
2406
+ void *argp1 = 0 ;
2407
+ int res1 = 0 ;
2408
+ long val2 ;
2409
+ int ecode2 = 0 ;
2410
+ bool val3 ;
2411
+ int ecode3 = 0 ;
2412
+ TagLib::MPEG::Header *result = 0 ;
2413
+
2414
+ if ((argc < 3) || (argc > 3)) {
2415
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
2416
+ }
2417
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_TagLib__MPEG__File, 0 | 0 );
2418
+ if (!SWIG_IsOK(res1)) {
2419
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *","Header", 1, argv[0] ));
2420
+ }
2421
+ arg1 = reinterpret_cast< TagLib::MPEG::File * >(argp1);
2422
+ ecode2 = SWIG_AsVal_long(argv[1], &val2);
2423
+ if (!SWIG_IsOK(ecode2)) {
2424
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","Header", 2, argv[1] ));
2425
+ }
2426
+ arg2 = static_cast< long >(val2);
2427
+ ecode3 = SWIG_AsVal_bool(argv[2], &val3);
2428
+ if (!SWIG_IsOK(ecode3)) {
2429
+ SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "bool","Header", 3, argv[2] ));
2430
+ }
2431
+ arg3 = static_cast< bool >(val3);
2432
+ result = (TagLib::MPEG::Header *)new TagLib::MPEG::Header(arg1,arg2,arg3);
2433
+ DATA_PTR(self) = result;
2434
+ SWIG_RubyAddTracking(result, self);
2435
+ return self;
2436
+ fail:
2437
+ return Qnil;
2438
+ }
2439
+
2440
+
2441
+ SWIGINTERN VALUE
2442
+ _wrap_new_Header__SWIG_2(int argc, VALUE *argv, VALUE self) {
2443
+ TagLib::MPEG::File *arg1 = (TagLib::MPEG::File *) 0 ;
2444
+ long arg2 ;
2445
+ void *argp1 = 0 ;
2446
+ int res1 = 0 ;
2447
+ long val2 ;
2448
+ int ecode2 = 0 ;
2449
+ TagLib::MPEG::Header *result = 0 ;
2450
+
2451
+ if ((argc < 2) || (argc > 2)) {
2452
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
2453
+ }
2454
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_TagLib__MPEG__File, 0 | 0 );
2455
+ if (!SWIG_IsOK(res1)) {
2456
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *","Header", 1, argv[0] ));
2457
+ }
2458
+ arg1 = reinterpret_cast< TagLib::MPEG::File * >(argp1);
2459
+ ecode2 = SWIG_AsVal_long(argv[1], &val2);
2460
+ if (!SWIG_IsOK(ecode2)) {
2461
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","Header", 2, argv[1] ));
2462
+ }
2463
+ arg2 = static_cast< long >(val2);
2464
+ result = (TagLib::MPEG::Header *)new TagLib::MPEG::Header(arg1,arg2);
2465
+ DATA_PTR(self) = result;
2466
+ SWIG_RubyAddTracking(result, self);
2467
+ return self;
2468
+ fail:
2469
+ return Qnil;
2470
+ }
2471
+
2472
+
2391
2473
  #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
2392
2474
  SWIGINTERN VALUE
2393
2475
  _wrap_Header_allocate(VALUE self) {
@@ -2406,7 +2488,7 @@ _wrap_Header_allocate(VALUE self) {
2406
2488
 
2407
2489
 
2408
2490
  SWIGINTERN VALUE
2409
- _wrap_new_Header__SWIG_1(int argc, VALUE *argv, VALUE self) {
2491
+ _wrap_new_Header__SWIG_3(int argc, VALUE *argv, VALUE self) {
2410
2492
  TagLib::MPEG::Header *arg1 = 0 ;
2411
2493
  void *argp1 ;
2412
2494
  int res1 = 0 ;
@@ -2434,11 +2516,11 @@ fail:
2434
2516
 
2435
2517
  SWIGINTERN VALUE _wrap_new_Header(int nargs, VALUE *args, VALUE self) {
2436
2518
  int argc;
2437
- VALUE argv[1];
2519
+ VALUE argv[3];
2438
2520
  int ii;
2439
2521
 
2440
2522
  argc = nargs;
2441
- if (argc > 1) SWIG_fail;
2523
+ if (argc > 3) SWIG_fail;
2442
2524
  for (ii = 0; (ii < argc); ++ii) {
2443
2525
  argv[ii] = args[ii];
2444
2526
  }
@@ -2448,7 +2530,7 @@ SWIGINTERN VALUE _wrap_new_Header(int nargs, VALUE *args, VALUE self) {
2448
2530
  int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__Header, 0);
2449
2531
  _v = SWIG_CheckState(res);
2450
2532
  if (_v) {
2451
- return _wrap_new_Header__SWIG_1(nargs, args, self);
2533
+ return _wrap_new_Header__SWIG_3(nargs, args, self);
2452
2534
  }
2453
2535
  }
2454
2536
  if (argc == 1) {
@@ -2459,10 +2541,48 @@ SWIGINTERN VALUE _wrap_new_Header(int nargs, VALUE *args, VALUE self) {
2459
2541
  return _wrap_new_Header__SWIG_0(nargs, args, self);
2460
2542
  }
2461
2543
  }
2544
+ if (argc == 2) {
2545
+ int _v;
2546
+ void *vptr = 0;
2547
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
2548
+ _v = SWIG_CheckState(res);
2549
+ if (_v) {
2550
+ {
2551
+ int res = SWIG_AsVal_long(argv[1], NULL);
2552
+ _v = SWIG_CheckState(res);
2553
+ }
2554
+ if (_v) {
2555
+ return _wrap_new_Header__SWIG_2(nargs, args, self);
2556
+ }
2557
+ }
2558
+ }
2559
+ if (argc == 3) {
2560
+ int _v;
2561
+ void *vptr = 0;
2562
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
2563
+ _v = SWIG_CheckState(res);
2564
+ if (_v) {
2565
+ {
2566
+ int res = SWIG_AsVal_long(argv[1], NULL);
2567
+ _v = SWIG_CheckState(res);
2568
+ }
2569
+ if (_v) {
2570
+ {
2571
+ int res = SWIG_AsVal_bool(argv[2], NULL);
2572
+ _v = SWIG_CheckState(res);
2573
+ }
2574
+ if (_v) {
2575
+ return _wrap_new_Header__SWIG_1(nargs, args, self);
2576
+ }
2577
+ }
2578
+ }
2579
+ }
2462
2580
 
2463
2581
  fail:
2464
- Ruby_Format_OverloadedError( argc, 1, "Header.new",
2582
+ Ruby_Format_OverloadedError( argc, 3, "Header.new",
2465
2583
  " Header.new(TagLib::ByteVector const &data)\n"
2584
+ " Header.new(TagLib::MPEG::File *file, long offset, bool checkLength)\n"
2585
+ " Header.new(TagLib::MPEG::File *file, long offset)\n"
2466
2586
  " Header.new(TagLib::MPEG::Header const &h)\n");
2467
2587
 
2468
2588
  return Qnil;
@@ -2889,7 +3009,31 @@ free_TagLib_MPEG_Properties(TagLib::MPEG::Properties *arg1) {
2889
3009
  }
2890
3010
 
2891
3011
  SWIGINTERN VALUE
2892
- _wrap_Properties_length(int argc, VALUE *argv, VALUE self) {
3012
+ _wrap_Properties_length_in_seconds(int argc, VALUE *argv, VALUE self) {
3013
+ TagLib::MPEG::Properties *arg1 = (TagLib::MPEG::Properties *) 0 ;
3014
+ void *argp1 = 0 ;
3015
+ int res1 = 0 ;
3016
+ int result;
3017
+ VALUE vresult = Qnil;
3018
+
3019
+ if ((argc < 0) || (argc > 0)) {
3020
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
3021
+ }
3022
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__MPEG__Properties, 0 | 0 );
3023
+ if (!SWIG_IsOK(res1)) {
3024
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::Properties const *","lengthInSeconds", 1, self ));
3025
+ }
3026
+ arg1 = reinterpret_cast< TagLib::MPEG::Properties * >(argp1);
3027
+ result = (int)((TagLib::MPEG::Properties const *)arg1)->lengthInSeconds();
3028
+ vresult = SWIG_From_int(static_cast< int >(result));
3029
+ return vresult;
3030
+ fail:
3031
+ return Qnil;
3032
+ }
3033
+
3034
+
3035
+ SWIGINTERN VALUE
3036
+ _wrap_Properties_length_in_milliseconds(int argc, VALUE *argv, VALUE self) {
2893
3037
  TagLib::MPEG::Properties *arg1 = (TagLib::MPEG::Properties *) 0 ;
2894
3038
  void *argp1 = 0 ;
2895
3039
  int res1 = 0 ;
@@ -2901,10 +3045,10 @@ _wrap_Properties_length(int argc, VALUE *argv, VALUE self) {
2901
3045
  }
2902
3046
  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__MPEG__Properties, 0 | 0 );
2903
3047
  if (!SWIG_IsOK(res1)) {
2904
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::Properties const *","length", 1, self ));
3048
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::Properties const *","lengthInMilliseconds", 1, self ));
2905
3049
  }
2906
3050
  arg1 = reinterpret_cast< TagLib::MPEG::Properties * >(argp1);
2907
- result = (int)((TagLib::MPEG::Properties const *)arg1)->length();
3051
+ result = (int)((TagLib::MPEG::Properties const *)arg1)->lengthInMilliseconds();
2908
3052
  vresult = SWIG_From_int(static_cast< int >(result));
2909
3053
  return vresult;
2910
3054
  fail:
@@ -3156,7 +3300,7 @@ static swig_class SwigClassFile;
3156
3300
 
3157
3301
  SWIGINTERN VALUE
3158
3302
  _wrap_new_File__SWIG_0(int argc, VALUE *argv, VALUE self) {
3159
- SwigValueWrapper< TagLib::FileName > arg1 ;
3303
+ TagLib::FileName arg1 ;
3160
3304
  bool arg2 ;
3161
3305
  TagLib::MPEG::Properties::ReadStyle arg3 ;
3162
3306
  bool val2 ;
@@ -3195,7 +3339,7 @@ fail:
3195
3339
 
3196
3340
  SWIGINTERN VALUE
3197
3341
  _wrap_new_File__SWIG_1(int argc, VALUE *argv, VALUE self) {
3198
- SwigValueWrapper< TagLib::FileName > arg1 ;
3342
+ TagLib::FileName arg1 ;
3199
3343
  bool arg2 ;
3200
3344
  bool val2 ;
3201
3345
  int ecode2 = 0 ;
@@ -3226,7 +3370,7 @@ fail:
3226
3370
 
3227
3371
  SWIGINTERN VALUE
3228
3372
  _wrap_new_File__SWIG_2(int argc, VALUE *argv, VALUE self) {
3229
- SwigValueWrapper< TagLib::FileName > arg1 ;
3373
+ TagLib::FileName arg1 ;
3230
3374
  TagLib::MPEG::File *result = 0 ;
3231
3375
 
3232
3376
  if ((argc < 1) || (argc > 1)) {
@@ -3249,7 +3393,7 @@ fail:
3249
3393
 
3250
3394
  SWIGINTERN VALUE
3251
3395
  _wrap_new_File__SWIG_3(int argc, VALUE *argv, VALUE self) {
3252
- SwigValueWrapper< TagLib::FileName > arg1 ;
3396
+ TagLib::FileName arg1 ;
3253
3397
  TagLib::ID3v2::FrameFactory *arg2 = (TagLib::ID3v2::FrameFactory *) 0 ;
3254
3398
  bool arg3 ;
3255
3399
  TagLib::MPEG::Properties::ReadStyle arg4 ;
@@ -3296,7 +3440,7 @@ fail:
3296
3440
 
3297
3441
  SWIGINTERN VALUE
3298
3442
  _wrap_new_File__SWIG_4(int argc, VALUE *argv, VALUE self) {
3299
- SwigValueWrapper< TagLib::FileName > arg1 ;
3443
+ TagLib::FileName arg1 ;
3300
3444
  TagLib::ID3v2::FrameFactory *arg2 = (TagLib::ID3v2::FrameFactory *) 0 ;
3301
3445
  bool arg3 ;
3302
3446
  void *argp2 = 0 ;
@@ -3352,7 +3496,7 @@ _wrap_File_allocate(VALUE self) {
3352
3496
 
3353
3497
  SWIGINTERN VALUE
3354
3498
  _wrap_new_File__SWIG_5(int argc, VALUE *argv, VALUE self) {
3355
- SwigValueWrapper< TagLib::FileName > arg1 ;
3499
+ TagLib::FileName arg1 ;
3356
3500
  TagLib::ID3v2::FrameFactory *arg2 = (TagLib::ID3v2::FrameFactory *) 0 ;
3357
3501
  void *argp2 = 0 ;
3358
3502
  int res2 = 0 ;
@@ -3649,31 +3793,47 @@ fail:
3649
3793
 
3650
3794
 
3651
3795
  SWIGINTERN VALUE
3652
- _wrap_File_id3v2_tag__SWIG_0(int argc, VALUE *argv, VALUE self) {
3796
+ _wrap_File_save__SWIG_3(int argc, VALUE *argv, VALUE self) {
3653
3797
  TagLib::MPEG::File *arg1 = (TagLib::MPEG::File *) 0 ;
3654
- bool arg2 ;
3798
+ int arg2 ;
3799
+ bool arg3 ;
3800
+ int arg4 ;
3655
3801
  void *argp1 = 0 ;
3656
3802
  int res1 = 0 ;
3657
- bool val2 ;
3803
+ int val2 ;
3658
3804
  int ecode2 = 0 ;
3659
- TagLib::ID3v2::Tag *result = 0 ;
3805
+ bool val3 ;
3806
+ int ecode3 = 0 ;
3807
+ int val4 ;
3808
+ int ecode4 = 0 ;
3809
+ bool result;
3660
3810
  VALUE vresult = Qnil;
3661
3811
 
3662
- if ((argc < 1) || (argc > 1)) {
3663
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
3812
+ if ((argc < 3) || (argc > 3)) {
3813
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
3664
3814
  }
3665
3815
  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__MPEG__File, 0 | 0 );
3666
3816
  if (!SWIG_IsOK(res1)) {
3667
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *","ID3v2Tag", 1, self ));
3817
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *","save", 1, self ));
3668
3818
  }
3669
3819
  arg1 = reinterpret_cast< TagLib::MPEG::File * >(argp1);
3670
- ecode2 = SWIG_AsVal_bool(argv[0], &val2);
3820
+ ecode2 = SWIG_AsVal_int(argv[0], &val2);
3671
3821
  if (!SWIG_IsOK(ecode2)) {
3672
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool","ID3v2Tag", 2, argv[0] ));
3822
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","save", 2, argv[0] ));
3673
3823
  }
3674
- arg2 = static_cast< bool >(val2);
3675
- result = (TagLib::ID3v2::Tag *)(arg1)->ID3v2Tag(arg2);
3676
- vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TagLib__ID3v2__Tag, 0 | 0 );
3824
+ arg2 = static_cast< int >(val2);
3825
+ ecode3 = SWIG_AsVal_bool(argv[1], &val3);
3826
+ if (!SWIG_IsOK(ecode3)) {
3827
+ SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "bool","save", 3, argv[1] ));
3828
+ }
3829
+ arg3 = static_cast< bool >(val3);
3830
+ ecode4 = SWIG_AsVal_int(argv[2], &val4);
3831
+ if (!SWIG_IsOK(ecode4)) {
3832
+ SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "int","save", 4, argv[2] ));
3833
+ }
3834
+ arg4 = static_cast< int >(val4);
3835
+ result = (bool)(arg1)->save(arg2,arg3,arg4);
3836
+ vresult = SWIG_From_bool(static_cast< bool >(result));
3677
3837
  return vresult;
3678
3838
  fail:
3679
3839
  return Qnil;
@@ -3681,36 +3841,253 @@ fail:
3681
3841
 
3682
3842
 
3683
3843
  SWIGINTERN VALUE
3684
- _wrap_File_id3v2_tag__SWIG_1(int argc, VALUE *argv, VALUE self) {
3844
+ _wrap_File_save__SWIG_4(int argc, VALUE *argv, VALUE self) {
3685
3845
  TagLib::MPEG::File *arg1 = (TagLib::MPEG::File *) 0 ;
3846
+ int arg2 ;
3847
+ bool arg3 ;
3848
+ int arg4 ;
3849
+ bool arg5 ;
3686
3850
  void *argp1 = 0 ;
3687
3851
  int res1 = 0 ;
3688
- TagLib::ID3v2::Tag *result = 0 ;
3852
+ int val2 ;
3853
+ int ecode2 = 0 ;
3854
+ bool val3 ;
3855
+ int ecode3 = 0 ;
3856
+ int val4 ;
3857
+ int ecode4 = 0 ;
3858
+ bool val5 ;
3859
+ int ecode5 = 0 ;
3860
+ bool result;
3689
3861
  VALUE vresult = Qnil;
3690
3862
 
3691
- if ((argc < 0) || (argc > 0)) {
3692
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
3863
+ if ((argc < 4) || (argc > 4)) {
3864
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
3693
3865
  }
3694
3866
  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__MPEG__File, 0 | 0 );
3695
3867
  if (!SWIG_IsOK(res1)) {
3696
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *","ID3v2Tag", 1, self ));
3868
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *","save", 1, self ));
3697
3869
  }
3698
3870
  arg1 = reinterpret_cast< TagLib::MPEG::File * >(argp1);
3699
- result = (TagLib::ID3v2::Tag *)(arg1)->ID3v2Tag();
3700
- vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TagLib__ID3v2__Tag, 0 | 0 );
3701
- return vresult;
3702
- fail:
3703
- return Qnil;
3704
- }
3705
-
3706
-
3707
- SWIGINTERN VALUE _wrap_File_id3v2_tag(int nargs, VALUE *args, VALUE self) {
3708
- int argc;
3709
- VALUE argv[3];
3710
- int ii;
3711
-
3712
- argc = nargs + 1;
3713
- argv[0] = self;
3871
+ ecode2 = SWIG_AsVal_int(argv[0], &val2);
3872
+ if (!SWIG_IsOK(ecode2)) {
3873
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","save", 2, argv[0] ));
3874
+ }
3875
+ arg2 = static_cast< int >(val2);
3876
+ ecode3 = SWIG_AsVal_bool(argv[1], &val3);
3877
+ if (!SWIG_IsOK(ecode3)) {
3878
+ SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "bool","save", 3, argv[1] ));
3879
+ }
3880
+ arg3 = static_cast< bool >(val3);
3881
+ ecode4 = SWIG_AsVal_int(argv[2], &val4);
3882
+ if (!SWIG_IsOK(ecode4)) {
3883
+ SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "int","save", 4, argv[2] ));
3884
+ }
3885
+ arg4 = static_cast< int >(val4);
3886
+ ecode5 = SWIG_AsVal_bool(argv[3], &val5);
3887
+ if (!SWIG_IsOK(ecode5)) {
3888
+ SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "bool","save", 5, argv[3] ));
3889
+ }
3890
+ arg5 = static_cast< bool >(val5);
3891
+ result = (bool)(arg1)->save(arg2,arg3,arg4,arg5);
3892
+ vresult = SWIG_From_bool(static_cast< bool >(result));
3893
+ return vresult;
3894
+ fail:
3895
+ return Qnil;
3896
+ }
3897
+
3898
+
3899
+ SWIGINTERN VALUE _wrap_File_save(int nargs, VALUE *args, VALUE self) {
3900
+ int argc;
3901
+ VALUE argv[6];
3902
+ int ii;
3903
+
3904
+ argc = nargs + 1;
3905
+ argv[0] = self;
3906
+ if (argc > 6) SWIG_fail;
3907
+ for (ii = 1; (ii < argc); ++ii) {
3908
+ argv[ii] = args[ii-1];
3909
+ }
3910
+ if (argc == 1) {
3911
+ int _v;
3912
+ void *vptr = 0;
3913
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
3914
+ _v = SWIG_CheckState(res);
3915
+ if (_v) {
3916
+ return _wrap_File_save__SWIG_0(nargs, args, self);
3917
+ }
3918
+ }
3919
+ if (argc == 2) {
3920
+ int _v;
3921
+ void *vptr = 0;
3922
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
3923
+ _v = SWIG_CheckState(res);
3924
+ if (_v) {
3925
+ {
3926
+ int res = SWIG_AsVal_int(argv[1], NULL);
3927
+ _v = SWIG_CheckState(res);
3928
+ }
3929
+ if (_v) {
3930
+ return _wrap_File_save__SWIG_1(nargs, args, self);
3931
+ }
3932
+ }
3933
+ }
3934
+ if (argc == 3) {
3935
+ int _v;
3936
+ void *vptr = 0;
3937
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
3938
+ _v = SWIG_CheckState(res);
3939
+ if (_v) {
3940
+ {
3941
+ int res = SWIG_AsVal_int(argv[1], NULL);
3942
+ _v = SWIG_CheckState(res);
3943
+ }
3944
+ if (_v) {
3945
+ {
3946
+ int res = SWIG_AsVal_bool(argv[2], NULL);
3947
+ _v = SWIG_CheckState(res);
3948
+ }
3949
+ if (_v) {
3950
+ return _wrap_File_save__SWIG_2(nargs, args, self);
3951
+ }
3952
+ }
3953
+ }
3954
+ }
3955
+ if (argc == 4) {
3956
+ int _v;
3957
+ void *vptr = 0;
3958
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
3959
+ _v = SWIG_CheckState(res);
3960
+ if (_v) {
3961
+ {
3962
+ int res = SWIG_AsVal_int(argv[1], NULL);
3963
+ _v = SWIG_CheckState(res);
3964
+ }
3965
+ if (_v) {
3966
+ {
3967
+ int res = SWIG_AsVal_bool(argv[2], NULL);
3968
+ _v = SWIG_CheckState(res);
3969
+ }
3970
+ if (_v) {
3971
+ {
3972
+ int res = SWIG_AsVal_int(argv[3], NULL);
3973
+ _v = SWIG_CheckState(res);
3974
+ }
3975
+ if (_v) {
3976
+ return _wrap_File_save__SWIG_3(nargs, args, self);
3977
+ }
3978
+ }
3979
+ }
3980
+ }
3981
+ }
3982
+ if (argc == 5) {
3983
+ int _v;
3984
+ void *vptr = 0;
3985
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
3986
+ _v = SWIG_CheckState(res);
3987
+ if (_v) {
3988
+ {
3989
+ int res = SWIG_AsVal_int(argv[1], NULL);
3990
+ _v = SWIG_CheckState(res);
3991
+ }
3992
+ if (_v) {
3993
+ {
3994
+ int res = SWIG_AsVal_bool(argv[2], NULL);
3995
+ _v = SWIG_CheckState(res);
3996
+ }
3997
+ if (_v) {
3998
+ {
3999
+ int res = SWIG_AsVal_int(argv[3], NULL);
4000
+ _v = SWIG_CheckState(res);
4001
+ }
4002
+ if (_v) {
4003
+ {
4004
+ int res = SWIG_AsVal_bool(argv[4], NULL);
4005
+ _v = SWIG_CheckState(res);
4006
+ }
4007
+ if (_v) {
4008
+ return _wrap_File_save__SWIG_4(nargs, args, self);
4009
+ }
4010
+ }
4011
+ }
4012
+ }
4013
+ }
4014
+ }
4015
+
4016
+ fail:
4017
+ Ruby_Format_OverloadedError( argc, 6, "File.save",
4018
+ " bool File.save()\n"
4019
+ " bool File.save(int tags)\n"
4020
+ " bool File.save(int tags, bool stripOthers)\n"
4021
+ " bool File.save(int tags, bool stripOthers, int id3v2Version)\n"
4022
+ " bool File.save(int tags, bool stripOthers, int id3v2Version, bool duplicateTags)\n");
4023
+
4024
+ return Qnil;
4025
+ }
4026
+
4027
+
4028
+ SWIGINTERN VALUE
4029
+ _wrap_File_id3v2_tag__SWIG_0(int argc, VALUE *argv, VALUE self) {
4030
+ TagLib::MPEG::File *arg1 = (TagLib::MPEG::File *) 0 ;
4031
+ bool arg2 ;
4032
+ void *argp1 = 0 ;
4033
+ int res1 = 0 ;
4034
+ bool val2 ;
4035
+ int ecode2 = 0 ;
4036
+ TagLib::ID3v2::Tag *result = 0 ;
4037
+ VALUE vresult = Qnil;
4038
+
4039
+ if ((argc < 1) || (argc > 1)) {
4040
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
4041
+ }
4042
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__MPEG__File, 0 | 0 );
4043
+ if (!SWIG_IsOK(res1)) {
4044
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *","ID3v2Tag", 1, self ));
4045
+ }
4046
+ arg1 = reinterpret_cast< TagLib::MPEG::File * >(argp1);
4047
+ ecode2 = SWIG_AsVal_bool(argv[0], &val2);
4048
+ if (!SWIG_IsOK(ecode2)) {
4049
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool","ID3v2Tag", 2, argv[0] ));
4050
+ }
4051
+ arg2 = static_cast< bool >(val2);
4052
+ result = (TagLib::ID3v2::Tag *)(arg1)->ID3v2Tag(arg2);
4053
+ vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TagLib__ID3v2__Tag, 0 | 0 );
4054
+ return vresult;
4055
+ fail:
4056
+ return Qnil;
4057
+ }
4058
+
4059
+
4060
+ SWIGINTERN VALUE
4061
+ _wrap_File_id3v2_tag__SWIG_1(int argc, VALUE *argv, VALUE self) {
4062
+ TagLib::MPEG::File *arg1 = (TagLib::MPEG::File *) 0 ;
4063
+ void *argp1 = 0 ;
4064
+ int res1 = 0 ;
4065
+ TagLib::ID3v2::Tag *result = 0 ;
4066
+ VALUE vresult = Qnil;
4067
+
4068
+ if ((argc < 0) || (argc > 0)) {
4069
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
4070
+ }
4071
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__MPEG__File, 0 | 0 );
4072
+ if (!SWIG_IsOK(res1)) {
4073
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *","ID3v2Tag", 1, self ));
4074
+ }
4075
+ arg1 = reinterpret_cast< TagLib::MPEG::File * >(argp1);
4076
+ result = (TagLib::ID3v2::Tag *)(arg1)->ID3v2Tag();
4077
+ vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TagLib__ID3v2__Tag, 0 | 0 );
4078
+ return vresult;
4079
+ fail:
4080
+ return Qnil;
4081
+ }
4082
+
4083
+
4084
+ SWIGINTERN VALUE _wrap_File_id3v2_tag(int nargs, VALUE *args, VALUE self) {
4085
+ int argc;
4086
+ VALUE argv[3];
4087
+ int ii;
4088
+
4089
+ argc = nargs + 1;
4090
+ argv[0] = self;
3714
4091
  if (argc > 3) SWIG_fail;
3715
4092
  for (ii = 1; (ii < argc); ++ii) {
3716
4093
  argv[ii] = args[ii-1];
@@ -4256,67 +4633,46 @@ fail:
4256
4633
 
4257
4634
 
4258
4635
  SWIGINTERN VALUE
4259
- _wrap_File_close(int argc, VALUE *argv, VALUE self) {
4636
+ _wrap_File_id3v1_tagq___(int argc, VALUE *argv, VALUE self) {
4260
4637
  TagLib::MPEG::File *arg1 = (TagLib::MPEG::File *) 0 ;
4261
4638
  void *argp1 = 0 ;
4262
4639
  int res1 = 0 ;
4640
+ bool result;
4641
+ VALUE vresult = Qnil;
4263
4642
 
4264
4643
  if ((argc < 0) || (argc > 0)) {
4265
4644
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
4266
4645
  }
4267
4646
  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__MPEG__File, 0 | 0 );
4268
4647
  if (!SWIG_IsOK(res1)) {
4269
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *","close", 1, self ));
4648
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File const *","hasID3v1Tag", 1, self ));
4270
4649
  }
4271
4650
  arg1 = reinterpret_cast< TagLib::MPEG::File * >(argp1);
4272
- TagLib_MPEG_File_close(arg1);
4273
- return Qnil;
4651
+ result = (bool)((TagLib::MPEG::File const *)arg1)->hasID3v1Tag();
4652
+ vresult = SWIG_From_bool(static_cast< bool >(result));
4653
+ return vresult;
4274
4654
  fail:
4275
4655
  return Qnil;
4276
4656
  }
4277
4657
 
4278
4658
 
4279
4659
  SWIGINTERN VALUE
4280
- _wrap_File_save__SWIG_3(int argc, VALUE *argv, VALUE self) {
4660
+ _wrap_File_id3v2_tagq___(int argc, VALUE *argv, VALUE self) {
4281
4661
  TagLib::MPEG::File *arg1 = (TagLib::MPEG::File *) 0 ;
4282
- int arg2 ;
4283
- bool arg3 ;
4284
- int arg4 ;
4285
4662
  void *argp1 = 0 ;
4286
4663
  int res1 = 0 ;
4287
- int val2 ;
4288
- int ecode2 = 0 ;
4289
- bool val3 ;
4290
- int ecode3 = 0 ;
4291
- int val4 ;
4292
- int ecode4 = 0 ;
4293
4664
  bool result;
4294
4665
  VALUE vresult = Qnil;
4295
4666
 
4296
- if ((argc < 3) || (argc > 3)) {
4297
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
4667
+ if ((argc < 0) || (argc > 0)) {
4668
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
4298
4669
  }
4299
4670
  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__MPEG__File, 0 | 0 );
4300
4671
  if (!SWIG_IsOK(res1)) {
4301
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *","save", 1, self ));
4672
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File const *","hasID3v2Tag", 1, self ));
4302
4673
  }
4303
4674
  arg1 = reinterpret_cast< TagLib::MPEG::File * >(argp1);
4304
- ecode2 = SWIG_AsVal_int(argv[0], &val2);
4305
- if (!SWIG_IsOK(ecode2)) {
4306
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","save", 2, argv[0] ));
4307
- }
4308
- arg2 = static_cast< int >(val2);
4309
- ecode3 = SWIG_AsVal_bool(argv[1], &val3);
4310
- if (!SWIG_IsOK(ecode3)) {
4311
- SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "bool","save", 3, argv[1] ));
4312
- }
4313
- arg3 = static_cast< bool >(val3);
4314
- ecode4 = SWIG_AsVal_int(argv[2], &val4);
4315
- if (!SWIG_IsOK(ecode4)) {
4316
- SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "int","save", 4, argv[2] ));
4317
- }
4318
- arg4 = static_cast< int >(val4);
4319
- result = (bool)TagLib_MPEG_File_save__SWIG_3(arg1,arg2,arg3,arg4);
4675
+ result = (bool)((TagLib::MPEG::File const *)arg1)->hasID3v2Tag();
4320
4676
  vresult = SWIG_From_bool(static_cast< bool >(result));
4321
4677
  return vresult;
4322
4678
  fail:
@@ -4324,97 +4680,47 @@ fail:
4324
4680
  }
4325
4681
 
4326
4682
 
4327
- SWIGINTERN VALUE _wrap_File_save(int nargs, VALUE *args, VALUE self) {
4328
- int argc;
4329
- VALUE argv[5];
4330
- int ii;
4683
+ SWIGINTERN VALUE
4684
+ _wrap_File_ape_tagq___(int argc, VALUE *argv, VALUE self) {
4685
+ TagLib::MPEG::File *arg1 = (TagLib::MPEG::File *) 0 ;
4686
+ void *argp1 = 0 ;
4687
+ int res1 = 0 ;
4688
+ bool result;
4689
+ VALUE vresult = Qnil;
4331
4690
 
4332
- argc = nargs + 1;
4333
- argv[0] = self;
4334
- if (argc > 5) SWIG_fail;
4335
- for (ii = 1; (ii < argc); ++ii) {
4336
- argv[ii] = args[ii-1];
4337
- }
4338
- if (argc == 1) {
4339
- int _v;
4340
- void *vptr = 0;
4341
- int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
4342
- _v = SWIG_CheckState(res);
4343
- if (_v) {
4344
- return _wrap_File_save__SWIG_0(nargs, args, self);
4345
- }
4691
+ if ((argc < 0) || (argc > 0)) {
4692
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
4346
4693
  }
4347
- if (argc == 2) {
4348
- int _v;
4349
- void *vptr = 0;
4350
- int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
4351
- _v = SWIG_CheckState(res);
4352
- if (_v) {
4353
- {
4354
- int res = SWIG_AsVal_int(argv[1], NULL);
4355
- _v = SWIG_CheckState(res);
4356
- }
4357
- if (_v) {
4358
- return _wrap_File_save__SWIG_1(nargs, args, self);
4359
- }
4360
- }
4694
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__MPEG__File, 0 | 0 );
4695
+ if (!SWIG_IsOK(res1)) {
4696
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File const *","hasAPETag", 1, self ));
4361
4697
  }
4362
- if (argc == 3) {
4363
- int _v;
4364
- void *vptr = 0;
4365
- int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
4366
- _v = SWIG_CheckState(res);
4367
- if (_v) {
4368
- {
4369
- int res = SWIG_AsVal_int(argv[1], NULL);
4370
- _v = SWIG_CheckState(res);
4371
- }
4372
- if (_v) {
4373
- {
4374
- int res = SWIG_AsVal_bool(argv[2], NULL);
4375
- _v = SWIG_CheckState(res);
4376
- }
4377
- if (_v) {
4378
- return _wrap_File_save__SWIG_2(nargs, args, self);
4379
- }
4380
- }
4381
- }
4698
+ arg1 = reinterpret_cast< TagLib::MPEG::File * >(argp1);
4699
+ result = (bool)((TagLib::MPEG::File const *)arg1)->hasAPETag();
4700
+ vresult = SWIG_From_bool(static_cast< bool >(result));
4701
+ return vresult;
4702
+ fail:
4703
+ return Qnil;
4704
+ }
4705
+
4706
+
4707
+ SWIGINTERN VALUE
4708
+ _wrap_File_close(int argc, VALUE *argv, VALUE self) {
4709
+ TagLib::MPEG::File *arg1 = (TagLib::MPEG::File *) 0 ;
4710
+ void *argp1 = 0 ;
4711
+ int res1 = 0 ;
4712
+
4713
+ if ((argc < 0) || (argc > 0)) {
4714
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
4382
4715
  }
4383
- if (argc == 4) {
4384
- int _v;
4385
- void *vptr = 0;
4386
- int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
4387
- _v = SWIG_CheckState(res);
4388
- if (_v) {
4389
- {
4390
- int res = SWIG_AsVal_int(argv[1], NULL);
4391
- _v = SWIG_CheckState(res);
4392
- }
4393
- if (_v) {
4394
- {
4395
- int res = SWIG_AsVal_bool(argv[2], NULL);
4396
- _v = SWIG_CheckState(res);
4397
- }
4398
- if (_v) {
4399
- {
4400
- int res = SWIG_AsVal_int(argv[3], NULL);
4401
- _v = SWIG_CheckState(res);
4402
- }
4403
- if (_v) {
4404
- return _wrap_File_save__SWIG_3(nargs, args, self);
4405
- }
4406
- }
4407
- }
4408
- }
4716
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__MPEG__File, 0 | 0 );
4717
+ if (!SWIG_IsOK(res1)) {
4718
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *","close", 1, self ));
4409
4719
  }
4410
-
4720
+ arg1 = reinterpret_cast< TagLib::MPEG::File * >(argp1);
4721
+ TagLib_MPEG_File_close(arg1);
4722
+ return Qnil;
4411
4723
  fail:
4412
- Ruby_Format_OverloadedError( argc, 5, "File.save",
4413
- " bool File.save()\n"
4414
- " bool File.save(int tags)\n"
4415
- " bool File.save(int tags, bool stripOthers)\n"
4416
- " bool File.save(int tags, bool stripOthers, int id3v2Version)\n");
4417
-
4418
4724
  return Qnil;
4419
4725
  }
4420
4726
 
@@ -4759,9 +5065,13 @@ SWIGEXPORT void Init_taglib_mpeg(void) {
4759
5065
  SWIG_TypeClientData(SWIGTYPE_p_TagLib__MPEG__XingHeader, (void *) &SwigClassXingHeader);
4760
5066
  rb_define_alloc_func(SwigClassXingHeader.klass, _wrap_XingHeader_allocate);
4761
5067
  rb_define_method(SwigClassXingHeader.klass, "initialize", VALUEFUNC(_wrap_new_XingHeader), -1);
5068
+ rb_define_const(SwigClassXingHeader.klass, "Invalid", SWIG_From_int(static_cast< int >(TagLib::MPEG::XingHeader::Invalid)));
5069
+ rb_define_const(SwigClassXingHeader.klass, "Xing", SWIG_From_int(static_cast< int >(TagLib::MPEG::XingHeader::Xing)));
5070
+ rb_define_const(SwigClassXingHeader.klass, "VBRI", SWIG_From_int(static_cast< int >(TagLib::MPEG::XingHeader::VBRI)));
4762
5071
  rb_define_method(SwigClassXingHeader.klass, "valid?", VALUEFUNC(_wrap_XingHeader_validq___), -1);
4763
5072
  rb_define_method(SwigClassXingHeader.klass, "total_frames", VALUEFUNC(_wrap_XingHeader_total_frames), -1);
4764
5073
  rb_define_method(SwigClassXingHeader.klass, "total_size", VALUEFUNC(_wrap_XingHeader_total_size), -1);
5074
+ rb_define_method(SwigClassXingHeader.klass, "type", VALUEFUNC(_wrap_XingHeader_type), -1);
4765
5075
  rb_define_singleton_method(SwigClassXingHeader.klass, "xing_header_offset", VALUEFUNC(_wrap_XingHeader_xing_header_offset), -1);
4766
5076
  SwigClassXingHeader.mark = 0;
4767
5077
  SwigClassXingHeader.destroy = (void (*)(void *)) free_TagLib_MPEG_XingHeader;
@@ -4798,7 +5108,8 @@ SWIGEXPORT void Init_taglib_mpeg(void) {
4798
5108
  SWIG_TypeClientData(SWIGTYPE_p_TagLib__MPEG__Properties, (void *) &SwigClassProperties);
4799
5109
  rb_define_alloc_func(SwigClassProperties.klass, _wrap_Properties_allocate);
4800
5110
  rb_define_method(SwigClassProperties.klass, "initialize", VALUEFUNC(_wrap_new_Properties), -1);
4801
- rb_define_method(SwigClassProperties.klass, "length", VALUEFUNC(_wrap_Properties_length), -1);
5111
+ rb_define_method(SwigClassProperties.klass, "length_in_seconds", VALUEFUNC(_wrap_Properties_length_in_seconds), -1);
5112
+ rb_define_method(SwigClassProperties.klass, "length_in_milliseconds", VALUEFUNC(_wrap_Properties_length_in_milliseconds), -1);
4802
5113
  rb_define_method(SwigClassProperties.klass, "bitrate", VALUEFUNC(_wrap_Properties_bitrate), -1);
4803
5114
  rb_define_method(SwigClassProperties.klass, "sample_rate", VALUEFUNC(_wrap_Properties_sample_rate), -1);
4804
5115
  rb_define_method(SwigClassProperties.klass, "channels", VALUEFUNC(_wrap_Properties_channels), -1);
@@ -4824,6 +5135,7 @@ SWIGEXPORT void Init_taglib_mpeg(void) {
4824
5135
  rb_define_const(SwigClassFile.klass, "AllTags", SWIG_From_int(static_cast< int >(TagLib::MPEG::File::AllTags)));
4825
5136
  rb_define_method(SwigClassFile.klass, "tag", VALUEFUNC(_wrap_File_tag), -1);
4826
5137
  rb_define_method(SwigClassFile.klass, "audio_properties", VALUEFUNC(_wrap_File_audio_properties), -1);
5138
+ rb_define_method(SwigClassFile.klass, "save", VALUEFUNC(_wrap_File_save), -1);
4827
5139
  rb_define_method(SwigClassFile.klass, "id3v2_tag", VALUEFUNC(_wrap_File_id3v2_tag), -1);
4828
5140
  rb_define_method(SwigClassFile.klass, "id3v1_tag", VALUEFUNC(_wrap_File_id3v1_tag), -1);
4829
5141
  rb_define_method(SwigClassFile.klass, "apetag", VALUEFUNC(_wrap_File_apetag), -1);
@@ -4833,8 +5145,10 @@ SWIGEXPORT void Init_taglib_mpeg(void) {
4833
5145
  rb_define_method(SwigClassFile.klass, "next_frame_offset", VALUEFUNC(_wrap_File_next_frame_offset), -1);
4834
5146
  rb_define_method(SwigClassFile.klass, "previous_frame_offset", VALUEFUNC(_wrap_File_previous_frame_offset), -1);
4835
5147
  rb_define_method(SwigClassFile.klass, "last_frame_offset", VALUEFUNC(_wrap_File_last_frame_offset), -1);
5148
+ rb_define_method(SwigClassFile.klass, "id3v1_tag?", VALUEFUNC(_wrap_File_id3v1_tagq___), -1);
5149
+ rb_define_method(SwigClassFile.klass, "id3v2_tag?", VALUEFUNC(_wrap_File_id3v2_tagq___), -1);
5150
+ rb_define_method(SwigClassFile.klass, "ape_tag?", VALUEFUNC(_wrap_File_ape_tagq___), -1);
4836
5151
  rb_define_method(SwigClassFile.klass, "close", VALUEFUNC(_wrap_File_close), -1);
4837
- rb_define_method(SwigClassFile.klass, "save", VALUEFUNC(_wrap_File_save), -1);
4838
5152
  SwigClassFile.mark = 0;
4839
5153
  SwigClassFile.destroy = (void (*)(void *)) free_taglib_mpeg_file;
4840
5154
  SwigClassFile.trackObjects = 1;