taglib-ruby 0.5.0-x86-mingw32 → 0.5.1-x86-mingw32
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.
- data/CHANGES.md +6 -0
- data/docs/taglib/base.rb +9 -0
- data/docs/taglib/mpeg.rb +33 -0
- data/ext/extconf_common.rb +6 -2
- data/ext/taglib_base/includes.i +13 -2
- data/ext/taglib_base/taglib_base_wrap.cxx +17 -6
- data/ext/taglib_flac/taglib_flac_wrap.cxx +16 -5
- data/ext/taglib_id3v1/taglib_id3v1_wrap.cxx +17 -6
- data/ext/taglib_id3v2/taglib_id3v2_wrap.cxx +18 -7
- data/ext/taglib_mpeg/taglib_mpeg_wrap.cxx +16 -5
- data/ext/taglib_ogg/taglib_ogg_wrap.cxx +17 -6
- data/ext/taglib_vorbis/taglib_vorbis_wrap.cxx +16 -5
- data/lib/libtag.dll +0 -0
- data/lib/taglib/version.rb +1 -1
- data/lib/taglib_base.so +0 -0
- data/lib/taglib_flac.so +0 -0
- data/lib/taglib_id3v1.so +0 -0
- data/lib/taglib_id3v2.so +0 -0
- data/lib/taglib_mpeg.so +0 -0
- data/lib/taglib_ogg.so +0 -0
- data/lib/taglib_vorbis.so +0 -0
- data/tasks/ext.rake +5 -4
- data/test/id3v2_frames_test.rb +4 -0
- data/test/id3v2_write_test.rb +45 -0
- metadata +12 -12
data/CHANGES.md
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
Changes in Releases of taglib-ruby
|
2
2
|
==================================
|
3
3
|
|
4
|
+
## 0.5.1 (2012-06-16)
|
5
|
+
|
6
|
+
* Fix crashes (segfault) with nil arguments, e.g. with `tag.title = nil`
|
7
|
+
* Document TagLib::MPEG::File#save and TagLib::MPEG::File#strip (#11)
|
8
|
+
* Update TagLib of binary gem for Windows to 1.7.2
|
9
|
+
|
4
10
|
## 0.5.0 (2012-04-15)
|
5
11
|
|
6
12
|
* Add support for FLAC
|
data/docs/taglib/base.rb
CHANGED
@@ -116,6 +116,15 @@ module TagLib
|
|
116
116
|
|
117
117
|
# @abstract Base class for files, see subclasses.
|
118
118
|
class File
|
119
|
+
|
120
|
+
# Save the file and the associated tags.
|
121
|
+
#
|
122
|
+
# See subclasses, as some provide more control over what is saved.
|
123
|
+
#
|
124
|
+
# @return [Boolean] whether saving was successful
|
125
|
+
def save
|
126
|
+
end
|
127
|
+
|
119
128
|
# Closes the file and releases all objects that were read from the
|
120
129
|
# file (basically everything from the TagLib namespace).
|
121
130
|
#
|
data/docs/taglib/mpeg.rb
CHANGED
@@ -8,6 +8,12 @@ module TagLib::MPEG
|
|
8
8
|
# end
|
9
9
|
#
|
10
10
|
class File < TagLib::File
|
11
|
+
NoTags = 0x0000
|
12
|
+
ID3v1 = 0x0001
|
13
|
+
ID3v2 = 0x0002
|
14
|
+
APE = 0x0004
|
15
|
+
AllTags = 0xffff
|
16
|
+
|
11
17
|
# {include:TagLib::FileRef.open}
|
12
18
|
#
|
13
19
|
# @param (see #initialize)
|
@@ -55,6 +61,33 @@ module TagLib::MPEG
|
|
55
61
|
# @return [TagLib::MPEG::Properties]
|
56
62
|
def audio_properties
|
57
63
|
end
|
64
|
+
|
65
|
+
# Save the file and the associated tags.
|
66
|
+
#
|
67
|
+
# @param [Integer] tags
|
68
|
+
# The tag types to save (see constants), e.g.
|
69
|
+
# {TagLib::MPEG::File::ID3v2}. To specify more than one tag type,
|
70
|
+
# or them together using `|`, e.g.
|
71
|
+
# `TagLib::MPEG::File::ID3v1 | TagLib::MPEG::File::ID3v2`.
|
72
|
+
# @param [Boolean] strip_others
|
73
|
+
# true if tag types other than the specified ones should be
|
74
|
+
# stripped from the file
|
75
|
+
# @return [Boolean] whether saving was successful
|
76
|
+
def save(tags=TagLib::MPEG::File::AllTags, strip_others=true)
|
77
|
+
end
|
78
|
+
|
79
|
+
# Strip the specified tags from the file. Note that this directly
|
80
|
+
# updates the file, a call to save afterwards is not necessary
|
81
|
+
# (closing the file is necessary as always, though).
|
82
|
+
#
|
83
|
+
# @param [Integer] tags
|
84
|
+
# The tag types to strip (see constants), e.g.
|
85
|
+
# {TagLib::MPEG::File::ID3v2}. To specify more than one tag type,
|
86
|
+
# or them together using `|`, e.g.
|
87
|
+
# `TagLib::MPEG::File::ID3v1 | TagLib::MPEG::File::ID3v2`.
|
88
|
+
# @return [Boolean] whether stripping was successful
|
89
|
+
def strip(tags=TagLib::MPEG::File::AllTags)
|
90
|
+
end
|
58
91
|
end
|
59
92
|
|
60
93
|
# Audio properties for MPEG files.
|
data/ext/extconf_common.rb
CHANGED
@@ -11,8 +11,12 @@ end
|
|
11
11
|
|
12
12
|
dir_config('tag')
|
13
13
|
|
14
|
-
|
15
|
-
|
14
|
+
# When compiling statically, -lstdc++ would make the resulting .so to
|
15
|
+
# have a dependency on an external libstdc++ instead of the static one.
|
16
|
+
unless $LDFLAGS.split(" ").include?("-static-libstdc++")
|
17
|
+
if not have_library('stdc++')
|
18
|
+
error "You must have libstdc++ installed."
|
19
|
+
end
|
16
20
|
end
|
17
21
|
|
18
22
|
if not have_library('tag')
|
data/ext/taglib_base/includes.i
CHANGED
@@ -39,7 +39,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) {
|
|
39
39
|
}
|
40
40
|
|
41
41
|
TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
|
42
|
-
|
42
|
+
if (NIL_P(s)) {
|
43
|
+
return TagLib::ByteVector::null;
|
44
|
+
} else {
|
45
|
+
return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
|
46
|
+
}
|
43
47
|
}
|
44
48
|
|
45
49
|
VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
@@ -53,7 +57,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
|
53
57
|
}
|
54
58
|
|
55
59
|
TagLib::String ruby_string_to_taglib_string(VALUE s) {
|
56
|
-
|
60
|
+
if (NIL_P(s)) {
|
61
|
+
return TagLib::String::null;
|
62
|
+
} else {
|
63
|
+
return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
|
64
|
+
}
|
57
65
|
}
|
58
66
|
|
59
67
|
VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
@@ -67,6 +75,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
|
67
75
|
|
68
76
|
TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
|
69
77
|
TagLib::StringList result = TagLib::StringList();
|
78
|
+
if (NIL_P(ary)) {
|
79
|
+
return result;
|
80
|
+
}
|
70
81
|
for (long i = 0; i < RARRAY_LEN(ary); i++) {
|
71
82
|
VALUE e = RARRAY_PTR(ary)[i];
|
72
83
|
TagLib::String s = ruby_string_to_taglib_string(e);
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* ----------------------------------------------------------------------------
|
2
2
|
* This file was automatically generated by SWIG (http://www.swig.org).
|
3
|
-
* Version 2.0.
|
3
|
+
* Version 2.0.8
|
4
4
|
*
|
5
5
|
* This file is not intended to be easily readable and contains a number of
|
6
6
|
* coding conventions designed to improve portability and efficiency. Do not make
|
@@ -1843,7 +1843,7 @@ static VALUE mTagLib;
|
|
1843
1843
|
#define SWIG_RUBY_THREAD_END_BLOCK
|
1844
1844
|
|
1845
1845
|
|
1846
|
-
#define SWIGVERSION
|
1846
|
+
#define SWIGVERSION 0x020008
|
1847
1847
|
#define SWIG_VERSION SWIGVERSION
|
1848
1848
|
|
1849
1849
|
|
@@ -1883,7 +1883,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) {
|
|
1883
1883
|
}
|
1884
1884
|
|
1885
1885
|
TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
|
1886
|
-
|
1886
|
+
if (NIL_P(s)) {
|
1887
|
+
return TagLib::ByteVector::null;
|
1888
|
+
} else {
|
1889
|
+
return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
|
1890
|
+
}
|
1887
1891
|
}
|
1888
1892
|
|
1889
1893
|
VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
@@ -1897,7 +1901,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
|
1897
1901
|
}
|
1898
1902
|
|
1899
1903
|
TagLib::String ruby_string_to_taglib_string(VALUE s) {
|
1900
|
-
|
1904
|
+
if (NIL_P(s)) {
|
1905
|
+
return TagLib::String::null;
|
1906
|
+
} else {
|
1907
|
+
return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
|
1908
|
+
}
|
1901
1909
|
}
|
1902
1910
|
|
1903
1911
|
VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
@@ -1911,6 +1919,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
|
1911
1919
|
|
1912
1920
|
TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
|
1913
1921
|
TagLib::StringList result = TagLib::StringList();
|
1922
|
+
if (NIL_P(ary)) {
|
1923
|
+
return result;
|
1924
|
+
}
|
1914
1925
|
for (long i = 0; i < RARRAY_LEN(ary); i++) {
|
1915
1926
|
VALUE e = RARRAY_PTR(ary)[i];
|
1916
1927
|
TagLib::String s = ruby_string_to_taglib_string(e);
|
@@ -2052,7 +2063,7 @@ SWIG_ruby_failed(void)
|
|
2052
2063
|
}
|
2053
2064
|
|
2054
2065
|
|
2055
|
-
/*@SWIG:/usr/local/share/swig/2.0.
|
2066
|
+
/*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
2056
2067
|
SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args)
|
2057
2068
|
{
|
2058
2069
|
VALUE obj = args[0];
|
@@ -2104,7 +2115,7 @@ SWIG_From_bool (bool value)
|
|
2104
2115
|
}
|
2105
2116
|
|
2106
2117
|
|
2107
|
-
/*@SWIG:/usr/local/share/swig/2.0.
|
2118
|
+
/*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
2108
2119
|
SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
|
2109
2120
|
{
|
2110
2121
|
VALUE obj = args[0];
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* ----------------------------------------------------------------------------
|
2
2
|
* This file was automatically generated by SWIG (http://www.swig.org).
|
3
|
-
* Version 2.0.
|
3
|
+
* Version 2.0.8
|
4
4
|
*
|
5
5
|
* This file is not intended to be easily readable and contains a number of
|
6
6
|
* coding conventions designed to improve portability and efficiency. Do not make
|
@@ -1850,7 +1850,7 @@ static VALUE mFLAC;
|
|
1850
1850
|
#define SWIG_RUBY_THREAD_END_BLOCK
|
1851
1851
|
|
1852
1852
|
|
1853
|
-
#define SWIGVERSION
|
1853
|
+
#define SWIGVERSION 0x020008
|
1854
1854
|
#define SWIG_VERSION SWIGVERSION
|
1855
1855
|
|
1856
1856
|
|
@@ -1891,7 +1891,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) {
|
|
1891
1891
|
}
|
1892
1892
|
|
1893
1893
|
TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
|
1894
|
-
|
1894
|
+
if (NIL_P(s)) {
|
1895
|
+
return TagLib::ByteVector::null;
|
1896
|
+
} else {
|
1897
|
+
return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
|
1898
|
+
}
|
1895
1899
|
}
|
1896
1900
|
|
1897
1901
|
VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
@@ -1905,7 +1909,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
|
1905
1909
|
}
|
1906
1910
|
|
1907
1911
|
TagLib::String ruby_string_to_taglib_string(VALUE s) {
|
1908
|
-
|
1912
|
+
if (NIL_P(s)) {
|
1913
|
+
return TagLib::String::null;
|
1914
|
+
} else {
|
1915
|
+
return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
|
1916
|
+
}
|
1909
1917
|
}
|
1910
1918
|
|
1911
1919
|
VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
@@ -1919,6 +1927,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
|
1919
1927
|
|
1920
1928
|
TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
|
1921
1929
|
TagLib::StringList result = TagLib::StringList();
|
1930
|
+
if (NIL_P(ary)) {
|
1931
|
+
return result;
|
1932
|
+
}
|
1922
1933
|
for (long i = 0; i < RARRAY_LEN(ary); i++) {
|
1923
1934
|
VALUE e = RARRAY_PTR(ary)[i];
|
1924
1935
|
TagLib::String s = ruby_string_to_taglib_string(e);
|
@@ -1983,7 +1994,7 @@ SWIG_ruby_failed(void)
|
|
1983
1994
|
}
|
1984
1995
|
|
1985
1996
|
|
1986
|
-
/*@SWIG:/usr/local/share/swig/2.0.
|
1997
|
+
/*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
1987
1998
|
SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
|
1988
1999
|
{
|
1989
2000
|
VALUE obj = args[0];
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* ----------------------------------------------------------------------------
|
2
2
|
* This file was automatically generated by SWIG (http://www.swig.org).
|
3
|
-
* Version 2.0.
|
3
|
+
* Version 2.0.8
|
4
4
|
*
|
5
5
|
* This file is not intended to be easily readable and contains a number of
|
6
6
|
* coding conventions designed to improve portability and efficiency. Do not make
|
@@ -1838,7 +1838,7 @@ static VALUE mID3v1;
|
|
1838
1838
|
#define SWIG_RUBY_THREAD_END_BLOCK
|
1839
1839
|
|
1840
1840
|
|
1841
|
-
#define SWIGVERSION
|
1841
|
+
#define SWIGVERSION 0x020008
|
1842
1842
|
#define SWIG_VERSION SWIGVERSION
|
1843
1843
|
|
1844
1844
|
|
@@ -1874,7 +1874,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) {
|
|
1874
1874
|
}
|
1875
1875
|
|
1876
1876
|
TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
|
1877
|
-
|
1877
|
+
if (NIL_P(s)) {
|
1878
|
+
return TagLib::ByteVector::null;
|
1879
|
+
} else {
|
1880
|
+
return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
|
1881
|
+
}
|
1878
1882
|
}
|
1879
1883
|
|
1880
1884
|
VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
@@ -1888,7 +1892,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
|
1888
1892
|
}
|
1889
1893
|
|
1890
1894
|
TagLib::String ruby_string_to_taglib_string(VALUE s) {
|
1891
|
-
|
1895
|
+
if (NIL_P(s)) {
|
1896
|
+
return TagLib::String::null;
|
1897
|
+
} else {
|
1898
|
+
return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
|
1899
|
+
}
|
1892
1900
|
}
|
1893
1901
|
|
1894
1902
|
VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
@@ -1902,6 +1910,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
|
1902
1910
|
|
1903
1911
|
TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
|
1904
1912
|
TagLib::StringList result = TagLib::StringList();
|
1913
|
+
if (NIL_P(ary)) {
|
1914
|
+
return result;
|
1915
|
+
}
|
1905
1916
|
for (long i = 0; i < RARRAY_LEN(ary); i++) {
|
1906
1917
|
VALUE e = RARRAY_PTR(ary)[i];
|
1907
1918
|
TagLib::String s = ruby_string_to_taglib_string(e);
|
@@ -2009,7 +2020,7 @@ SWIG_ruby_failed(void)
|
|
2009
2020
|
}
|
2010
2021
|
|
2011
2022
|
|
2012
|
-
/*@SWIG:/usr/local/share/swig/2.0.
|
2023
|
+
/*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
2013
2024
|
SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
|
2014
2025
|
{
|
2015
2026
|
VALUE obj = args[0];
|
@@ -2065,7 +2076,7 @@ SWIG_From_unsigned_SS_int (unsigned int value)
|
|
2065
2076
|
}
|
2066
2077
|
|
2067
2078
|
|
2068
|
-
/*@SWIG:/usr/local/share/swig/2.0.
|
2079
|
+
/*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
2069
2080
|
SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args)
|
2070
2081
|
{
|
2071
2082
|
VALUE obj = args[0];
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* ----------------------------------------------------------------------------
|
2
2
|
* This file was automatically generated by SWIG (http://www.swig.org).
|
3
|
-
* Version 2.0.
|
3
|
+
* Version 2.0.8
|
4
4
|
*
|
5
5
|
* This file is not intended to be easily readable and contains a number of
|
6
6
|
* coding conventions designed to improve portability and efficiency. Do not make
|
@@ -1861,7 +1861,7 @@ static VALUE mID3v2;
|
|
1861
1861
|
#define SWIG_RUBY_THREAD_END_BLOCK
|
1862
1862
|
|
1863
1863
|
|
1864
|
-
#define SWIGVERSION
|
1864
|
+
#define SWIGVERSION 0x020008
|
1865
1865
|
#define SWIG_VERSION SWIGVERSION
|
1866
1866
|
|
1867
1867
|
|
@@ -1911,7 +1911,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) {
|
|
1911
1911
|
}
|
1912
1912
|
|
1913
1913
|
TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
|
1914
|
-
|
1914
|
+
if (NIL_P(s)) {
|
1915
|
+
return TagLib::ByteVector::null;
|
1916
|
+
} else {
|
1917
|
+
return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
|
1918
|
+
}
|
1915
1919
|
}
|
1916
1920
|
|
1917
1921
|
VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
@@ -1925,7 +1929,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
|
1925
1929
|
}
|
1926
1930
|
|
1927
1931
|
TagLib::String ruby_string_to_taglib_string(VALUE s) {
|
1928
|
-
|
1932
|
+
if (NIL_P(s)) {
|
1933
|
+
return TagLib::String::null;
|
1934
|
+
} else {
|
1935
|
+
return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
|
1936
|
+
}
|
1929
1937
|
}
|
1930
1938
|
|
1931
1939
|
VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
@@ -1939,6 +1947,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
|
1939
1947
|
|
1940
1948
|
TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
|
1941
1949
|
TagLib::StringList result = TagLib::StringList();
|
1950
|
+
if (NIL_P(ary)) {
|
1951
|
+
return result;
|
1952
|
+
}
|
1942
1953
|
for (long i = 0; i < RARRAY_LEN(ary); i++) {
|
1943
1954
|
VALUE e = RARRAY_PTR(ary)[i];
|
1944
1955
|
TagLib::String s = ruby_string_to_taglib_string(e);
|
@@ -2062,7 +2073,7 @@ SWIG_ruby_failed(void)
|
|
2062
2073
|
}
|
2063
2074
|
|
2064
2075
|
|
2065
|
-
/*@SWIG:/usr/local/share/swig/2.0.
|
2076
|
+
/*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
2066
2077
|
SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args)
|
2067
2078
|
{
|
2068
2079
|
VALUE obj = args[0];
|
@@ -2161,7 +2172,7 @@ SWIG_AsCharPtrAndSize(VALUE obj, char** cptr, size_t* psize, int *alloc)
|
|
2161
2172
|
|
2162
2173
|
|
2163
2174
|
|
2164
|
-
/*@SWIG:/usr/local/share/swig/2.0.
|
2175
|
+
/*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
2165
2176
|
SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
|
2166
2177
|
{
|
2167
2178
|
VALUE obj = args[0];
|
@@ -2306,7 +2317,7 @@ SWIG_From_float (float value)
|
|
2306
2317
|
#include <float.h>
|
2307
2318
|
|
2308
2319
|
|
2309
|
-
/*@SWIG:/usr/local/share/swig/2.0.
|
2320
|
+
/*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
2310
2321
|
SWIGINTERN VALUE SWIG_AUX_NUM2DBL(VALUE *args)
|
2311
2322
|
{
|
2312
2323
|
VALUE obj = args[0];
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* ----------------------------------------------------------------------------
|
2
2
|
* This file was automatically generated by SWIG (http://www.swig.org).
|
3
|
-
* Version 2.0.
|
3
|
+
* Version 2.0.8
|
4
4
|
*
|
5
5
|
* This file is not intended to be easily readable and contains a number of
|
6
6
|
* coding conventions designed to improve portability and efficiency. Do not make
|
@@ -1848,7 +1848,7 @@ static VALUE mMPEG;
|
|
1848
1848
|
#define SWIG_RUBY_THREAD_END_BLOCK
|
1849
1849
|
|
1850
1850
|
|
1851
|
-
#define SWIGVERSION
|
1851
|
+
#define SWIGVERSION 0x020008
|
1852
1852
|
#define SWIG_VERSION SWIGVERSION
|
1853
1853
|
|
1854
1854
|
|
@@ -1889,7 +1889,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) {
|
|
1889
1889
|
}
|
1890
1890
|
|
1891
1891
|
TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
|
1892
|
-
|
1892
|
+
if (NIL_P(s)) {
|
1893
|
+
return TagLib::ByteVector::null;
|
1894
|
+
} else {
|
1895
|
+
return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
|
1896
|
+
}
|
1893
1897
|
}
|
1894
1898
|
|
1895
1899
|
VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
@@ -1903,7 +1907,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
|
1903
1907
|
}
|
1904
1908
|
|
1905
1909
|
TagLib::String ruby_string_to_taglib_string(VALUE s) {
|
1906
|
-
|
1910
|
+
if (NIL_P(s)) {
|
1911
|
+
return TagLib::String::null;
|
1912
|
+
} else {
|
1913
|
+
return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
|
1914
|
+
}
|
1907
1915
|
}
|
1908
1916
|
|
1909
1917
|
VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
@@ -1917,6 +1925,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
|
1917
1925
|
|
1918
1926
|
TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
|
1919
1927
|
TagLib::StringList result = TagLib::StringList();
|
1928
|
+
if (NIL_P(ary)) {
|
1929
|
+
return result;
|
1930
|
+
}
|
1920
1931
|
for (long i = 0; i < RARRAY_LEN(ary); i++) {
|
1921
1932
|
VALUE e = RARRAY_PTR(ary)[i];
|
1922
1933
|
TagLib::String s = ruby_string_to_taglib_string(e);
|
@@ -2058,7 +2069,7 @@ SWIG_ruby_failed(void)
|
|
2058
2069
|
}
|
2059
2070
|
|
2060
2071
|
|
2061
|
-
/*@SWIG:/usr/local/share/swig/2.0.
|
2072
|
+
/*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
2062
2073
|
SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
|
2063
2074
|
{
|
2064
2075
|
VALUE obj = args[0];
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* ----------------------------------------------------------------------------
|
2
2
|
* This file was automatically generated by SWIG (http://www.swig.org).
|
3
|
-
* Version 2.0.
|
3
|
+
* Version 2.0.8
|
4
4
|
*
|
5
5
|
* This file is not intended to be easily readable and contains a number of
|
6
6
|
* coding conventions designed to improve portability and efficiency. Do not make
|
@@ -1840,7 +1840,7 @@ static VALUE mOgg;
|
|
1840
1840
|
#define SWIG_RUBY_THREAD_END_BLOCK
|
1841
1841
|
|
1842
1842
|
|
1843
|
-
#define SWIGVERSION
|
1843
|
+
#define SWIGVERSION 0x020008
|
1844
1844
|
#define SWIG_VERSION SWIGVERSION
|
1845
1845
|
|
1846
1846
|
|
@@ -1878,7 +1878,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) {
|
|
1878
1878
|
}
|
1879
1879
|
|
1880
1880
|
TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
|
1881
|
-
|
1881
|
+
if (NIL_P(s)) {
|
1882
|
+
return TagLib::ByteVector::null;
|
1883
|
+
} else {
|
1884
|
+
return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
|
1885
|
+
}
|
1882
1886
|
}
|
1883
1887
|
|
1884
1888
|
VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
@@ -1892,7 +1896,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
|
1892
1896
|
}
|
1893
1897
|
|
1894
1898
|
TagLib::String ruby_string_to_taglib_string(VALUE s) {
|
1895
|
-
|
1899
|
+
if (NIL_P(s)) {
|
1900
|
+
return TagLib::String::null;
|
1901
|
+
} else {
|
1902
|
+
return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
|
1903
|
+
}
|
1896
1904
|
}
|
1897
1905
|
|
1898
1906
|
VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
@@ -1906,6 +1914,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
|
1906
1914
|
|
1907
1915
|
TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
|
1908
1916
|
TagLib::StringList result = TagLib::StringList();
|
1917
|
+
if (NIL_P(ary)) {
|
1918
|
+
return result;
|
1919
|
+
}
|
1909
1920
|
for (long i = 0; i < RARRAY_LEN(ary); i++) {
|
1910
1921
|
VALUE e = RARRAY_PTR(ary)[i];
|
1911
1922
|
TagLib::String s = ruby_string_to_taglib_string(e);
|
@@ -1969,7 +1980,7 @@ SWIG_ruby_failed(void)
|
|
1969
1980
|
}
|
1970
1981
|
|
1971
1982
|
|
1972
|
-
/*@SWIG:/usr/local/share/swig/2.0.
|
1983
|
+
/*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
1973
1984
|
SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args)
|
1974
1985
|
{
|
1975
1986
|
VALUE obj = args[0];
|
@@ -2092,7 +2103,7 @@ SWIG_From_unsigned_SS_int (unsigned int value)
|
|
2092
2103
|
}
|
2093
2104
|
|
2094
2105
|
|
2095
|
-
/*@SWIG:/usr/local/share/swig/2.0.
|
2106
|
+
/*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
2096
2107
|
SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
|
2097
2108
|
{
|
2098
2109
|
VALUE obj = args[0];
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* ----------------------------------------------------------------------------
|
2
2
|
* This file was automatically generated by SWIG (http://www.swig.org).
|
3
|
-
* Version 2.0.
|
3
|
+
* Version 2.0.8
|
4
4
|
*
|
5
5
|
* This file is not intended to be easily readable and contains a number of
|
6
6
|
* coding conventions designed to improve portability and efficiency. Do not make
|
@@ -1844,7 +1844,7 @@ static VALUE mVorbis;
|
|
1844
1844
|
#define SWIG_RUBY_THREAD_END_BLOCK
|
1845
1845
|
|
1846
1846
|
|
1847
|
-
#define SWIGVERSION
|
1847
|
+
#define SWIGVERSION 0x020008
|
1848
1848
|
#define SWIG_VERSION SWIGVERSION
|
1849
1849
|
|
1850
1850
|
|
@@ -1882,7 +1882,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) {
|
|
1882
1882
|
}
|
1883
1883
|
|
1884
1884
|
TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
|
1885
|
-
|
1885
|
+
if (NIL_P(s)) {
|
1886
|
+
return TagLib::ByteVector::null;
|
1887
|
+
} else {
|
1888
|
+
return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
|
1889
|
+
}
|
1886
1890
|
}
|
1887
1891
|
|
1888
1892
|
VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
@@ -1896,7 +1900,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
|
1896
1900
|
}
|
1897
1901
|
|
1898
1902
|
TagLib::String ruby_string_to_taglib_string(VALUE s) {
|
1899
|
-
|
1903
|
+
if (NIL_P(s)) {
|
1904
|
+
return TagLib::String::null;
|
1905
|
+
} else {
|
1906
|
+
return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
|
1907
|
+
}
|
1900
1908
|
}
|
1901
1909
|
|
1902
1910
|
VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
@@ -1910,6 +1918,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
|
|
1910
1918
|
|
1911
1919
|
TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
|
1912
1920
|
TagLib::StringList result = TagLib::StringList();
|
1921
|
+
if (NIL_P(ary)) {
|
1922
|
+
return result;
|
1923
|
+
}
|
1913
1924
|
for (long i = 0; i < RARRAY_LEN(ary); i++) {
|
1914
1925
|
VALUE e = RARRAY_PTR(ary)[i];
|
1915
1926
|
TagLib::String s = ruby_string_to_taglib_string(e);
|
@@ -1973,7 +1984,7 @@ SWIG_ruby_failed(void)
|
|
1973
1984
|
}
|
1974
1985
|
|
1975
1986
|
|
1976
|
-
/*@SWIG:/usr/local/share/swig/2.0.
|
1987
|
+
/*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
1977
1988
|
SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
|
1978
1989
|
{
|
1979
1990
|
VALUE obj = args[0];
|
data/lib/libtag.dll
CHANGED
Binary file
|
data/lib/taglib/version.rb
CHANGED
data/lib/taglib_base.so
CHANGED
Binary file
|
data/lib/taglib_flac.so
CHANGED
Binary file
|
data/lib/taglib_id3v1.so
CHANGED
Binary file
|
data/lib/taglib_id3v2.so
CHANGED
Binary file
|
data/lib/taglib_mpeg.so
CHANGED
Binary file
|
data/lib/taglib_ogg.so
CHANGED
Binary file
|
data/lib/taglib_vorbis.so
CHANGED
Binary file
|
data/tasks/ext.rake
CHANGED
@@ -7,9 +7,10 @@ tmp = "#{Dir.pwd}/tmp/#{plat}"
|
|
7
7
|
toolchain_file = "#{Dir.pwd}/ext/win.cmake"
|
8
8
|
install_dir = "#{tmp}/install"
|
9
9
|
install_dll = "#{install_dir}/bin/libtag.dll"
|
10
|
-
|
10
|
+
ldflags = "-static-libgcc -static-libstdc++"
|
11
|
+
$cross_config_options = [%(--with-opt-dir=#{install_dir} --with-ldflags="#{ldflags}")]
|
11
12
|
|
12
|
-
taglib_version = '1.7.
|
13
|
+
taglib_version = '1.7.2'
|
13
14
|
taglib = "taglib-#{taglib_version}"
|
14
15
|
taglib_url = "http://cloud.github.com/downloads/taglib/taglib/#{taglib}.tar.gz"
|
15
16
|
# WITH_MP4, WITH_ASF only needed with taglib 1.7, will be default in 1.8
|
@@ -57,8 +58,8 @@ task :taglib => [install_dll]
|
|
57
58
|
|
58
59
|
file install_dll => ["#{tmp}/#{taglib}"] do
|
59
60
|
chdir "#{tmp}/#{taglib}" do
|
60
|
-
sh
|
61
|
-
sh "make"
|
61
|
+
sh %(cmake -DCMAKE_INSTALL_PREFIX=#{install_dir} -DCMAKE_TOOLCHAIN_FILE=#{toolchain_file} -DCMAKE_SHARED_LINKER_FLAGS="#{ldflags}" #{taglib_options})
|
62
|
+
sh "make VERBOSE=1"
|
62
63
|
sh "make install"
|
63
64
|
end
|
64
65
|
end
|
data/test/id3v2_frames_test.rb
CHANGED
@@ -41,6 +41,10 @@ class TestID3v2Frames < Test::Unit::TestCase
|
|
41
41
|
assert_equal TagLib::ID3v2::UserTextIdentificationFrame, txxx.class
|
42
42
|
end
|
43
43
|
|
44
|
+
should "not fail for nil String" do
|
45
|
+
assert_equal [], @tag.frame_list(nil)
|
46
|
+
end
|
47
|
+
|
44
48
|
should "be removable" do
|
45
49
|
assert_equal 11, @tag.frame_list.size
|
46
50
|
tit2 = @tag.frame_list('TIT2').first
|
data/test/id3v2_write_test.rb
CHANGED
@@ -8,6 +8,12 @@ class TestID3v2Write < Test::Unit::TestCase
|
|
8
8
|
OUTPUT_FILE = "test/data/output.mp3"
|
9
9
|
PICTURE_FILE = "test/data/globe_east_540.jpg"
|
10
10
|
|
11
|
+
def reloaded
|
12
|
+
TagLib::MPEG::File.open(OUTPUT_FILE, false) do |file|
|
13
|
+
yield file
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
11
17
|
context "TagLib::MPEG::File" do
|
12
18
|
setup do
|
13
19
|
FileUtils.cp SAMPLE_FILE, OUTPUT_FILE
|
@@ -19,6 +25,39 @@ class TestID3v2Write < Test::Unit::TestCase
|
|
19
25
|
success = @file.strip
|
20
26
|
assert success
|
21
27
|
assert_nil @file.id3v2_tag
|
28
|
+
@file.close
|
29
|
+
@file = nil
|
30
|
+
|
31
|
+
reloaded do |file|
|
32
|
+
assert_equal true, file.id3v1_tag.empty?
|
33
|
+
assert_equal true, file.id3v2_tag.empty?
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
should "be able to save only ID3v2 tag" do
|
38
|
+
assert_not_nil @file.id3v2_tag
|
39
|
+
assert_not_nil @file.id3v1_tag
|
40
|
+
@file.save(TagLib::MPEG::File::ID3v2)
|
41
|
+
@file.close
|
42
|
+
@file = nil
|
43
|
+
|
44
|
+
reloaded do |file|
|
45
|
+
id3v1_tag = file.id3v1_tag
|
46
|
+
id3v2_tag = file.id3v2_tag
|
47
|
+
|
48
|
+
# TagLib always creates the tags
|
49
|
+
assert_not_nil id3v1_tag
|
50
|
+
assert_not_nil id3v2_tag
|
51
|
+
|
52
|
+
assert_equal true, file.id3v1_tag.empty?
|
53
|
+
assert_equal false, file.id3v2_tag.empty?
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
should "be able to set fields to nil" do
|
58
|
+
tag = @file.id3v2_tag
|
59
|
+
tag.title = nil
|
60
|
+
assert_equal [], tag.frame_list('TIT2')
|
22
61
|
end
|
23
62
|
|
24
63
|
context "with a fresh tag" do
|
@@ -72,6 +111,12 @@ class TestID3v2Write < Test::Unit::TestCase
|
|
72
111
|
assert success
|
73
112
|
end
|
74
113
|
|
114
|
+
should "not fail when field_list is nil" do
|
115
|
+
tit2 = TagLib::ID3v2::TextIdentificationFrame.new("TIT2", TagLib::String::UTF8)
|
116
|
+
tit2.field_list = nil
|
117
|
+
assert_equal [], tit2.field_list
|
118
|
+
end
|
119
|
+
|
75
120
|
if HAVE_ENCODING
|
76
121
|
should "be able to set unicode fields" do
|
77
122
|
# Hello, Unicode Snowman (not in Latin1)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: taglib-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
prerelease:
|
6
6
|
platform: x86-mingw32
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-06-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
|
-
requirement: &
|
16
|
+
requirement: &20593060 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.1.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *20593060
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake-compiler
|
27
|
-
requirement: &
|
27
|
+
requirement: &20592500 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0.8'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *20592500
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: shoulda-context
|
38
|
-
requirement: &
|
38
|
+
requirement: &20592000 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '1.0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *20592000
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: yard
|
49
|
-
requirement: &
|
49
|
+
requirement: &20591280 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0.7'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *20591280
|
58
58
|
description: ! 'Ruby interface for the taglib C++ library, for reading and writing
|
59
59
|
|
60
60
|
meta-data (tags) of many audio formats.
|
@@ -183,7 +183,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
183
183
|
version: '0'
|
184
184
|
segments:
|
185
185
|
- 0
|
186
|
-
hash: -
|
186
|
+
hash: -2354278842585131059
|
187
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
188
188
|
none: false
|
189
189
|
requirements:
|
@@ -192,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
192
192
|
version: '0'
|
193
193
|
segments:
|
194
194
|
- 0
|
195
|
-
hash: -
|
195
|
+
hash: -2354278842585131059
|
196
196
|
requirements:
|
197
197
|
- taglib (libtag1-dev in Debian/Ubuntu, taglib-devel in Fedora/RHEL)
|
198
198
|
rubyforge_project:
|