taglib-ruby 1.0.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +33 -0
- data/.yardopts +1 -1
- data/CHANGELOG.md +15 -0
- data/Gemfile +2 -0
- data/Guardfile +4 -2
- data/README.md +56 -38
- data/Rakefile +8 -8
- data/docs/taglib/aiff.rb +0 -3
- data/docs/taglib/base.rb +0 -4
- data/docs/taglib/flac.rb +1 -3
- data/docs/taglib/id3v2.rb +1 -1
- data/docs/taglib/mp4.rb +2 -4
- data/docs/taglib/mpeg.rb +0 -1
- data/docs/taglib/ogg.rb +0 -4
- data/docs/taglib/vorbis.rb +0 -1
- data/docs/taglib/wav.rb +0 -4
- data/ext/extconf_common.rb +24 -28
- data/ext/taglib_aiff/extconf.rb +2 -0
- data/ext/taglib_aiff/taglib_aiff_wrap.cxx +217 -178
- data/ext/taglib_base/extconf.rb +2 -0
- data/ext/taglib_base/includes.i +25 -0
- data/ext/taglib_base/taglib_base.i +21 -0
- data/ext/taglib_base/taglib_base_wrap.cxx +233 -191
- data/ext/taglib_flac/extconf.rb +2 -0
- data/ext/taglib_flac/taglib_flac_wrap.cxx +228 -189
- data/ext/taglib_flac_picture/extconf.rb +2 -0
- data/ext/taglib_flac_picture/taglib_flac_picture_wrap.cxx +210 -168
- data/ext/taglib_id3v1/extconf.rb +2 -0
- data/ext/taglib_id3v1/taglib_id3v1_wrap.cxx +223 -182
- data/ext/taglib_id3v2/extconf.rb +2 -0
- data/ext/taglib_id3v2/taglib_id3v2.i +17 -0
- data/ext/taglib_id3v2/taglib_id3v2_wrap.cxx +2923 -999
- data/ext/taglib_mp4/extconf.rb +2 -0
- data/ext/taglib_mp4/taglib_mp4_wrap.cxx +311 -281
- data/ext/taglib_mpeg/extconf.rb +2 -0
- data/ext/taglib_mpeg/taglib_mpeg_wrap.cxx +243 -206
- data/ext/taglib_ogg/extconf.rb +2 -0
- data/ext/taglib_ogg/taglib_ogg_wrap.cxx +214 -171
- data/ext/taglib_vorbis/extconf.rb +2 -0
- data/ext/taglib_vorbis/taglib_vorbis_wrap.cxx +217 -178
- data/ext/taglib_wav/extconf.rb +2 -0
- data/ext/taglib_wav/taglib_wav_wrap.cxx +217 -178
- data/lib/taglib/aiff.rb +2 -0
- data/lib/taglib/base.rb +3 -1
- data/lib/taglib/flac.rb +2 -0
- data/lib/taglib/id3v1.rb +2 -0
- data/lib/taglib/id3v2.rb +2 -0
- data/lib/taglib/mp4.rb +10 -13
- data/lib/taglib/mpeg.rb +2 -0
- data/lib/taglib/ogg.rb +2 -0
- data/lib/taglib/version.rb +4 -2
- data/lib/taglib/vorbis.rb +2 -0
- data/lib/taglib/wav.rb +2 -1
- data/lib/taglib.rb +4 -3
- data/taglib-ruby.gemspec +165 -162
- data/tasks/docs_coverage.rake +10 -8
- data/tasks/ext.rake +26 -25
- data/tasks/gemspec_check.rake +7 -5
- data/tasks/swig.rake +10 -11
- data/test/aiff_examples_test.rb +8 -13
- data/test/aiff_file_test.rb +29 -29
- data/test/aiff_file_write_test.rb +19 -20
- data/test/base_test.rb +4 -2
- data/test/data/add-relative-volume.cpp +7 -3
- data/test/data/flac-create.cpp +15 -5
- data/test/data/flac_nopic.flac +0 -0
- data/test/data/get_picture_data.cpp +5 -1
- data/test/data/id3v1-create.cpp +6 -3
- data/test/data/mp4-create.cpp +12 -4
- data/test/data/vorbis-create.cpp +12 -5
- data/test/data/wav-create.cpp +18 -3
- data/test/file_test.rb +7 -5
- data/test/fileref_open_test.rb +12 -10
- data/test/fileref_properties_test.rb +6 -4
- data/test/fileref_write_test.rb +14 -13
- data/test/flac_file_test.rb +32 -27
- data/test/flac_file_write_test.rb +17 -18
- data/test/flac_picture_memory_test.rb +39 -0
- data/test/helper.rb +3 -1
- data/test/id3v1_genres_test.rb +14 -12
- data/test/id3v1_tag_test.rb +7 -5
- data/test/id3v2_frames_test.rb +103 -34
- data/test/id3v2_header_test.rb +14 -13
- data/test/id3v2_memory_test.rb +21 -20
- data/test/id3v2_relative_volume_test.rb +11 -9
- data/test/id3v2_tag_test.rb +16 -14
- data/test/id3v2_unicode_test.rb +12 -10
- data/test/id3v2_unknown_frames_test.rb +7 -5
- data/test/id3v2_write_test.rb +28 -29
- data/test/mp4_file_test.rb +27 -26
- data/test/mp4_file_write_test.rb +12 -13
- data/test/mp4_items_test.rb +78 -79
- data/test/mpeg_file_test.rb +32 -30
- data/test/tag_test.rb +5 -3
- data/test/unicode_filename_test.rb +7 -7
- data/test/vorbis_file_test.rb +14 -12
- data/test/vorbis_tag_test.rb +46 -44
- data/test/wav_examples_test.rb +8 -16
- data/test/wav_file_test.rb +29 -29
- data/test/wav_file_write_test.rb +22 -23
- metadata +24 -21
data/ext/taglib_base/extconf.rb
CHANGED
data/ext/taglib_base/includes.i
CHANGED
@@ -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);
|
@@ -78,6 +96,9 @@ namespace TagLib {
|
|
78
96
|
tmp = ruby_array_to_taglib_string_list($input);
|
79
97
|
$1 = &tmp;
|
80
98
|
}
|
99
|
+
%typemap(typecheck, precedence=SWIG_TYPECHECK_LIST) TagLib::StringList {
|
100
|
+
$1 = TYPE($input) == T_ARRAY ? 1 : 0;
|
101
|
+
}
|
81
102
|
%apply TagLib::StringList { TagLib::StringList &, const TagLib::StringList & };
|
82
103
|
|
83
104
|
%typemap(out) TagLib::FileName {
|