taglib-ruby 1.0.0 → 1.1.1

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 (103) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +33 -0
  3. data/.yardopts +1 -1
  4. data/{CHANGES.md → CHANGELOG.md} +35 -14
  5. data/Gemfile +2 -0
  6. data/Guardfile +4 -2
  7. data/README.md +56 -38
  8. data/Rakefile +8 -8
  9. data/docs/taglib/aiff.rb +0 -3
  10. data/docs/taglib/base.rb +0 -4
  11. data/docs/taglib/flac.rb +1 -3
  12. data/docs/taglib/id3v2.rb +1 -1
  13. data/docs/taglib/mp4.rb +2 -4
  14. data/docs/taglib/mpeg.rb +0 -1
  15. data/docs/taglib/ogg.rb +0 -4
  16. data/docs/taglib/vorbis.rb +0 -1
  17. data/docs/taglib/wav.rb +0 -4
  18. data/ext/extconf_common.rb +24 -28
  19. data/ext/taglib_aiff/extconf.rb +2 -0
  20. data/ext/taglib_aiff/taglib_aiff_wrap.cxx +217 -178
  21. data/ext/taglib_base/extconf.rb +2 -0
  22. data/ext/taglib_base/includes.i +25 -0
  23. data/ext/taglib_base/taglib_base.i +18 -0
  24. data/ext/taglib_base/taglib_base_wrap.cxx +233 -191
  25. data/ext/taglib_flac/extconf.rb +2 -0
  26. data/ext/taglib_flac/taglib_flac.i +7 -0
  27. data/ext/taglib_flac/taglib_flac_wrap.cxx +235 -189
  28. data/ext/taglib_flac_picture/extconf.rb +2 -0
  29. data/ext/taglib_flac_picture/taglib_flac_picture_wrap.cxx +210 -168
  30. data/ext/taglib_id3v1/extconf.rb +2 -0
  31. data/ext/taglib_id3v1/taglib_id3v1_wrap.cxx +223 -182
  32. data/ext/taglib_id3v2/extconf.rb +2 -0
  33. data/ext/taglib_id3v2/taglib_id3v2.i +17 -0
  34. data/ext/taglib_id3v2/taglib_id3v2_wrap.cxx +2922 -993
  35. data/ext/taglib_mp4/extconf.rb +2 -0
  36. data/ext/taglib_mp4/taglib_mp4_wrap.cxx +295 -260
  37. data/ext/taglib_mpeg/extconf.rb +2 -0
  38. data/ext/taglib_mpeg/taglib_mpeg_wrap.cxx +243 -206
  39. data/ext/taglib_ogg/extconf.rb +2 -0
  40. data/ext/taglib_ogg/taglib_ogg_wrap.cxx +214 -171
  41. data/ext/taglib_vorbis/extconf.rb +2 -0
  42. data/ext/taglib_vorbis/taglib_vorbis_wrap.cxx +217 -178
  43. data/ext/taglib_wav/extconf.rb +2 -0
  44. data/ext/taglib_wav/taglib_wav_wrap.cxx +217 -178
  45. data/lib/taglib/aiff.rb +2 -0
  46. data/lib/taglib/base.rb +3 -1
  47. data/lib/taglib/flac.rb +2 -0
  48. data/lib/taglib/id3v1.rb +2 -0
  49. data/lib/taglib/id3v2.rb +2 -0
  50. data/lib/taglib/mp4.rb +10 -13
  51. data/lib/taglib/mpeg.rb +2 -0
  52. data/lib/taglib/ogg.rb +2 -0
  53. data/lib/taglib/version.rb +4 -2
  54. data/lib/taglib/vorbis.rb +2 -0
  55. data/lib/taglib/wav.rb +2 -1
  56. data/lib/taglib.rb +4 -3
  57. data/taglib-ruby.gemspec +165 -162
  58. data/tasks/docs_coverage.rake +10 -8
  59. data/tasks/ext.rake +26 -25
  60. data/tasks/gemspec_check.rake +7 -5
  61. data/tasks/swig.rake +10 -11
  62. data/test/aiff_examples_test.rb +8 -13
  63. data/test/aiff_file_test.rb +29 -29
  64. data/test/aiff_file_write_test.rb +19 -20
  65. data/test/base_test.rb +4 -2
  66. data/test/data/add-relative-volume.cpp +7 -3
  67. data/test/data/flac-create.cpp +15 -5
  68. data/test/data/flac_nopic.flac +0 -0
  69. data/test/data/get_picture_data.cpp +5 -1
  70. data/test/data/id3v1-create.cpp +6 -3
  71. data/test/data/mp4-create.cpp +12 -4
  72. data/test/data/vorbis-create.cpp +12 -5
  73. data/test/data/wav-create.cpp +18 -3
  74. data/test/file_test.rb +7 -5
  75. data/test/fileref_open_test.rb +12 -10
  76. data/test/fileref_properties_test.rb +6 -4
  77. data/test/fileref_write_test.rb +14 -13
  78. data/test/flac_file_test.rb +32 -27
  79. data/test/flac_file_write_test.rb +17 -18
  80. data/test/flac_picture_memory_test.rb +39 -0
  81. data/test/helper.rb +3 -1
  82. data/test/id3v1_genres_test.rb +14 -12
  83. data/test/id3v1_tag_test.rb +7 -5
  84. data/test/id3v2_frames_test.rb +98 -34
  85. data/test/id3v2_header_test.rb +14 -13
  86. data/test/id3v2_memory_test.rb +21 -20
  87. data/test/id3v2_relative_volume_test.rb +11 -9
  88. data/test/id3v2_tag_test.rb +16 -14
  89. data/test/id3v2_unicode_test.rb +12 -10
  90. data/test/id3v2_unknown_frames_test.rb +7 -5
  91. data/test/id3v2_write_test.rb +28 -29
  92. data/test/mp4_file_test.rb +27 -26
  93. data/test/mp4_file_write_test.rb +12 -13
  94. data/test/mp4_items_test.rb +78 -79
  95. data/test/mpeg_file_test.rb +32 -30
  96. data/test/tag_test.rb +5 -3
  97. data/test/unicode_filename_test.rb +7 -7
  98. data/test/vorbis_file_test.rb +14 -12
  99. data/test/vorbis_tag_test.rb +46 -44
  100. data/test/wav_examples_test.rb +8 -16
  101. data/test/wav_file_test.rb +29 -29
  102. data/test/wav_file_write_test.rb +22 -23
  103. metadata +26 -23
