taglib-ruby 0.7.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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;