taglib-ruby 0.2.1 → 0.3.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 (53) hide show
  1. data/CHANGES.md +7 -0
  2. data/Gemfile +1 -2
  3. data/Gemfile.lock +9 -8
  4. data/README.md +22 -7
  5. data/Rakefile +9 -15
  6. data/docs/taglib/base.rb +31 -8
  7. data/docs/taglib/id3v1.rb +5 -0
  8. data/docs/taglib/mpeg.rb +8 -0
  9. data/docs/taglib/ogg.rb +77 -0
  10. data/docs/taglib/vorbis.rb +43 -0
  11. data/ext/taglib_base/includes.i +25 -1
  12. data/ext/taglib_base/taglib_base.i +46 -2
  13. data/ext/taglib_base/taglib_base_wrap.cxx +176 -185
  14. data/ext/taglib_id3v1/extconf.rb +4 -0
  15. data/ext/taglib_id3v1/taglib_id3v1.i +11 -0
  16. data/ext/taglib_id3v1/taglib_id3v1_wrap.cxx +3092 -0
  17. data/ext/taglib_id3v2/taglib_id3v2.i +0 -8
  18. data/ext/taglib_id3v2/taglib_id3v2_wrap.cxx +194 -248
  19. data/ext/taglib_mpeg/taglib_mpeg.i +16 -2
  20. data/ext/taglib_mpeg/taglib_mpeg_wrap.cxx +157 -149
  21. data/ext/taglib_ogg/extconf.rb +4 -0
  22. data/ext/taglib_ogg/taglib_ogg.i +36 -0
  23. data/ext/taglib_ogg/taglib_ogg_wrap.cxx +3613 -0
  24. data/ext/taglib_vorbis/extconf.rb +4 -0
  25. data/ext/taglib_vorbis/taglib_vorbis.i +48 -0
  26. data/ext/taglib_vorbis/taglib_vorbis_wrap.cxx +3056 -0
  27. data/ext/win.cmake +6 -0
  28. data/lib/taglib/id3v1.rb +1 -0
  29. data/lib/taglib/ogg.rb +1 -0
  30. data/lib/taglib/version.rb +2 -2
  31. data/lib/taglib/vorbis.rb +1 -0
  32. data/lib/taglib.rb +10 -0
  33. data/taglib-ruby.gemspec +35 -11
  34. data/tasks/ext.rake +79 -0
  35. data/tasks/swig.rake +43 -0
  36. data/test/data/Makefile +15 -0
  37. data/test/data/id3v1-create.cpp +31 -0
  38. data/test/data/id3v1.mp3 +0 -0
  39. data/test/data/vorbis-create.cpp +42 -0
  40. data/test/data/vorbis.oga +0 -0
  41. data/test/test_fileref_write.rb +38 -0
  42. data/test/test_id3v1_tag.rb +36 -0
  43. data/test/test_id3v2_frames.rb +5 -0
  44. data/test/test_id3v2_memory.rb +23 -0
  45. data/test/test_id3v2_relative_volume.rb +5 -0
  46. data/test/test_id3v2_tag.rb +5 -0
  47. data/test/test_id3v2_unicode.rb +5 -0
  48. data/test/test_id3v2_write.rb +6 -1
  49. data/test/test_mpeg_file.rb +18 -1
  50. data/test/test_vorbis_file.rb +44 -0
  51. data/test/test_vorbis_tag.rb +79 -0
  52. metadata +113 -137
  53. data/ext/Rakefile +0 -32
@@ -1,10 +1,8 @@
1
1
  %module "TagLib"
2
2
  %{
3
3
  #include <taglib/taglib.h>
4
- #include <taglib/tstring.h>
5
4
  #include <taglib/tbytevector.h>
6
5
  #include <taglib/tlist.h>
7
- #include <taglib/tfile.h>
8
6
  #include <taglib/fileref.h>
9
7
  #include <taglib/tag.h>
10
8
  %}
@@ -20,6 +18,8 @@ namespace TagLib {
20
18
  enum Type { Latin1 = 0, UTF16 = 1, UTF16BE = 2, UTF8 = 3, UTF16LE = 4 };
21
19
  };
22
20
 
21
+ class FileName;
22
+
23
23
  typedef wchar_t wchar;
24
24
  typedef unsigned char uchar;
25
25
  typedef unsigned int uint;
@@ -51,6 +51,7 @@ namespace TagLib {
51
51
  tmp = ruby_string_to_taglib_bytevector($input);
52
52
  $1 = &tmp;
53
53
  }
54
+ %typemap(typecheck) const TagLib::ByteVector & = char *;
54
55
 
55
56
  // String