@@ -1,3 +1,5 @@
1
+ # frozen-string-literal: true
2
+
1
3
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..'))
2
4
  require 'extconf_common'
3
5
 
@@ -3,6 +3,7 @@
3
3
  // Undefine macros we don't need for wrapping
4
4
  #define TAGLIB_EXPORT
5
5
  #define TAGLIB_IGNORE_MISSING_DESTRUCTOR
6
+ #define TAGLIB_DEPRECATED
6
7
 
7
8
  // Replaces the typemap from swigtype.swg and just adds the line
8
9
  // SWIG_RubyUnlinkObjects. This is done to be safe in the case when a
@@ -19,6 +20,8 @@
19
20
  %{
20
21
  #include <taglib/tstring.h>
21
22
  #include <taglib/tstringlist.h>
23
+ #include <taglib/tbytevector.h>
24
+ #include <taglib/tbytevectorlist.h>
22
25
  #include <taglib/tfile.h>
23
26
 
24
27
  #if defined(HAVE_RUBY_ENCODING_H) && HAVE_RUBY_ENCODING_H
@@ -88,6 +91,28 @@ TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
88
91
  return result;
89
92
  }
90
93
 
94
+ VALUE taglib_bytevectorlist_to_ruby_array(const TagLib::ByteVectorList & list) {
95
+ VALUE ary = rb_ary_new2(list.size());
96
+ for (TagLib::ByteVectorList::ConstIterator it = list.begin(); it != list.end(); it++) {
97
+ VALUE s = taglib_bytevector_to_ruby_string(*it);
98
+ rb_ary_push(ary, s);
99
+ }
100
+ return ary;
101
+ }
102
+
103
+ TagLib::ByteVectorList ruby_array_to_taglib_bytevectorlist(VALUE ary) {
104
+ TagLib::ByteVectorList result = TagLib::ByteVectorList();
105
+ if (NIL_P(ary)) {
106
+ return result;
107
+ }
108
+ for (long i = 0; i < RARRAY_LEN(ary); i++) {
109
+ VALUE e = rb_ary_entry(ary, i);
110
+ TagLib::ByteVector s = ruby_string_to_taglib_bytevector(e);
111
+ result.append(s);
112
+ }
113
+ return result;
114
+ }
115
+
91
116
  VALUE taglib_filename_to_ruby_string(TagLib::FileName filename) {
92
117
  VALUE result;
93
118
  #ifdef _WIN32
@@ -2,6 +2,7 @@
2
2
  %{
3
3
  #include <taglib/taglib.h>
4
4
  #include <taglib/tbytevector.h>
5
+ #include <taglib/tbytevectorlist.h>
5
6
  #include <taglib/tlist.h>
6
7
  #include <taglib/fileref.h>
7
8
  #include <taglib/tag.h>
@@ -12,6 +13,7 @@
12
13
  namespace TagLib {
13
14
  class StringList;
14
15
  class ByteVector;
16
+ class ByteVectorList;
15
17
 
16
18
  class String {
17
19
  public:
@@ -57,6 +59,22 @@ namespace TagLib {
57
59
  }
58
60
  %typemap(typecheck) const TagLib::ByteVector & = char *;
59
61
 
62
+ // ByteVectorList
63
+ %typemap(out) TagLib::ByteVectorList {
64
+ $result = taglib_bytevectorlist_to_ruby_array($1);
65
+ }
66
+ %typemap(out) TagLib::ByteVectorList * {
67
+ $result = taglib_bytevectorlist_to_ruby_array(*($1));
68
+ }
69
+ %typemap(in) TagLib::ByteVectorList & (TagLib::ByteVectorList tmp) {
70
+ tmp = ruby_array_to_taglib_bytevectorlist($input);
71
+ $1 = &tmp;
72
+ }
73
+ %typemap(in) TagLib::ByteVectorList * (TagLib::ByteVectorList tmp) {
74
+ tmp = ruby_array_to_taglib_bytevectorlist($input);
75
+ $1 = &tmp;
76
+ }
77
+
60
78
  // String
61
79
  %typemap(out) TagLib::String {
62
80
  $result = taglib_string_to_ruby_string($1);