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
@@ -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