56
57
  %typemap(out) TagLib::String {
@@ -62,6 +63,7 @@ namespace TagLib {
62
63
  tmp = ruby_string_to_taglib_string($input);
63
64
  $1 = &tmp;
64
65
  }
66
+ %typemap(typecheck) TagLib::String = char *;
65
67
  %apply TagLib::String { TagLib::String &, const TagLib::String & };
66
68
 
67
69
  // StringList
@@ -74,6 +76,15 @@ namespace TagLib {
74
76
  }
75
77
  %apply TagLib::StringList { TagLib::StringList &, const TagLib::StringList & };
76
78
 
79
+ %typemap(out) TagLib::FileName {
80
+ $result = taglib_filename_to_ruby_string($1);
81
+ }
82
+ %typemap(in) TagLib::FileName {
83
+ $1 = ruby_string_to_taglib_filename($input);
84
+ }
85
+ %typemap(typecheck) TagLib::FileName = char *;
86
+ %feature("valuewrapper") TagLib::FileName;
87
+
77
88
  %ignore TagLib::List::operator[];
78
89
  %ignore TagLib::List::operator=;
79
90
  %include <taglib/tlist.h>
@@ -82,6 +93,7 @@ namespace TagLib {
82
93
 
83
94
  %include <taglib/audioproperties.h>
84
95
 
96
+ %ignore TagLib::FileName;
85
97
  %include <taglib/tfile.h>
86
98
 
87
99
  %ignore TagLib::FileRef::operator=;
@@ -89,4 +101,36 @@ namespace TagLib {
89
101
  %warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) TagLib::FileRef::FileTypeResolver;
90
102
  %include <taglib/fileref.h>
91
103
 
104
+ %begin %{
105
+ static void free_taglib_fileref(void *ptr);
106
+ %}
107
+ %header %{
108
+ static void free_taglib_fileref(void *ptr) {
109
+ TagLib::FileRef *fileref = (TagLib::FileRef *) ptr;
110
+
111
+ TagLib::Tag *tag = fileref->tag();
112
+ if (tag) {
113
+ SWIG_RubyUnlinkObjects(tag);
114
+ SWIG_RubyRemoveTracking(tag);
115
+ }
116
+
117
+ TagLib::AudioProperties *properties = fileref->audioProperties();
118
+ if (properties) {
119
+ SWIG_RubyUnlinkObjects(properties);
120
+ SWIG_RubyRemoveTracking(properties);
121
+ }
122
+
123
+ SWIG_RubyUnlinkObjects(ptr);
124
+ SWIG_RubyRemoveTracking(ptr);
125
+
126
+ delete fileref;
127
+ }
128
+ %}
129
+
130
+ %extend TagLib::FileRef {
131
+ void close() {
132
+ free_taglib_fileref($self);
133
+ }
134
+ }
135
+
92
136
  // vim: set filetype=cpp sw=2 ts=2 expandtab:
@@ -1,6 +1,6 @@
1
1
  /* ----------------------------------------------------------------------------
2
2
  * This file was automatically generated by SWIG (http://www.swig.org).
3
- * Version 2.0.4
3
+ * Version 2.0.5
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
@@ -8,6 +8,9 @@
8
8
  * interface file instead.
9
9
  * ----------------------------------------------------------------------------- */
10
10
 
11
+ static void free_taglib_fileref(void *ptr);
12
+
13
+
11
14
  #define SWIGRUBY
12
15
 
13
16
 
@@ -1814,19 +1817,18 @@ int SWIG_Ruby_arity( VALUE proc, int minimal )
1814
1817
  /* -------- TYPES TABLE (BEGIN) -------- */
1815
1818
 
1816
1819
  #define SWIGTYPE_p_TagLib__AudioProperties swig_types[0]
1817
- #define SWIGTYPE_p_TagLib__ByteVector swig_types[1]
1818
- #define SWIGTYPE_p_TagLib__File swig_types[2]
1819
- #define SWIGTYPE_p_TagLib__FileRef swig_types[3]
1820
- #define SWIGTYPE_p_TagLib__FileRef__FileTypeResolver swig_types[4]
1821
- #define SWIGTYPE_p_TagLib__String swig_types[5]
1822
- #define SWIGTYPE_p_TagLib__Tag swig_types[6]
1823
- #define SWIGTYPE_p_char swig_types[7]
1824
- #define SWIGTYPE_p_unsigned_char swig_types[8]
1825
- #define SWIGTYPE_p_unsigned_int swig_types[9]
1826
- #define SWIGTYPE_p_unsigned_long swig_types[10]
1827
- #define SWIGTYPE_p_wchar_t swig_types[11]
1828
- static swig_type_info *swig_types[13];
1829
- static swig_module_info swig_module = {swig_types, 12, 0, 0, 0, 0};
1820
+ #define SWIGTYPE_p_TagLib__File swig_types[1]
1821
+ #define SWIGTYPE_p_TagLib__FileRef swig_types[2]
1822
+ #define SWIGTYPE_p_TagLib__FileRef__FileTypeResolver swig_types[3]
1823
+ #define SWIGTYPE_p_TagLib__String swig_types[4]
1824
+ #define SWIGTYPE_p_TagLib__Tag swig_types[5]
1825
+ #define SWIGTYPE_p_char swig_types[6]
1826
+ #define SWIGTYPE_p_unsigned_char swig_types[7]
1827
+ #define SWIGTYPE_p_unsigned_int swig_types[8]
1828
+ #define SWIGTYPE_p_unsigned_long swig_types[9]
1829
+ #define SWIGTYPE_p_wchar_t swig_types[10]
1830
+ static swig_type_info *swig_types[12];
1831
+ static swig_module_info swig_module = {swig_types, 11, 0, 0, 0, 0};
1830
1832
  #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
1831
1833
  #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
1832
1834
 
@@ -1841,7 +1843,7 @@ static VALUE mTagLib;
1841
1843
  #define SWIG_RUBY_THREAD_END_BLOCK
1842
1844
 
1843
1845
 
1844
- #define SWIGVERSION 0x020004
1846
+ #define SWIGVERSION 0x020005
1845
1847
  #define SWIG_VERSION SWIGVERSION
1846
1848
 
1847
1849
 
@@ -1853,14 +1855,16 @@ static VALUE mTagLib;
1853
1855
 
1854
1856
 
1855
1857
  #include <taglib/taglib.h>
1856
- #include <taglib/tstring.h>
1857
1858
  #include <taglib/tbytevector.h>
1858
1859
  #include <taglib/tlist.h>
1859
- #include <taglib/tfile.h>
1860
1860
  #include <taglib/fileref.h>
1861
1861
  #include <taglib/tag.h>
1862
1862
 
1863
1863
 
1864
+ #include <taglib/tstring.h>
1865
+ #include <taglib/tstringlist.h>
1866
+ #include <taglib/tfile.h>
1867
+
1864
1868
  #if defined(HAVE_RUBY_ENCODING_H) && HAVE_RUBY_ENCODING_H
1865
1869
  # include <ruby/encoding.h>
1866
1870
  # define ASSOCIATE_UTF8_ENCODING(value) rb_enc_associate(value, rb_utf8_encoding());
@@ -1915,6 +1919,25 @@ TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
1915
1919
  return result;
1916
1920
  }
1917
1921
 
1922
+ VALUE taglib_filename_to_ruby_string(TagLib::FileName filename) {
1923
+ #ifdef _WIN32
1924
+ const char *s = (const char *) filename;
1925
+ return rb_tainted_str_new2(s);
1926
+ #else
1927
+ return rb_tainted_str_new2(filename);
1928
+ #endif
1929
+ }
1930
+
1931
+ TagLib::FileName ruby_string_to_taglib_filename(VALUE s) {
1932
+ #ifdef _WIN32
1933
+ const char *filename = StringValuePtr(s);
1934
+ return TagLib::FileName(filename);
1935
+ #else
1936
+ return StringValuePtr(s);
1937
+ #endif
1938
+ }
1939
+
1940
+
1918
1941
 
1919
1942
  #include <limits.h>
1920
1943
  #if !defined(SWIG_NO_LLONG_MAX)
@@ -1950,6 +1973,60 @@ SWIG_From_unsigned_SS_int (unsigned int value)
1950
1973
  }
