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
@@ -36,7 +36,7 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) {
36
36
  if (byteVector.isNull()) {
37
37
  return Qnil;
38
38
  } else {
39
- return rb_tainted_str_new(byteVector.data(), byteVector.size());
39
+ return rb_str_new(byteVector.data(), byteVector.size());
40
40
  }
41
41
  }
42
42
 
@@ -52,7 +52,7 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
52
52
  if (string.isNull()) {
53
53
  return Qnil;
54
54
  } else {
55
- VALUE result = rb_tainted_str_new2(string.toCString(true));
55
+ VALUE result = rb_str_new2(string.toCString(true));
56
56
  ASSOCIATE_UTF8_ENCODING(result);
57
57
  return result;
58
58
  }
@@ -92,9 +92,9 @@ VALUE taglib_filename_to_ruby_string(TagLib::FileName filename) {
92
92
  VALUE result;
93
93
  #ifdef _WIN32
94
94
  const char *s = (const char *) filename;
95
- result = rb_tainted_str_new2(s);
95
+ result = rb_str_new2(s);
96
96
  #else
97
- result = rb_tainted_str_new2(filename);
97
+ result = rb_str_new2(filename);
98
98
  #endif
99
99
  ASSOCIATE_FILESYSTEM_ENCODING(result);
100
100
  return result;
@@ -32,11 +32,12 @@ namespace TagLib {
32
32
 
33
33
  // Rename setters to Ruby convention (combining SWIG rename functions
34
34
  // does not seem to be possible, thus resort to some magic)
35
- %rename("%(command: ruby -e 'print(ARGV[0][3..-1].split(/(?=[A-Z])/).join(\"_\").downcase + \"=\")' )s",
35
+ // setFoo -> foo=
36
+ %rename("%(command: perl -e \"print lc(join('_', split(/(?=[A-Z])/, substr(@ARGV[0], 3)))), '='\" )s",
36
37
  regexmatch$name="^set[A-Z]") "";
37
38
 
38
39
  // isFoo -> foo?
39
- %rename("%(command: ruby -e 'print(ARGV[0][2..-1].split(/(?=[A-Z])/).join(\"_\").downcase + \"?\")' )s",
40
+ %rename("%(command: perl -e \"print lc(join('_', split(/(?=[A-Z])/, substr(@ARGV[0], 2)))), '?'\" )s",
40
41
  regexmatch$name="^is[A-Z]") "";
41
42
 
42
43
  // ByteVector
@@ -93,15 +94,36 @@ namespace TagLib {
93
94
 
94
95
  %ignore TagLib::List::operator[];
95
96
  %ignore TagLib::List::operator=;
97
+ %ignore TagLib::List::operator!=;
96
98
  %include <taglib/tlist.h>
97
99
 
100
+ // Ignore the unified property interface.
101
+ %ignore TagLib::Tag::properties;
102
+ %ignore TagLib::Tag::setProperties;
103
+ %ignore TagLib::Tag::removeUnsupportedProperties;
104
+
98
105
  %include <taglib/tag.h>
99
106
 
107
+ %ignore TagLib::AudioProperties::length; // Deprecated.
100
108
  %include <taglib/audioproperties.h>
101
109
 
102
110
  %ignore TagLib::FileName;
111
+
112
+ // Ignore the unified property interface.
113
+ %ignore TagLib::File::properties;
114
+ %ignore TagLib::File::setProperties;
115
+ %ignore TagLib::File::removeUnsupportedProperties;
116
+
103
117
  %include <taglib/tfile.h>
104
118
 
119
+ // Ignore IOStream and all the constructors using it.
120
+ %ignore IOStream;
121
+ %ignore TagLib::FileRef::FileRef(IOStream*, bool, AudioProperties::ReadStyle);
122
+ %ignore TagLib::FileRef::FileRef(IOStream*, bool);
123
+ %ignore TagLib::FileRef::FileRef(IOStream*);
124
+
125
+ %ignore TagLib::FileRef::swap; // Only useful internally.
126
+
105
127
  %ignore TagLib::FileRef::operator=;
106
128
  %ignore TagLib::FileRef::operator!=;
107
129
  %warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) TagLib::FileRef::FileTypeResolver;
@@ -1894,7 +1894,7 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) {
1894
1894
  if (byteVector.isNull()) {
1895
1895
  return Qnil;
1896
1896
  } else {
1897
- return rb_tainted_str_new(byteVector.data(), byteVector.size());
1897
+ return rb_str_new(byteVector.data(), byteVector.size());
1898
1898
  }
1899
1899
  }
1900
1900
 
@@ -1910,7 +1910,7 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
1910
1910
  if (string.isNull()) {
1911
1911
  return Qnil;
1912
1912
  } else {
1913
- VALUE result = rb_tainted_str_new2(string.toCString(true));
1913
+ VALUE result = rb_str_new2(string.toCString(true));
1914
1914
  ASSOCIATE_UTF8_ENCODING(result);
1915
1915
  return result;
1916
1916
  }
@@ -1950,9 +1950,9 @@ VALUE taglib_filename_to_ruby_string(TagLib::FileName filename) {
1950
1950
  VALUE result;
1951
1951
  #ifdef _WIN32
1952
1952
  const char *s = (const char *) filename;
1953
- result = rb_tainted_str_new2(s);
1953
+ result = rb_str_new2(s);
1954
1954
  #else
1955
- result = rb_tainted_str_new2(filename);
1955
+ result = rb_str_new2(filename);
1956
1956
  #endif
1957
1957
  ASSOCIATE_FILESYSTEM_ENCODING(result);
1958
1958
  return result;
@@ -2403,7 +2403,7 @@ _wrap_Tag_year(int argc, VALUE *argv, VALUE self) {
2403
2403
  TagLib::Tag *arg1 = (TagLib::Tag *) 0 ;
2404
2404
  void *argp1 = 0 ;
2405
2405
  int res1 = 0 ;
2406
- TagLib::uint result;
2406
+ unsigned int result;
2407
2407
  VALUE vresult = Qnil;
2408
2408
 
2409
2409
  if ((argc < 0) || (argc > 0)) {
@@ -2414,7 +2414,7 @@ _wrap_Tag_year(int argc, VALUE *argv, VALUE self) {
2414
2414
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::Tag const *","year", 1, self ));
2415
2415
  }
2416
2416
  arg1 = reinterpret_cast< TagLib::Tag * >(argp1);
2417
- result = (TagLib::uint)((TagLib::Tag const *)arg1)->year();
2417
+ result = (unsigned int)((TagLib::Tag const *)arg1)->year();
2418
2418
  vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
2419
2419
  return vresult;
2420
2420
  fail:
@@ -2427,7 +2427,7 @@ _wrap_Tag_track(int argc, VALUE *argv, VALUE self) {
2427
2427
  TagLib::Tag *arg1 = (TagLib::Tag *) 0 ;
2428
2428
  void *argp1 = 0 ;
2429
2429
  int res1 = 0 ;
2430
- TagLib::uint result;
2430
+ unsigned int result;
2431
2431
  VALUE vresult = Qnil;
2432
2432
 
2433
2433
  if ((argc < 0) || (argc > 0)) {
@@ -2438,7 +2438,7 @@ _wrap_Tag_track(int argc, VALUE *argv, VALUE self) {
2438
2438
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::Tag const *","track", 1, self ));
2439
2439
  }
2440
2440
  arg1 = reinterpret_cast< TagLib::Tag * >(argp1);
2441
- result = (TagLib::uint)((TagLib::Tag const *)arg1)->track();
2441
+ result = (unsigned int)((TagLib::Tag const *)arg1)->track();
2442
2442
  vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
2443
2443
  return vresult;
2444
2444
  fail:
@@ -2584,7 +2584,7 @@ fail:
2584
2584
  SWIGINTERN VALUE
2585
2585
  _wrap_Tag_yeare___(int argc, VALUE *argv, VALUE self) {
2586
2586
  TagLib::Tag *arg1 = (TagLib::Tag *) 0 ;
2587
- TagLib::uint arg2 ;
2587
+ unsigned int arg2 ;
2588
2588
  void *argp1 = 0 ;
2589
2589
  int res1 = 0 ;
2590
2590
  unsigned int val2 ;
@@ -2600,9 +2600,9 @@ _wrap_Tag_yeare___(int argc, VALUE *argv, VALUE self) {
2600
2600
  arg1 = reinterpret_cast< TagLib::Tag * >(argp1);
2601
2601
  ecode2 = SWIG_AsVal_unsigned_SS_int(argv[0], &val2);
2602
2602
  if (!SWIG_IsOK(ecode2)) {
2603
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "TagLib::uint","setYear", 2, argv[0] ));
2603
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "unsigned int","setYear", 2, argv[0] ));
2604
2604
  }
2605
- arg2 = static_cast< TagLib::uint >(val2);
2605
+ arg2 = static_cast< unsigned int >(val2);
2606
2606
  (arg1)->setYear(arg2);
2607
2607
  return Qnil;
2608
2608
  fail:
@@ -2613,7 +2613,7 @@ fail:
2613
2613
  SWIGINTERN VALUE
2614
2614
  _wrap_Tag_tracke___(int argc, VALUE *argv, VALUE self) {
2615
2615
  TagLib::Tag *arg1 = (TagLib::Tag *) 0 ;
2616
- TagLib::uint arg2 ;
2616
+ unsigned int arg2 ;
2617
2617
  void *argp1 = 0 ;
2618
2618
  int res1 = 0 ;
2619
2619
  unsigned int val2 ;
@@ -2629,9 +2629,9 @@ _wrap_Tag_tracke___(int argc, VALUE *argv, VALUE self) {
2629
2629
  arg1 = reinterpret_cast< TagLib::Tag * >(argp1);
2630
2630
  ecode2 = SWIG_AsVal_unsigned_SS_int(argv[0], &val2);
2631
2631
  if (!SWIG_IsOK(ecode2)) {
2632
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "TagLib::uint","setTrack", 2, argv[0] ));
2632
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "unsigned int","setTrack", 2, argv[0] ));
2633
2633
  }
2634
- arg2 = static_cast< TagLib::uint >(val2);
2634
+ arg2 = static_cast< unsigned int >(val2);
2635
2635
  (arg1)->setTrack(arg2);
2636
2636
  return Qnil;
2637
2637
  fail:
@@ -2792,7 +2792,7 @@ free_TagLib_AudioProperties(TagLib::AudioProperties *arg1) {
2792
2792
  }
2793
2793
 
2794
2794
  SWIGINTERN VALUE
2795
- _wrap_AudioProperties_length(int argc, VALUE *argv, VALUE self) {
2795
+ _wrap_AudioProperties_length_in_seconds(int argc, VALUE *argv, VALUE self) {
2796
2796
  TagLib::AudioProperties *arg1 = (TagLib::AudioProperties *) 0 ;
2797
2797
  void *argp1 = 0 ;
2798
2798
  int res1 = 0 ;
@@ -2804,10 +2804,34 @@ _wrap_AudioProperties_length(int argc, VALUE *argv, VALUE self) {
2804
2804
  }
2805
2805
  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__AudioProperties, 0 | 0 );
2806
2806
  if (!SWIG_IsOK(res1)) {
2807
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::AudioProperties const *","length", 1, self ));
2807
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::AudioProperties const *","lengthInSeconds", 1, self ));
2808
2808
  }
2809
2809
  arg1 = reinterpret_cast< TagLib::AudioProperties * >(argp1);
2810
- result = (int)((TagLib::AudioProperties const *)arg1)->length();
2810
+ result = (int)((TagLib::AudioProperties const *)arg1)->lengthInSeconds();
2811
+ vresult = SWIG_From_int(static_cast< int >(result));
2812
+ return vresult;
2813
+ fail:
2814
+ return Qnil;
2815
+ }
2816
+
2817
+
2818
+ SWIGINTERN VALUE
2819
+ _wrap_AudioProperties_length_in_milliseconds(int argc, VALUE *argv, VALUE self) {
2820
+ TagLib::AudioProperties *arg1 = (TagLib::AudioProperties *) 0 ;
2821
+ void *argp1 = 0 ;
2822
+ int res1 = 0 ;
2823
+ int result;
2824
+ VALUE vresult = Qnil;
2825
+
2826
+ if ((argc < 0) || (argc > 0)) {
2827
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
2828
+ }
2829
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__AudioProperties, 0 | 0 );
2830
+ if (!SWIG_IsOK(res1)) {
2831
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::AudioProperties const *","lengthInMilliseconds", 1, self ));
2832
+ }
2833
+ arg1 = reinterpret_cast< TagLib::AudioProperties * >(argp1);
2834
+ result = (int)((TagLib::AudioProperties const *)arg1)->lengthInMilliseconds();
2811
2835
  vresult = SWIG_From_int(static_cast< int >(result));
2812
2836
  return vresult;
2813
2837
  fail:
@@ -2900,7 +2924,7 @@ _wrap_File_name(int argc, VALUE *argv, VALUE self) {
2900
2924
  TagLib::File *arg1 = (TagLib::File *) 0 ;
2901
2925
  void *argp1 = 0 ;
2902
2926
  int res1 = 0 ;
2903
- SwigValueWrapper< TagLib::FileName > result;
2927
+ TagLib::FileName result;
2904
2928
  VALUE vresult = Qnil;
2905
2929
 
2906
2930
  if ((argc < 0) || (argc > 0)) {
@@ -2996,7 +3020,7 @@ fail:
2996
3020
  SWIGINTERN VALUE
2997
3021
  _wrap_File_read_block(int argc, VALUE *argv, VALUE self) {
2998
3022
  TagLib::File *arg1 = (TagLib::File *) 0 ;
2999
- TagLib::ulong arg2 ;
3023
+ unsigned long arg2 ;
3000
3024
  void *argp1 = 0 ;
3001
3025
  int res1 = 0 ;
3002
3026
  unsigned long val2 ;
@@ -3014,9 +3038,9 @@ _wrap_File_read_block(int argc, VALUE *argv, VALUE self) {
3014
3038
  arg1 = reinterpret_cast< TagLib::File * >(argp1);
3015
3039
  ecode2 = SWIG_AsVal_unsigned_SS_long(argv[0], &val2);
3016
3040
  if (!SWIG_IsOK(ecode2)) {
3017
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "TagLib::ulong","readBlock", 2, argv[0] ));
3041
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "unsigned long","readBlock", 2, argv[0] ));
3018
3042
  }
3019
- arg2 = static_cast< TagLib::ulong >(val2);
3043
+ arg2 = static_cast< unsigned long >(val2);
3020
3044
  result = (arg1)->readBlock(arg2);
3021
3045
  {
3022
3046
  vresult = taglib_bytevector_to_ruby_string(result);
@@ -3059,7 +3083,7 @@ fail:
3059
3083
  Document-method: TagLib::File.find
3060
3084
 
3061
3085
  call-seq:
3062
- find(pattern, fromOffset=0, before=ByteVector::null) -> long
3086
+ find(pattern, fromOffset=0, before=TagLib::ByteVector()) -> long
3063
3087
  find(pattern, fromOffset=0) -> long
3064
3088
  find(pattern) -> long
3065
3089
 
@@ -3458,8 +3482,8 @@ SWIGINTERN VALUE
3458
3482
  _wrap_File_insert__SWIG_0(int argc, VALUE *argv, VALUE self) {
3459
3483
  TagLib::File *arg1 = (TagLib::File *) 0 ;
3460
3484
  TagLib::ByteVector *arg2 = 0 ;
3461
- TagLib::ulong arg3 ;
3462
- TagLib::ulong arg4 ;
3485
+ unsigned long arg3 ;
3486
+ unsigned long arg4 ;
3463
3487
  void *argp1 = 0 ;
3464
3488
  int res1 = 0 ;
3465
3489
  TagLib::ByteVector tmp2 ;
@@ -3482,14 +3506,14 @@ _wrap_File_insert__SWIG_0(int argc, VALUE *argv, VALUE self) {
3482
3506
  }
3483
3507
  ecode3 = SWIG_AsVal_unsigned_SS_long(argv[1], &val3);
3484
3508
  if (!SWIG_IsOK(ecode3)) {
3485
- SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "TagLib::ulong","insert", 3, argv[1] ));
3509
+ SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "unsigned long","insert", 3, argv[1] ));
3486
3510
  }
3487
- arg3 = static_cast< TagLib::ulong >(val3);
3511
+ arg3 = static_cast< unsigned long >(val3);
3488
3512
  ecode4 = SWIG_AsVal_unsigned_SS_long(argv[2], &val4);
3489
3513
  if (!SWIG_IsOK(ecode4)) {
3490
- SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "TagLib::ulong","insert", 4, argv[2] ));
3514
+ SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "unsigned long","insert", 4, argv[2] ));
3491
3515
  }