1951
1974
 
1952
1975
 
1976
+ SWIGINTERN swig_type_info*
1977
+ SWIG_pchar_descriptor(void)
1978
+ {
1979
+ static int init = 0;
1980
+ static swig_type_info* info = 0;
1981
+ if (!init) {
1982
+ info = SWIG_TypeQuery("_p_char");
1983
+ init = 1;
1984
+ }
1985
+ return info;
1986
+ }
1987
+
1988
+
1989
+ SWIGINTERN int
1990
+ SWIG_AsCharPtrAndSize(VALUE obj, char** cptr, size_t* psize, int *alloc)
1991
+ {
1992
+ if (TYPE(obj) == T_STRING) {
1993
+ #if defined(StringValuePtr)
1994
+ char *cstr = StringValuePtr(obj);
1995
+ #else
1996
+ char *cstr = STR2CSTR(obj);
1997
+ #endif
1998
+ size_t size = RSTRING_LEN(obj) + 1;
1999
+ if (cptr) {
2000
+ if (alloc) {
2001
+ if (*alloc == SWIG_NEWOBJ) {
2002
+ *cptr = reinterpret_cast< char* >(memcpy((new char[size]), cstr, sizeof(char)*(size)));
2003
+ } else {
2004
+ *cptr = cstr;
2005
+ *alloc = SWIG_OLDOBJ;
2006
+ }
2007
+ }
2008
+ }
2009
+ if (psize) *psize = size;
2010
+ return SWIG_OK;
2011
+ } else {
2012
+ swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
2013
+ if (pchar_descriptor) {
2014
+ void* vptr = 0;
2015
+ if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
2016
+ if (cptr) *cptr = (char *)vptr;
2017
+ if (psize) *psize = vptr ? (strlen((char*)vptr) + 1) : 0;
2018
+ if (alloc) *alloc = SWIG_OLDOBJ;
2019
+ return SWIG_OK;
2020
+ }
2021
+ }
2022
+ }
2023
+ return SWIG_TypeError;
2024
+ }
2025
+
2026
+
2027
+
2028
+
2029
+
1953
2030
  SWIGINTERN VALUE
1954
2031
  SWIG_ruby_failed(void)
1955
2032
  {
@@ -1957,7 +2034,7 @@ SWIG_ruby_failed(void)
1957
2034
  }
1958
2035
 
1959
2036
 
1960
- /*@SWIG:/usr/share/swig2.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2037
+ /*@SWIG:/usr/local/share/swig/2.0.5/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
1961
2038
  SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args)
1962
2039
  {
1963
2040
  VALUE obj = args[0];
@@ -2009,7 +2086,7 @@ SWIG_From_bool (bool value)
2009
2086
  }
2010
2087
 
2011
2088
 
2012
- /*@SWIG:/usr/share/swig2.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2089
+ /*@SWIG:/usr/local/share/swig/2.0.5/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2013
2090
  SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
2014
2091
  {
2015
2092
  VALUE obj = args[0];
@@ -2073,85 +2150,32 @@ SWIG_AsVal_bool (VALUE obj, bool *val)
2073
2150
  return SWIG_TypeError;
2074
2151
  }
2075
2152
 
2076
-
2077
- SWIGINTERN swig_type_info*
2078
- SWIG_pchar_descriptor(void)
2079
- {
2080
- static int init = 0;
2081
- static swig_type_info* info = 0;
2082
- if (!init) {
2083
- info = SWIG_TypeQuery("_p_char");
2084
- init = 1;
2153
+ SWIGINTERN void TagLib_FileRef_close(TagLib::FileRef *self){
2154
+ free_taglib_fileref(self);
2085
2155
  }
2086
- return info;
2087
- }
2088
2156
 
2157
+ static void free_taglib_fileref(void *ptr) {
2158
+ TagLib::FileRef *fileref = (TagLib::FileRef *) ptr;
2089
2159
 
2090
- SWIGINTERNINLINE VALUE
2091
- SWIG_FromCharPtrAndSize(const char* carray, size_t size)
2092
- {
2093
- if (carray) {
2094
- if (size > LONG_MAX) {
2095
- swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
2096
- return pchar_descriptor ?
2097
- SWIG_NewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : Qnil;
2098
- } else {
2099
- return rb_str_new(carray, static_cast< long >(size));
2160
+ TagLib::Tag *tag = fileref->tag();
2161
+ if (tag) {
2162
+ SWIG_RubyUnlinkObjects(tag);
2163
+ SWIG_RubyRemoveTracking(tag);
2100
2164
  }
2101
- } else {
2102
- return Qnil;
2103
- }
2104
- }
2105
-
2106
-
2107
- SWIGINTERNINLINE VALUE
2108
- SWIG_FromCharPtr(const char *cptr)
2109
- {
2110
- return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
2111
- }
2112
-
2113
2165
 
2114
- SWIGINTERN int
2115
- SWIG_AsCharPtrAndSize(VALUE obj, char** cptr, size_t* psize, int *alloc)
2116
- {
2117
- if (TYPE(obj) == T_STRING) {
2118
- #if defined(StringValuePtr)
2119
- char *cstr = StringValuePtr(obj);
2120
- #else
2121
- char *cstr = STR2CSTR(obj);
2122
- #endif
2123
- size_t size = RSTRING_LEN(obj) + 1;
2124
- if (cptr) {
2125
- if (alloc) {
2126
- if (*alloc == SWIG_NEWOBJ) {
2127
- *cptr = reinterpret_cast< char* >(memcpy((new char[size]), cstr, sizeof(char)*(size)));
2128
- } else {
2129
- *cptr = cstr;
2130
- *alloc = SWIG_OLDOBJ;
2131
- }
2132
- }
2133
- }
2134
- if (psize) *psize = size;
2135
- return SWIG_OK;
2136
- } else {
2137
- swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
2138
- if (pchar_descriptor) {
2139
- void* vptr = 0;
2140
- if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
2141
- if (cptr) *cptr = (char *)vptr;
2142
- if (psize) *psize = vptr ? (strlen((char*)vptr) + 1) : 0;
2143
- if (alloc) *alloc = SWIG_OLDOBJ;
2144
- return SWIG_OK;
2145
- }
2166
+ TagLib::AudioProperties *properties = fileref->audioProperties();
2167
+ if (properties) {
2168
+ SWIG_RubyUnlinkObjects(properties);
2169
+ SWIG_RubyRemoveTracking(properties);
2146
2170
  }
2147
- }
2148
- return SWIG_TypeError;
2149
- }
2150
-
2151
2171
 
2172
+ SWIG_RubyUnlinkObjects(ptr);
2173
+ SWIG_RubyRemoveTracking(ptr);
2152
2174
 
2175
+ delete fileref;
2176
+ }
2153
2177
 
2154
- swig_class SwigClassString;
2178
+ static swig_class SwigClassString;
2155
2179
 
2156
2180
  #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
2157
2181
  SWIGINTERN VALUE
@@ -2192,7 +2216,7 @@ free_TagLib_String(TagLib::String *arg1) {
2192
2216
  delete arg1;
2193
2217
  }
2194
2218
 
2195
- swig_class SwigClassTag;
2219
+ static swig_class SwigClassTag;
2196
2220
 
2197
2221
  SWIGINTERN void
2198
2222
  free_TagLib_Tag(TagLib::Tag *arg1) {
@@ -2715,7 +2739,7 @@ fail:
2715
2739
  }
2716
2740
 
2717
2741
 
2718
- swig_class SwigClassAudioProperties;
2742
+ static swig_class SwigClassAudioProperties;
2719
2743
 
2720
2744
  SWIGINTERN void
2721
2745
  free_TagLib_AudioProperties(TagLib::AudioProperties *arg1) {
@@ -2819,7 +2843,7 @@ fail:
2819
2843
  }
2820
2844
 
2821
2845
 
2822
- swig_class SwigClassFile;
2846
+ static swig_class SwigClassFile;
2823
2847
 
2824
2848
  SWIGINTERN void
2825
2849
  free_TagLib_File(TagLib::File *arg1) {
@@ -2832,7 +2856,7 @@ _wrap_File_name(int argc, VALUE *argv, VALUE self) {
2832
2856
  TagLib::File *arg1 = (TagLib::File *) 0 ;
2833
2857
  void *argp1 = 0 ;
2834
2858
  int res1 = 0 ;
2835
- TagLib::FileName result;
2859
+ SwigValueWrapper< TagLib::FileName > result;
2836
2860
  VALUE vresult = Qnil;
2837
2861
 
2838
2862
  if ((argc < 0) || (argc > 0)) {
@@ -2843,8 +2867,10 @@ _wrap_File_name(int argc, VALUE *argv, VALUE self) {
2843
2867
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::File const *","name", 1, self ));
2844
2868
  }
2845
2869
  arg1 = reinterpret_cast< TagLib::File * >(argp1);
2846
- result = (TagLib::FileName)((TagLib::File const *)arg1)->name();
2847
- vresult = SWIG_FromCharPtr((const char *)result);
2870
+ result = ((TagLib::File const *)arg1)->name();
2871
+ {
2872
+ vresult = taglib_filename_to_ruby_string(result);
2873
+ }
2848
2874
  return vresult;
2849
2875
  fail:
2850
2876
  return Qnil;
@@ -3124,8 +3150,7 @@ SWIGINTERN VALUE _wrap_File_find(int nargs, VALUE *args, VALUE self) {
3124
3150
  int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__File, 0);
3125
3151
  _v = SWIG_CheckState(res);
3126
3152
  if (_v) {
3127
- void *vptr = 0;
3128
- int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_TagLib__ByteVector, 0);
3153
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
3129
3154
  _v = SWIG_CheckState(res);
3130
3155
  if (_v) {
3131
3156
  return _wrap_File_find__SWIG_2(nargs, args, self);
@@ -3138,8 +3163,7 @@ SWIGINTERN VALUE _wrap_File_find(int nargs, VALUE *args, VALUE self) {
3138
3163
  int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__File, 0);
3139
3164
  _v = SWIG_CheckState(res);
3140
3165
  if (_v) {
3141
- void *vptr = 0;
3142
- int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_TagLib__ByteVector, 0);
3166
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
3143
3167
  _v = SWIG_CheckState(res);
3144
3168
  if (_v) {
3145
3169
  {
@@ -3158,8 +3182,7 @@ SWIGINTERN VALUE _wrap_File_find(int nargs, VALUE *args, VALUE self) {
3158
3182
  int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__File, 0);
3159
3183
  _v = SWIG_CheckState(res);
3160
3184
  if (_v) {
3161
- void *vptr = 0;
3162
- int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_TagLib__ByteVector, 0);
3185
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
3163
3186
  _v = SWIG_CheckState(res);
3164
3187
  if (_v) {
3165
3188
  {
@@ -3167,8 +3190,7 @@ SWIGINTERN VALUE _wrap_File_find(int nargs, VALUE *args, VALUE self) {
3167
3190
  _v = SWIG_CheckState(res);
3168
3191
  }
3169
3192
  if (_v) {
3170
- void *vptr = 0;
3171
- int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_TagLib__ByteVector, 0);
3193
+ int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
3172
3194
  _v = SWIG_CheckState(res);
3173
3195
  if (_v) {
3174
3196
  return _wrap_File_find__SWIG_0(nargs, args, self);
@@ -3317,8 +3339,7 @@ SWIGINTERN VALUE _wrap_File_rfind(int nargs, VALUE *args, VALUE self) {
3317
3339
  int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__File, 0);
3318
3340
  _v = SWIG_CheckState(res);
3319
3341
  if (_v) {
3320
- void *vptr = 0;
3321
- int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_TagLib__ByteVector, 0);
3342
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
3322
3343
  _v = SWIG_CheckState(res);
3323
3344
  if (_v) {
3324
3345
  return _wrap_File_rfind__SWIG_2(nargs, args, self);
@@ -3331,8 +3352,7 @@ SWIGINTERN VALUE _wrap_File_rfind(int nargs, VALUE *args, VALUE self) {
3331
3352
  int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__File, 0);
3332
3353
  _v = SWIG_CheckState(res);
3333
3354
  if (_v) {
3334
- void *vptr = 0;
3335
- int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_TagLib__ByteVector, 0);
3355
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
3336
3356
  _v = SWIG_CheckState(res);
3337
3357
  if (_v) {
3338
3358
  {
@@ -3351,8 +3371,7 @@ SWIGINTERN VALUE _wrap_File_rfind(int nargs, VALUE *args, VALUE self) {
3351
3371
  int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__File, 0);
3352
3372
  _v = SWIG_CheckState(res);
3353
3373
  if (_v) {
3354
- void *vptr = 0;
3355
- int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_TagLib__ByteVector, 0);
3374
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
3356
3375
  _v = SWIG_CheckState(res);
3357
3376
  if (_v) {
3358
3377
  {
@@ -3360,8 +3379,7 @@ SWIGINTERN VALUE _wrap_File_rfind(int nargs, VALUE *args, VALUE self) {
3360
3379
  _v = SWIG_CheckState(res);
3361
3380
  }
3362
3381
  if (_v) {
3363
- void *vptr = 0;
3364
- int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_TagLib__ByteVector, 0);
3382
+ int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
3365
3383
  _v = SWIG_CheckState(res);
3366
3384
  if (_v) {
3367
3385
  return _wrap_File_rfind__SWIG_0(nargs, args, self);
@@ -3514,8 +3532,7 @@ SWIGINTERN VALUE _wrap_File_insert(int nargs, VALUE *args, VALUE self) {
3514
3532
  int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__File, 0);
3515
3533
  _v = SWIG_CheckState(res);
3516
3534
  if (_v) {
3517
- void *vptr = 0;
3518
- int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_TagLib__ByteVector, 0);
3535
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
3519
3536
  _v = SWIG_CheckState(res);
3520
3537
  if (_v) {
3521
3538
  return _wrap_File_insert__SWIG_2(nargs, args, self);
@@ -3528,8 +3545,7 @@ SWIGINTERN VALUE _wrap_File_insert(int nargs, VALUE *args, VALUE self) {
3528
3545
  int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__File, 0);
3529
3546
  _v = SWIG_CheckState(res);
3530
3547
  if (_v) {
3531
- void *vptr = 0;
3532
- int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_TagLib__ByteVector, 0);
3548
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
3533
3549
  _v = SWIG_CheckState(res);
3534
3550
  if (_v) {
3535
3551
  {
@@ -3548,8 +3564,7 @@ SWIGINTERN VALUE _wrap_File_insert(int nargs, VALUE *args, VALUE self) {
3548
3564
  int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__File, 0);
3549
3565
  _v = SWIG_CheckState(res);
3550
3566
  if (_v) {
3551
- void *vptr = 0;
3552
- int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_TagLib__ByteVector, 0);
3567
+ int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
3553
3568
  _v = SWIG_CheckState(res);
3554
3569
  if (_v) {
3555
3570
  {
@@ -4051,7 +4066,7 @@ fail:
4051
4066
  }
4052
4067
 
4053
4068
 
4054
- swig_class SwigClassFileRef;
4069
+ static swig_class SwigClassFileRef;
4055
4070
 
4056
4071
  SWIGINTERN VALUE
4057
4072
  _wrap_new_FileRef__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -4071,12 +4086,9 @@ fail:
4071
4086
 
4072
4087
  SWIGINTERN VALUE
4073
4088
  _wrap_new_FileRef__SWIG_1(int argc, VALUE *argv, VALUE self) {
4074
- TagLib::FileName arg1 = (TagLib::FileName) 0 ;
4089
+ SwigValueWrapper< TagLib::FileName > arg1 ;
4075
4090
  bool arg2 ;
4076
4091
  TagLib::AudioProperties::ReadStyle arg3 ;
4077
- int res1 ;
4078
- char *buf1 = 0 ;
4079
- int alloc1 = 0 ;
4080
4092
  bool val2 ;
4081
4093
  int ecode2 = 0 ;
4082
4094
  int val3 ;
@@ -4086,11 +4098,9 @@ _wrap_new_FileRef__SWIG_1(int argc, VALUE *argv, VALUE self) {
4086
4098
  if ((argc < 3) || (argc > 3)) {
4087
4099
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
4088
4100
  }
4089
- res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
4090
- if (!SWIG_IsOK(res1)) {
4091
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::FileName","TagLib::FileRef", 1, argv[0] ));
4101
+ {
4102
+ arg1 = ruby_string_to_taglib_filename(argv[0]);
4092
4103
  }
4093
- arg1 = reinterpret_cast< TagLib::FileName >(buf1);
4094
4104
  ecode2 = SWIG_AsVal_bool(argv[1], &val2);
4095
4105
  if (!SWIG_IsOK(ecode2)) {
4096
4106
  SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool","TagLib::FileRef", 2, argv[1] ));
@@ -4104,21 +4114,16 @@ _wrap_new_FileRef__SWIG_1(int argc, VALUE *argv, VALUE self) {
4104
4114
  result = (TagLib::FileRef *)new TagLib::FileRef(arg1,arg2,arg3);
4105
4115
  DATA_PTR(self) = result;
4106
4116
  SWIG_RubyAddTracking(result, self);
4107
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
4108
4117
  return self;
4109
4118
  fail:
4110
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
4111
4119
  return Qnil;
4112
4120
  }
4113
4121
 
4114
4122
 
4115
4123
  SWIGINTERN VALUE
4116
4124
  _wrap_new_FileRef__SWIG_2(int argc, VALUE *argv, VALUE self) {
4117
- TagLib::FileName arg1 = (TagLib::FileName) 0 ;
4125
+ SwigValueWrapper< TagLib::FileName > arg1 ;
4118
4126
  bool arg2 ;
4119
- int res1 ;
4120
- char *buf1 = 0 ;
4121
- int alloc1 = 0 ;
4122
4127
  bool val2 ;
4123
4128
  int ecode2 = 0 ;
4124
4129
  TagLib::FileRef *result = 0 ;
@@ -4126,11 +4131,9 @@ _wrap_new_FileRef__SWIG_2(int argc, VALUE *argv, VALUE self) {
4126
4131
  if ((argc < 2) || (argc > 2)) {
4127
4132
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
4128
4133
  }
4129
- res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
4130
- if (!SWIG_IsOK(res1)) {
4131
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::FileName","TagLib::FileRef", 1, argv[0] ));
4134
+ {
4135
+ arg1 = ruby_string_to_taglib_filename(argv[0]);
4132
4136
  }
4133
- arg1 = reinterpret_cast< TagLib::FileName >(buf1);
4134
4137
  ecode2 = SWIG_AsVal_bool(argv[1], &val2);
4135
4138
  if (!SWIG_IsOK(ecode2)) {
4136
4139
  SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool","TagLib::FileRef", 2, argv[1] ));
@@ -4139,37 +4142,28 @@ _wrap_new_FileRef__SWIG_2(int argc, VALUE *argv, VALUE self) {
4139
4142
  result = (TagLib::FileRef *)new TagLib::FileRef(arg1,arg2);
4140
4143
  DATA_PTR(self) = result;
4141
4144
  SWIG_RubyAddTracking(result, self);
4142
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
4143
4145
  return self;
4144
4146
  fail:
4145
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
4146
4147
  return Qnil;
4147
4148
  }
4148
4149
 
4149
4150
 
4150
4151
  SWIGINTERN VALUE
4151
4152
  _wrap_new_FileRef__SWIG_3(int argc, VALUE *argv, VALUE self) {
4152
- TagLib::FileName arg1 = (TagLib::FileName) 0 ;
4153
- int res1 ;
4154
- char *buf1 = 0 ;
4155
- int alloc1 = 0 ;
4153
+ SwigValueWrapper< TagLib::FileName > arg1 ;
4156
4154
  TagLib::FileRef *result = 0 ;
4157
4155
 
4158
4156
  if ((argc < 1) || (argc > 1)) {
4159
4157
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
4160
4158
  }
4161
- res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
4162
- if (!SWIG_IsOK(res1)) {
4163
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::FileName","TagLib::FileRef", 1, argv[0] ));
4159
+ {
4160
+ arg1 = ruby_string_to_taglib_filename(argv[0]);
4164
4161
  }
4165
- arg1 = reinterpret_cast< TagLib::FileName >(buf1);
4166
4162
  result = (TagLib::FileRef *)new TagLib::FileRef(arg1);
4167
4163
  DATA_PTR(self) = result;
4168
4164
  SWIG_RubyAddTracking(result, self);
4169
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
4170
4165
  return self;
4171
4166
  fail:
4172
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
4173
4167
  return Qnil;
4174
4168
  }
4175
4169
 
@@ -4543,12 +4537,9 @@ fail:
4543
4537
 
4544
4538
  SWIGINTERN VALUE
4545
4539
  _wrap_FileRef_create__SWIG_0(int argc, VALUE *argv, VALUE self) {
4546
- TagLib::FileName arg1 = (TagLib::FileName) 0 ;
4540
+ SwigValueWrapper< TagLib::FileName > arg1 ;
4547
4541
  bool arg2 ;
4548
4542
  TagLib::AudioProperties::ReadStyle arg3 ;
4549
- int res1 ;
4550
- char *buf1 = 0 ;
4551
- int alloc1 = 0 ;
4552
4543
  bool val2 ;
4553
4544
  int ecode2 = 0 ;
4554
4545
  int val3 ;
@@ -4559,11 +4550,9 @@ _wrap_FileRef_create__SWIG_0(int argc, VALUE *argv, VALUE self) {
4559
4550
  if ((argc < 3) || (argc > 3)) {
4560
4551
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
4561
4552
  }
4562
- res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
4563
- if (!SWIG_IsOK(res1)) {
4564
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::FileName","TagLib::FileRef::create", 1, argv[0] ));
4553
+ {
4554
+ arg1 = ruby_string_to_taglib_filename(argv[0]);
4565
4555
  }
4566
- arg1 = reinterpret_cast< TagLib::FileName >(buf1);
4567
4556
  ecode2 = SWIG_AsVal_bool(argv[1], &val2);
4568
4557
  if (!SWIG_IsOK(ecode2)) {
4569
4558
  SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool","TagLib::FileRef::create", 2, argv[1] ));
@@ -4574,23 +4563,18 @@ _wrap_FileRef_create__SWIG_0(int argc, VALUE *argv, VALUE self) {
4574
4563
  SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "TagLib::AudioProperties::ReadStyle","TagLib::FileRef::create", 3, argv[2] ));
4575
4564
  }
4576
4565
  arg3 = static_cast< TagLib::AudioProperties::ReadStyle >(val3);
4577
- result = (TagLib::File *)TagLib::FileRef::create((char const *)arg1,arg2,arg3);
4566
+ result = (TagLib::File *)TagLib::FileRef::create(arg1,arg2,arg3);
4578
4567
  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TagLib__File, 0 | 0 );
4579
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
4580
4568
  return vresult;
4581
4569
  fail:
4582
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
4583
4570
  return Qnil;
4584
4571
  }
4585
4572
 
4586
4573
 
4587
4574
  SWIGINTERN VALUE
4588
4575
  _wrap_FileRef_create__SWIG_1(int argc, VALUE *argv, VALUE self) {
4589
- TagLib::FileName arg1 = (TagLib::FileName) 0 ;
4576
+ SwigValueWrapper< TagLib::FileName > arg1 ;
4590
4577
  bool arg2 ;
4591
- int res1 ;
4592
- char *buf1 = 0 ;
4593
- int alloc1 = 0 ;
4594
4578
  bool val2 ;
4595
4579
  int ecode2 = 0 ;
4596
4580
  TagLib::File *result = 0 ;
@@ -4599,49 +4583,38 @@ _wrap_FileRef_create__SWIG_1(int argc, VALUE *argv, VALUE self) {
4599
4583
  if ((argc < 2) || (argc > 2)) {
4600
4584
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
4601
4585
  }
4602
- res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
4603
- if (!SWIG_IsOK(res1)) {
4604
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::FileName","TagLib::FileRef::create", 1, argv[0] ));
4586
+ {
4587
+ arg1 = ruby_string_to_taglib_filename(argv[0]);
4605
4588
  }
4606
- arg1 = reinterpret_cast< TagLib::FileName >(buf1);
4607
4589
  ecode2 = SWIG_AsVal_bool(argv[1], &val2);
4608
4590
  if (!SWIG_IsOK(ecode2)) {
4609
4591
  SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool","TagLib::FileRef::create", 2, argv[1] ));
4610
4592
  }
4611
4593
  arg2 = static_cast< bool >(val2);
4612
- result = (TagLib::File *)TagLib::FileRef::create((char const *)arg1,arg2);
4594
+ result = (TagLib::File *)TagLib::FileRef::create(arg1,arg2);
4613
4595
  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TagLib__File, 0 | 0 );
4614
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
4615
4596
  return vresult;
4616
4597
  fail:
4617
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
4618
4598
  return Qnil;
4619
4599
  }
4620
4600
 
4621
4601
 
4622
4602
  SWIGINTERN VALUE
4623
4603
  _wrap_FileRef_create__SWIG_2(int argc, VALUE *argv, VALUE self) {
4624
- TagLib::FileName arg1 = (TagLib::FileName) 0 ;
4625
- int res1 ;
4626
- char *buf1 = 0 ;
4627
- int alloc1 = 0 ;
4604
+ SwigValueWrapper< TagLib::FileName > arg1 ;
4628
4605
  TagLib::File *result = 0 ;
4629
4606
  VALUE vresult = Qnil;
4630
4607
 
4631
4608
  if ((argc < 1) || (argc > 1)) {
4632
4609
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
4633
4610
  }
4634
- res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
4635
- if (!SWIG_IsOK(res1)) {
4636
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::FileName","TagLib::FileRef::create", 1, argv[0] ));
4611
+ {
4612
+ arg1 = ruby_string_to_taglib_filename(argv[0]);
4637
4613
  }
4638
- arg1 = reinterpret_cast< TagLib::FileName >(buf1);
4639
- result = (TagLib::File *)TagLib::FileRef::create((char const *)arg1);
4614
+ result = (TagLib::File *)TagLib::FileRef::create(arg1);
4640
4615
  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_TagLib__File, 0 | 0 );
4641
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
4642
4616
  return vresult;
4643
4617
  fail:
4644
- if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
4645
4618
  return Qnil;
4646
4619
  }
4647
4620
 
@@ -4709,11 +4682,31 @@ fail:
4709
4682
  }
4710
4683
 
4711
4684
 
4685
+ SWIGINTERN VALUE
4686
+ _wrap_FileRef_close(int argc, VALUE *argv, VALUE self) {
4687
+ TagLib::FileRef *arg1 = (TagLib::FileRef *) 0 ;
4688
+ void *argp1 = 0 ;
4689
+ int res1 = 0 ;
4690
+
4691
+ if ((argc < 0) || (argc > 0)) {
4692
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
4693
+ }
4694
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__FileRef, 0 | 0 );
4695
+ if (!SWIG_IsOK(res1)) {
4696
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::FileRef *","close", 1, self ));
4697
+ }
4698
+ arg1 = reinterpret_cast< TagLib::FileRef * >(argp1);
4699
+ TagLib_FileRef_close(arg1);
4700
+ return Qnil;
4701
+ fail:
4702
+ return Qnil;
4703
+ }
4704
+
4705
+
4712
4706
 
4713
4707
  /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
4714
4708
 
4715
4709
  static swig_type_info _swigt__p_TagLib__AudioProperties = {"_p_TagLib__AudioProperties", "TagLib::AudioProperties *", 0, 0, (void*)0, 0};
4716
- static swig_type_info _swigt__p_TagLib__ByteVector = {"_p_TagLib__ByteVector", "TagLib::ByteVector *", 0, 0, (void*)0, 0};
4717
4710
  static swig_type_info _swigt__p_TagLib__File = {"_p_TagLib__File", "TagLib::File *", 0, 0, (void*)0, 0};
4718
4711
  static swig_type_info _swigt__p_TagLib__FileRef = {"_p_TagLib__FileRef", "TagLib::FileRef *", 0, 0, (void*)0, 0};
4719
4712
  static swig_type_info _swigt__p_TagLib__FileRef__FileTypeResolver = {"_p_TagLib__FileRef__FileTypeResolver", "TagLib::FileRef::FileTypeResolver *", 0, 0, (void*)0, 0};
@@ -4727,7 +4720,6 @@ static swig_type_info _swigt__p_wchar_t = {"_p_wchar_t", "TagLib::wchar *|wchar_
4727
4720
 
4728
4721
  static swig_type_info *swig_type_initial[] = {
4729
4722
  &_swigt__p_TagLib__AudioProperties,
4730
- &_swigt__p_TagLib__ByteVector,
4731
4723
  &_swigt__p_TagLib__File,
4732
4724
  &_swigt__p_TagLib__FileRef,
4733
4725
  &_swigt__p_TagLib__FileRef__FileTypeResolver,
@@ -4741,7 +4733,6 @@ static swig_type_info *swig_type_initial[] = {
4741
4733
  };
4742
4734
 
4743
4735
  static swig_cast_info _swigc__p_TagLib__AudioProperties[] = { {&_swigt__p_TagLib__AudioProperties, 0, 0, 0},{0, 0, 0, 0}};
4744
- static swig_cast_info _swigc__p_TagLib__ByteVector[] = { {&_swigt__p_TagLib__ByteVector, 0, 0, 0},{0, 0, 0, 0}};
4745
4736
  static swig_cast_info _swigc__p_TagLib__File[] = { {&_swigt__p_TagLib__File, 0, 0, 0},{0, 0, 0, 0}};
4746
4737
  static swig_cast_info _swigc__p_TagLib__FileRef[] = { {&_swigt__p_TagLib__FileRef, 0, 0, 0},{0, 0, 0, 0}};
4747
4738
  static swig_cast_info _swigc__p_TagLib__FileRef__FileTypeResolver[] = { {&_swigt__p_TagLib__FileRef__FileTypeResolver, 0, 0, 0},{0, 0, 0, 0}};
@@ -4755,7 +4746,6 @@ static swig_cast_info _swigc__p_wchar_t[] = { {&_swigt__p_wchar_t, 0, 0, 0},{0,
4755
4746
 
4756
4747
  static swig_cast_info *swig_cast_initial[] = {
4757
4748
  _swigc__p_TagLib__AudioProperties,
4758
- _swigc__p_TagLib__ByteVector,
4759
4749
  _swigc__p_TagLib__File,
4760
4750
  _swigc__p_TagLib__FileRef,
4761
4751
  _swigc__p_TagLib__FileRef__FileTypeResolver,
@@ -5119,6 +5109,7 @@ SWIGEXPORT void Init_taglib_base(void) {
5119
5109
  rb_define_method(SwigClassFileRef.klass, "null?", VALUEFUNC(_wrap_FileRef_nullq___), -1);
5120
5110
  rb_define_method(SwigClassFileRef.klass, "==", VALUEFUNC(_wrap_FileRef___eq__), -1);
5121
5111
  rb_define_singleton_method(SwigClassFileRef.klass, "create", VALUEFUNC(_wrap_FileRef_create), -1);
5112
+ rb_define_method(SwigClassFileRef.klass, "close", VALUEFUNC(_wrap_FileRef_close), -1);
5122
5113
  SwigClassFileRef.mark = 0;
5123
5114
  SwigClassFileRef.destroy = (void (*)(void *)) free_TagLib_FileRef;
5124
5115
  SwigClassFileRef.trackObjects = 1;