3492
- arg4 = static_cast< TagLib::ulong >(val4);
3516
+ arg4 = static_cast< unsigned long >(val4);
3493
3517
  (arg1)->insert((TagLib::ByteVector const &)*arg2,arg3,arg4);
3494
3518
  return Qnil;
3495
3519
  fail:
@@ -3501,7 +3525,7 @@ SWIGINTERN VALUE
3501
3525
  _wrap_File_insert__SWIG_1(int argc, VALUE *argv, VALUE self) {
3502
3526
  TagLib::File *arg1 = (TagLib::File *) 0 ;
3503
3527
  TagLib::ByteVector *arg2 = 0 ;
3504
- TagLib::ulong arg3 ;
3528
+ unsigned long arg3 ;
3505
3529
  void *argp1 = 0 ;
3506
3530
  int res1 = 0 ;
3507
3531
  TagLib::ByteVector tmp2 ;
@@ -3522,9 +3546,9 @@ _wrap_File_insert__SWIG_1(int argc, VALUE *argv, VALUE self) {
3522
3546
  }
3523
3547
  ecode3 = SWIG_AsVal_unsigned_SS_long(argv[1], &val3);
3524
3548
  if (!SWIG_IsOK(ecode3)) {
3525
- SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "TagLib::ulong","insert", 3, argv[1] ));
3549
+ SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "unsigned long","insert", 3, argv[1] ));
3526
3550
  }
3527
- arg3 = static_cast< TagLib::ulong >(val3);
3551
+ arg3 = static_cast< unsigned long >(val3);
3528
3552
  (arg1)->insert((TagLib::ByteVector const &)*arg2,arg3);
3529
3553
  return Qnil;
3530
3554
  fail:
@@ -3630,8 +3654,8 @@ SWIGINTERN VALUE _wrap_File_insert(int nargs, VALUE *args, VALUE self) {
3630
3654
 
3631
3655
  fail:
3632
3656
  Ruby_Format_OverloadedError( argc, 5, "File.insert",
3633
- " void File.insert(TagLib::ByteVector const &data, TagLib::ulong start, TagLib::ulong replace)\n"
3634
- " void File.insert(TagLib::ByteVector const &data, TagLib::ulong start)\n"
3657
+ " void File.insert(TagLib::ByteVector const &data, unsigned long start, unsigned long replace)\n"
3658
+ " void File.insert(TagLib::ByteVector const &data, unsigned long start)\n"
3635
3659
  " void File.insert(TagLib::ByteVector const &data)\n");
3636
3660
 
3637
3661
  return Qnil;
@@ -3641,8 +3665,8 @@ fail:
3641
3665
  SWIGINTERN VALUE
3642
3666
  _wrap_File_remove_block__SWIG_0(int argc, VALUE *argv, VALUE self) {
3643
3667
  TagLib::File *arg1 = (TagLib::File *) 0 ;
3644
- TagLib::ulong arg2 ;
3645
- TagLib::ulong arg3 ;
3668
+ unsigned long arg2 ;
3669
+ unsigned long arg3 ;
3646
3670
  void *argp1 = 0 ;
3647
3671
  int res1 = 0 ;
3648
3672
  unsigned long val2 ;
@@ -3660,14 +3684,14 @@ _wrap_File_remove_block__SWIG_0(int argc, VALUE *argv, VALUE self) {
3660
3684
  arg1 = reinterpret_cast< TagLib::File * >(argp1);
3661
3685
  ecode2 = SWIG_AsVal_unsigned_SS_long(argv[0], &val2);
3662
3686
  if (!SWIG_IsOK(ecode2)) {
3663
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "TagLib::ulong","removeBlock", 2, argv[0] ));
3687
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "unsigned long","removeBlock", 2, argv[0] ));
3664
3688
  }
3665
- arg2 = static_cast< TagLib::ulong >(val2);
3689
+ arg2 = static_cast< unsigned long >(val2);
3666
3690
  ecode3 = SWIG_AsVal_unsigned_SS_long(argv[1], &val3);
3667
3691
  if (!SWIG_IsOK(ecode3)) {
3668
- SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "TagLib::ulong","removeBlock", 3, argv[1] ));
3692
+ SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "unsigned long","removeBlock", 3, argv[1] ));
3669
3693
  }
3670
- arg3 = static_cast< TagLib::ulong >(val3);
3694
+ arg3 = static_cast< unsigned long >(val3);
3671
3695
  (arg1)->removeBlock(arg2,arg3);
3672
3696
  return Qnil;
3673
3697
  fail:
@@ -3678,7 +3702,7 @@ fail:
3678
3702
  SWIGINTERN VALUE
3679
3703
  _wrap_File_remove_block__SWIG_1(int argc, VALUE *argv, VALUE self) {
3680
3704
  TagLib::File *arg1 = (TagLib::File *) 0 ;
3681
- TagLib::ulong arg2 ;
3705
+ unsigned long arg2 ;
3682
3706
  void *argp1 = 0 ;
3683
3707
  int res1 = 0 ;
3684
3708
  unsigned long val2 ;
@@ -3694,9 +3718,9 @@ _wrap_File_remove_block__SWIG_1(int argc, VALUE *argv, VALUE self) {
3694
3718
  arg1 = reinterpret_cast< TagLib::File * >(argp1);
3695
3719
  ecode2 = SWIG_AsVal_unsigned_SS_long(argv[0], &val2);
3696
3720
  if (!SWIG_IsOK(ecode2)) {
3697
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "TagLib::ulong","removeBlock", 2, argv[0] ));
3721
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "unsigned long","removeBlock", 2, argv[0] ));
3698
3722
  }
3699
- arg2 = static_cast< TagLib::ulong >(val2);
3723
+ arg2 = static_cast< unsigned long >(val2);
3700
3724
  (arg1)->removeBlock(arg2);
3701
3725
  return Qnil;
3702
3726
  fail:
@@ -3784,8 +3808,8 @@ SWIGINTERN VALUE _wrap_File_remove_block(int nargs, VALUE *args, VALUE self) {
3784
3808
 
3785
3809
  fail:
3786
3810
  Ruby_Format_OverloadedError( argc, 4, "File.remove_block",
3787
- " void File.remove_block(TagLib::ulong start, TagLib::ulong length)\n"
3788
- " void File.remove_block(TagLib::ulong start)\n"
3811
+ " void File.remove_block(unsigned long start, unsigned long length)\n"
3812
+ " void File.remove_block(unsigned long start)\n"
3789
3813
  " void File.remove_block()\n");
3790
3814
 
3791
3815
  return Qnil;
@@ -4130,7 +4154,7 @@ fail:
4130
4154
 
4131
4155
  SWIGINTERN VALUE
4132
4156
  _wrap_new_FileRef__SWIG_1(int argc, VALUE *argv, VALUE self) {
4133
- SwigValueWrapper< TagLib::FileName > arg1 ;
4157
+ TagLib::FileName arg1 ;
4134
4158
  bool arg2 ;
4135
4159
  TagLib::AudioProperties::ReadStyle arg3 ;
4136
4160
  bool val2 ;
@@ -4169,7 +4193,7 @@ fail:
4169
4193
 
4170
4194
  SWIGINTERN VALUE
4171
4195
  _wrap_new_FileRef__SWIG_2(int argc, VALUE *argv, VALUE self) {
4172
- SwigValueWrapper< TagLib::FileName > arg1 ;
4196
+ TagLib::FileName arg1 ;
4173
4197
  bool arg2 ;
4174
4198
  bool val2 ;
4175
4199
  int ecode2 = 0 ;
@@ -4200,7 +4224,7 @@ fail:
4200
4224
 
4201
4225
  SWIGINTERN VALUE
4202
4226
  _wrap_new_FileRef__SWIG_3(int argc, VALUE *argv, VALUE self) {
4203
- SwigValueWrapper< TagLib::FileName > arg1 ;
4227
+ TagLib::FileName arg1 ;
4204
4228
  TagLib::FileRef *result = 0 ;
4205
4229
 
4206
4230
  if ((argc < 1) || (argc > 1)) {
@@ -4590,7 +4614,7 @@ fail:
4590
4614
 
4591
4615
  SWIGINTERN VALUE
4592
4616
  _wrap_FileRef_create__SWIG_0(int argc, VALUE *argv, VALUE self) {
4593
- SwigValueWrapper< TagLib::FileName > arg1 ;
4617
+ TagLib::FileName arg1 ;
4594
4618
  bool arg2 ;
4595
4619
  TagLib::AudioProperties::ReadStyle arg3 ;
4596
4620
  bool val2 ;
@@ -4629,7 +4653,7 @@ fail:
4629
4653
 
4630
4654
  SWIGINTERN VALUE
4631
4655
  _wrap_FileRef_create__SWIG_1(int argc, VALUE *argv, VALUE self) {
4632
- SwigValueWrapper< TagLib::FileName > arg1 ;
4656
+ TagLib::FileName arg1 ;
4633
4657
  bool arg2 ;
4634
4658
  bool val2 ;
4635
4659
  int ecode2 = 0 ;
@@ -4660,7 +4684,7 @@ fail:
4660
4684
 
4661
4685
  SWIGINTERN VALUE
4662
4686
  _wrap_FileRef_create__SWIG_2(int argc, VALUE *argv, VALUE self) {
4663
- SwigValueWrapper< TagLib::FileName > arg1 ;
4687
+ TagLib::FileName arg1 ;
4664
4688
  TagLib::File *result = 0 ;
4665
4689
  VALUE vresult = Qnil;
4666
4690
 
@@ -5118,7 +5142,8 @@ SWIGEXPORT void Init_taglib_base(void) {
5118
5142
  rb_define_const(SwigClassAudioProperties.klass, "Fast", SWIG_From_int(static_cast< int >(TagLib::AudioProperties::Fast)));
5119
5143
  rb_define_const(SwigClassAudioProperties.klass, "Average", SWIG_From_int(static_cast< int >(TagLib::AudioProperties::Average)));
5120
5144
  rb_define_const(SwigClassAudioProperties.klass, "Accurate", SWIG_From_int(static_cast< int >(TagLib::AudioProperties::Accurate)));
5121
- rb_define_method(SwigClassAudioProperties.klass, "length", VALUEFUNC(_wrap_AudioProperties_length), -1);
5145
+ rb_define_method(SwigClassAudioProperties.klass, "length_in_seconds", VALUEFUNC(_wrap_AudioProperties_length_in_seconds), -1);
5146
+ rb_define_method(SwigClassAudioProperties.klass, "length_in_milliseconds", VALUEFUNC(_wrap_AudioProperties_length_in_milliseconds), -1);
5122
5147
  rb_define_method(SwigClassAudioProperties.klass, "bitrate", VALUEFUNC(_wrap_AudioProperties_bitrate), -1);
5123
5148
  rb_define_method(SwigClassAudioProperties.klass, "sample_rate", VALUEFUNC(_wrap_AudioProperties_sample_rate), -1);
5124
5149
  rb_define_method(SwigClassAudioProperties.klass, "channels", VALUEFUNC(_wrap_AudioProperties_channels), -1);
@@ -3,45 +3,41 @@
3
3
  #include <taglib/taglib.h>
4
4
  #include <taglib/flacfile.h>
5
5
  #include <taglib/flacproperties.h>
6
- #include <taglib/flacpicture.h>
7
6
  #include <taglib/id3v1tag.h>
8
7
  #include <taglib/id3v2tag.h>
9
8
  %}
10
9
 
11
10
  %include "../taglib_base/includes.i"
12
11
  %import(module="taglib_base") "../taglib_base/taglib_base.i"
12
+ %include "../taglib_flac_picture/includes.i"
13
+ %import(module="taglib_flac_picture") "../taglib_flac_picture/taglib_flac_picture.i"
13
14
 
14
- %{
15
- VALUE taglib_flac_picturelist_to_ruby_array(const TagLib::List<TagLib::FLAC::Picture *> & list) {
16
- VALUE ary = rb_ary_new2(list.size());
17
- for (TagLib::List<TagLib::FLAC::Picture *>::ConstIterator it = list.begin(); it != list.end(); it++) {
18
- TagLib::FLAC::Picture *picture = *it;
19
- VALUE p = SWIG_NewPointerObj(picture, SWIGTYPE_p_TagLib__FLAC__Picture, 0);
20
- rb_ary_push(ary, p);
21
- }
22
- return ary;
23
- }
24
- %}
15
+ // Deprecated
16
+ %ignore TagLib::FLAC::Properties::length;
17
+ %ignore TagLib::FLAC::Properties::sampleWidth;
25
18
 
26
19
  %include <taglib/flacproperties.h>
27
20
 
28
- %include <taglib/flacmetadatablock.h>
29
- %include <taglib/flacpicture.h>
21
+ // Ignore IOStream and all the constructors using it.
22
+ %ignore IOStream;
23
+ %ignore TagLib::FLAC::File::File(IOStream*, ID3v2::FrameFactory*, bool, Properties::ReadStyle);
24
+ %ignore TagLib::FLAC::File::File(IOStream*, ID3v2::FrameFactory*, bool);
25
+ %ignore TagLib::FLAC::File::File(IOStream*, ID3v2::FrameFactory*);
30
26
 
31
27
  %rename(id3v1_tag) TagLib::FLAC::File::ID3v1Tag;
32
28
  %rename(id3v2_tag) TagLib::FLAC::File::ID3v2Tag;
33
29
  %rename(set_id3v2_frame_factory) TagLib::FLAC::File::setID3v2FrameFactory;
34
30
 
35
- %typemap(out) TagLib::List<TagLib::FLAC::Picture *> {
36
- $result = taglib_flac_picturelist_to_ruby_array($1);
37
- }
38
-
39
31
  %freefunc TagLib::FLAC::File "free_taglib_flac_file";
40
32
 
41
33
  %apply SWIGTYPE *DISOWN { TagLib::FLAC::Picture *picture };
42
34
  // Don't expose second parameter, memory should be freed by TagLib
43
35
  %ignore TagLib::FLAC::File::removePicture(Picture *, bool);
44
36
 
37
+ %rename("xiph_comment?") TagLib::FLAC::File::hasXiphComment;
38
+ %rename("id3v1_tag?") TagLib::FLAC::File::hasID3v1Tag;
39
+ %rename("id3v2_tag?") TagLib::FLAC::File::hasID3v2Tag;
40
+
45
41
  %include <taglib/flacfile.h>
46
42
 
47
43
  // Unlink Ruby objects from the deleted C++ objects. Otherwise Ruby code