taglib-ruby 0.5.2-x86-mingw32 → 0.6.0-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/.yardopts +1 -1
 - data/CHANGES.md +11 -0
 - data/LICENSE.txt +0 -2
 - data/README.md +7 -9
 - data/docs/taglib/base.rb +35 -7
 - data/docs/taglib/id3v2.rb +37 -5
 - data/docs/taglib/mp4.rb +267 -0
 - data/docs/taglib/mpeg.rb +23 -8
 - data/ext/taglib_base/includes.i +2 -2
 - data/ext/taglib_base/taglib_base.i +3 -0
 - data/ext/taglib_base/taglib_base_wrap.cxx +11 -12
 - data/ext/taglib_flac/extconf.rb +4 -0
 - data/ext/taglib_flac/taglib_flac_wrap.cxx +21 -25
 - data/ext/taglib_id3v1/taglib_id3v1_wrap.cxx +4 -8
 - data/ext/taglib_id3v2/taglib_id3v2.i +3 -0
 - data/ext/taglib_id3v2/taglib_id3v2_wrap.cxx +528 -69
 - data/ext/taglib_mp4/extconf.rb +4 -0
 - data/ext/taglib_mp4/taglib_mp4.i +225 -0
 - data/ext/taglib_mp4/taglib_mp4_wrap.cxx +4830 -0
 - data/ext/taglib_mpeg/taglib_mpeg.i +15 -0
 - data/ext/taglib_mpeg/taglib_mpeg_wrap.cxx +174 -88
 - data/ext/taglib_ogg/taglib_ogg_wrap.cxx +2 -6
 - data/ext/taglib_vorbis/taglib_vorbis_wrap.cxx +8 -12
 - data/lib/libtag.dll +0 -0
 - data/lib/taglib.rb +1 -0
 - data/lib/taglib/mp4.rb +33 -0
 - data/lib/taglib/version.rb +2 -2
 - 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_mp4.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/taglib-ruby.gemspec +19 -3
 - data/tasks/ext.rake +3 -0
 - data/tasks/swig.rake +6 -1
 - data/test/base_test.rb +11 -0
 - data/test/data/Makefile +5 -2
 - data/test/data/flac-create.cpp +2 -22
 - data/test/data/get_picture_data.cpp +22 -0
 - data/test/data/mp4-create.cpp +38 -0
 - data/test/data/mp4.m4a +0 -0
 - data/test/fileref_write_test.rb +9 -0
 - data/test/flac_file_test.rb +2 -1
 - data/test/id3v2_header_test.rb +61 -0
 - data/test/id3v2_write_test.rb +17 -0
 - data/test/mp4_file_test.rb +51 -0
 - data/test/mp4_file_write_test.rb +66 -0
 - data/test/mp4_items_test.rb +183 -0
 - metadata +84 -7
 
| 
         @@ -6,6 +6,8 @@ 
     | 
|
| 
       6 
6 
     | 
    
         
             
            #include <taglib/mpegproperties.h>
         
     | 
| 
       7 
7 
     | 
    
         
             
            #include <taglib/mpegfile.h>
         
     | 
| 
       8 
8 
     | 
    
         
             
            #include <taglib/id3v2tag.h>
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            static bool taglib_ruby_mpeg_file_save(TagLib::MPEG::File *file, int tags, bool stripOthers, int id3v2Version);
         
     | 
| 
       9 
11 
     | 
    
         
             
            %}
         
     | 
| 
       10 
12 
     | 
    
         | 
| 
       11 
13 
     | 
    
         
             
            %include "../taglib_base/includes.i"
         
     | 
| 
         @@ -69,12 +71,25 @@ 
     | 
|
| 
       69 
71 
     | 
    
         | 
| 
       70 
72 
     | 
    
         
             
                delete file;
         
     | 
| 
       71 
73 
     | 
    
         
             
              }
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
              static bool taglib_ruby_mpeg_file_save(TagLib::MPEG::File *file, int tags, bool stripOthers, int id3v2Version) {
         
     | 
| 
      
 76 
     | 
    
         
            +
            #if defined(TAGLIB_MAJOR_VERSION) && (TAGLIB_MAJOR_VERSION > 1 || (TAGLIB_MAJOR_VERSION == 1 && TAGLIB_MINOR_VERSION >= 8))
         
     | 
| 
      
 77 
     | 
    
         
            +
                return file->save(tags, stripOthers, id3v2Version);
         
     | 
| 
      
 78 
     | 
    
         
            +
            #else
         
     | 
| 
      
 79 
     | 
    
         
            +
                rb_raise(rb_eArgError, "Overloaded method save(int tags, bool stripOthers, int id3v2Version) on TagLib::MPEG::File is only available when compiled against TagLib >= 1.8");
         
     | 
| 
      
 80 
     | 
    
         
            +
                return false;
         
     | 
| 
      
 81 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 82 
     | 
    
         
            +
              }
         
     | 
| 
       72 
83 
     | 
    
         
             
            %}
         
     | 
| 
       73 
84 
     | 
    
         | 
| 
       74 
85 
     | 
    
         
             
            %extend TagLib::MPEG::File {
         
     | 
| 
       75 
86 
     | 
    
         
             
              void close() {
         
     | 
| 
       76 
87 
     | 
    
         
             
                free_taglib_mpeg_file($self);
         
     | 
| 
       77 
88 
     | 
    
         
             
              }
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
              bool save(int tags, bool stripOthers, int id3v2Version) {
         
     | 
| 
      
 91 
     | 
    
         
            +
                return taglib_ruby_mpeg_file_save($self, tags, stripOthers, id3v2Version);
         
     | 
| 
      
 92 
     | 
    
         
            +
              }
         
     | 
| 
       78 
93 
     | 
    
         
             
            }
         
     | 
| 
       79 
94 
     | 
    
         | 
| 
       80 
95 
     | 
    
         | 
| 
         @@ -1866,6 +1866,8 @@ static VALUE mMPEG; 
     | 
|
| 
       1866 
1866 
     | 
    
         
             
            #include <taglib/mpegfile.h>
         
     | 
| 
       1867 
1867 
     | 
    
         
             
            #include <taglib/id3v2tag.h>
         
     | 
| 
       1868 
1868 
     | 
    
         | 
| 
      
 1869 
     | 
    
         
            +
            static bool taglib_ruby_mpeg_file_save(TagLib::MPEG::File *file, int tags, bool stripOthers, int id3v2Version);
         
     | 
| 
      
 1870 
     | 
    
         
            +
             
     | 
| 
       1869 
1871 
     | 
    
         | 
| 
       1870 
1872 
     | 
    
         
             
            #include <taglib/tstring.h>
         
     | 
| 
       1871 
1873 
     | 
    
         
             
            #include <taglib/tstringlist.h>
         
     | 
| 
         @@ -1892,7 +1894,7 @@ TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) { 
     | 
|
| 
       1892 
1894 
     | 
    
         
             
              if (NIL_P(s)) {
         
     | 
| 
       1893 
1895 
     | 
    
         
             
                return TagLib::ByteVector::null;
         
     | 
| 
       1894 
1896 
     | 
    
         
             
              } else {
         
     | 
| 
       1895 
     | 
    
         
            -
                return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
         
     | 
| 
      
 1897 
     | 
    
         
            +
                return TagLib::ByteVector(RSTRING_PTR(StringValue(s)), RSTRING_LEN(s));
         
     | 
| 
       1896 
1898 
     | 
    
         
             
              }
         
     | 
| 
       1897 
1899 
     | 
    
         
             
            }
         
     | 
| 
       1898 
1900 
     | 
    
         | 
| 
         @@ -1910,7 +1912,7 @@ TagLib::String ruby_string_to_taglib_string(VALUE s) { 
     | 
|
| 
       1910 
1912 
     | 
    
         
             
              if (NIL_P(s)) {
         
     | 
| 
       1911 
1913 
     | 
    
         
             
                return TagLib::String::null;
         
     | 
| 
       1912 
1914 
     | 
    
         
             
              } else {
         
     | 
| 
       1913 
     | 
    
         
            -
                return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
         
     | 
| 
      
 1915 
     | 
    
         
            +
                return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(StringValue(s))), TagLib::String::UTF8);
         
     | 
| 
       1914 
1916 
     | 
    
         
             
              }
         
     | 
| 
       1915 
1917 
     | 
    
         
             
            }
         
     | 
| 
       1916 
1918 
     | 
    
         | 
| 
         @@ -1991,11 +1993,7 @@ SWIGINTERN int 
     | 
|
| 
       1991 
1993 
     | 
    
         
             
            SWIG_AsCharPtrAndSize(VALUE obj, char** cptr, size_t* psize, int *alloc)
         
     | 
| 
       1992 
1994 
     | 
    
         
             
            {
         
     | 
| 
       1993 
1995 
     | 
    
         
             
              if (TYPE(obj) == T_STRING) {
         
     | 
| 
       1994 
     | 
    
         
            -
                #if defined(StringValuePtr)
         
     | 
| 
       1995 
1996 
     | 
    
         
             
                char *cstr = StringValuePtr(obj); 
         
     | 
| 
       1996 
     | 
    
         
            -
                #else
         
     | 
| 
       1997 
     | 
    
         
            -
                char *cstr = STR2CSTR(obj);
         
     | 
| 
       1998 
     | 
    
         
            -
                #endif
         
     | 
| 
       1999 
1997 
     | 
    
         
             
                size_t size = RSTRING_LEN(obj) + 1;
         
     | 
| 
       2000 
1998 
     | 
    
         
             
                if (cptr)  {
         
     | 
| 
       2001 
1999 
     | 
    
         
             
                  if (alloc) {
         
     | 
| 
         @@ -2143,6 +2141,9 @@ SWIG_AsVal_bool (VALUE obj, bool *val) 
     | 
|
| 
       2143 
2141 
     | 
    
         
             
            SWIGINTERN void TagLib_MPEG_File_close(TagLib::MPEG::File *self){
         
     | 
| 
       2144 
2142 
     | 
    
         
             
                free_taglib_mpeg_file(self);
         
     | 
| 
       2145 
2143 
     | 
    
         
             
              }
         
     | 
| 
      
 2144 
     | 
    
         
            +
            SWIGINTERN bool TagLib_MPEG_File_save__SWIG_3(TagLib::MPEG::File *self,int tags,bool stripOthers,int id3v2Version){
         
     | 
| 
      
 2145 
     | 
    
         
            +
                return taglib_ruby_mpeg_file_save(self, tags, stripOthers, id3v2Version);
         
     | 
| 
      
 2146 
     | 
    
         
            +
              }
         
     | 
| 
       2146 
2147 
     | 
    
         | 
| 
       2147 
2148 
     | 
    
         
             
              static void free_taglib_mpeg_file(void *ptr) {
         
     | 
| 
       2148 
2149 
     | 
    
         
             
                TagLib::MPEG::File *file = (TagLib::MPEG::File *) ptr;
         
     | 
| 
         @@ -2184,6 +2185,15 @@ SWIGINTERN void TagLib_MPEG_File_close(TagLib::MPEG::File *self){ 
     | 
|
| 
       2184 
2185 
     | 
    
         
             
                delete file;
         
     | 
| 
       2185 
2186 
     | 
    
         
             
              }
         
     | 
| 
       2186 
2187 
     | 
    
         | 
| 
      
 2188 
     | 
    
         
            +
              static bool taglib_ruby_mpeg_file_save(TagLib::MPEG::File *file, int tags, bool stripOthers, int id3v2Version) {
         
     | 
| 
      
 2189 
     | 
    
         
            +
            #if defined(TAGLIB_MAJOR_VERSION) && (TAGLIB_MAJOR_VERSION > 1 || (TAGLIB_MAJOR_VERSION == 1 && TAGLIB_MINOR_VERSION >= 8))
         
     | 
| 
      
 2190 
     | 
    
         
            +
                return file->save(tags, stripOthers, id3v2Version);
         
     | 
| 
      
 2191 
     | 
    
         
            +
            #else
         
     | 
| 
      
 2192 
     | 
    
         
            +
                rb_raise(rb_eArgError, "Overloaded method save(int tags, bool stripOthers, int id3v2Version) on TagLib::MPEG::File is only available when compiled against TagLib >= 1.8");
         
     | 
| 
      
 2193 
     | 
    
         
            +
                return false;
         
     | 
| 
      
 2194 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 2195 
     | 
    
         
            +
              }
         
     | 
| 
      
 2196 
     | 
    
         
            +
             
     | 
| 
       2187 
2197 
     | 
    
         
             
            static swig_class SwigClassXingHeader;
         
     | 
| 
       2188 
2198 
     | 
    
         | 
| 
       2189 
2199 
     | 
    
         
             
            #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
         
     | 
| 
         @@ -2388,10 +2398,10 @@ _wrap_new_Header__SWIG_1(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       2388 
2398 
     | 
    
         
             
              }
         
     | 
| 
       2389 
2399 
     | 
    
         
             
              res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_TagLib__MPEG__Header,  0 );
         
     | 
| 
       2390 
2400 
     | 
    
         
             
              if (!SWIG_IsOK(res1)) {
         
     | 
| 
       2391 
     | 
    
         
            -
                SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::Header const &"," 
     | 
| 
      
 2401 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::Header const &","Header", 1, argv[0] )); 
         
     | 
| 
       2392 
2402 
     | 
    
         
             
              }
         
     | 
| 
       2393 
2403 
     | 
    
         
             
              if (!argp1) {
         
     | 
| 
       2394 
     | 
    
         
            -
                SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "TagLib::MPEG::Header const &"," 
     | 
| 
      
 2404 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "TagLib::MPEG::Header const &","Header", 1, argv[0])); 
         
     | 
| 
       2395 
2405 
     | 
    
         
             
              }
         
     | 
| 
       2396 
2406 
     | 
    
         
             
              arg1 = reinterpret_cast< TagLib::MPEG::Header * >(argp1);
         
     | 
| 
       2397 
2407 
     | 
    
         
             
              result = (TagLib::MPEG::Header *)new TagLib::MPEG::Header((TagLib::MPEG::Header const &)*arg1);
         
     | 
| 
         @@ -2751,12 +2761,12 @@ _wrap_new_Properties__SWIG_0(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       2751 
2761 
     | 
    
         
             
              }
         
     | 
| 
       2752 
2762 
     | 
    
         
             
              res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_TagLib__MPEG__File, 0 |  0 );
         
     | 
| 
       2753 
2763 
     | 
    
         
             
              if (!SWIG_IsOK(res1)) {
         
     | 
| 
       2754 
     | 
    
         
            -
                SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *"," 
     | 
| 
      
 2764 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *","Properties", 1, argv[0] )); 
         
     | 
| 
       2755 
2765 
     | 
    
         
             
              }
         
     | 
| 
       2756 
2766 
     | 
    
         
             
              arg1 = reinterpret_cast< TagLib::MPEG::File * >(argp1);
         
     | 
| 
       2757 
2767 
     | 
    
         
             
              ecode2 = SWIG_AsVal_int(argv[1], &val2);
         
     | 
| 
       2758 
2768 
     | 
    
         
             
              if (!SWIG_IsOK(ecode2)) {
         
     | 
| 
       2759 
     | 
    
         
            -
                SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "TagLib::AudioProperties::ReadStyle"," 
     | 
| 
      
 2769 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "TagLib::AudioProperties::ReadStyle","Properties", 2, argv[1] ));
         
     | 
| 
       2760 
2770 
     | 
    
         
             
              } 
         
     | 
| 
       2761 
2771 
     | 
    
         
             
              arg2 = static_cast< TagLib::AudioProperties::ReadStyle >(val2);
         
     | 
| 
       2762 
2772 
     | 
    
         
             
              result = (TagLib::MPEG::Properties *)new TagLib::MPEG::Properties(arg1,arg2);
         
     | 
| 
         @@ -2797,7 +2807,7 @@ _wrap_new_Properties__SWIG_1(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       2797 
2807 
     | 
    
         
             
              }
         
     | 
| 
       2798 
2808 
     | 
    
         
             
              res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_TagLib__MPEG__File, 0 |  0 );
         
     | 
| 
       2799 
2809 
     | 
    
         
             
              if (!SWIG_IsOK(res1)) {
         
     | 
| 
       2800 
     | 
    
         
            -
                SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *"," 
     | 
| 
      
 2810 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *","Properties", 1, argv[0] )); 
         
     | 
| 
       2801 
2811 
     | 
    
         
             
              }
         
     | 
| 
       2802 
2812 
     | 
    
         
             
              arg1 = reinterpret_cast< TagLib::MPEG::File * >(argp1);
         
     | 
| 
       2803 
2813 
     | 
    
         
             
              result = (TagLib::MPEG::Properties *)new TagLib::MPEG::Properties(arg1);
         
     | 
| 
         @@ -3147,12 +3157,12 @@ _wrap_new_File__SWIG_0(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       3147 
3157 
     | 
    
         
             
              }
         
     | 
| 
       3148 
3158 
     | 
    
         
             
              ecode2 = SWIG_AsVal_bool(argv[1], &val2);
         
     | 
| 
       3149 
3159 
     | 
    
         
             
              if (!SWIG_IsOK(ecode2)) {
         
     | 
| 
       3150 
     | 
    
         
            -
                SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool"," 
     | 
| 
      
 3160 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool","File", 2, argv[1] ));
         
     | 
| 
       3151 
3161 
     | 
    
         
             
              } 
         
     | 
| 
       3152 
3162 
     | 
    
         
             
              arg2 = static_cast< bool >(val2);
         
     | 
| 
       3153 
3163 
     | 
    
         
             
              ecode3 = SWIG_AsVal_int(argv[2], &val3);
         
     | 
| 
       3154 
3164 
     | 
    
         
             
              if (!SWIG_IsOK(ecode3)) {
         
     | 
| 
       3155 
     | 
    
         
            -
                SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "TagLib::MPEG::Properties::ReadStyle"," 
     | 
| 
      
 3165 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "TagLib::MPEG::Properties::ReadStyle","File", 3, argv[2] ));
         
     | 
| 
       3156 
3166 
     | 
    
         
             
              } 
         
     | 
| 
       3157 
3167 
     | 
    
         
             
              arg3 = static_cast< TagLib::MPEG::Properties::ReadStyle >(val3);
         
     | 
| 
       3158 
3168 
     | 
    
         
             
              result = (TagLib::MPEG::File *)new TagLib::MPEG::File(arg1,arg2,arg3);
         
     | 
| 
         @@ -3183,7 +3193,7 @@ _wrap_new_File__SWIG_1(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       3183 
3193 
     | 
    
         
             
              }
         
     | 
| 
       3184 
3194 
     | 
    
         
             
              ecode2 = SWIG_AsVal_bool(argv[1], &val2);
         
     | 
| 
       3185 
3195 
     | 
    
         
             
              if (!SWIG_IsOK(ecode2)) {
         
     | 
| 
       3186 
     | 
    
         
            -
                SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool"," 
     | 
| 
      
 3196 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool","File", 2, argv[1] ));
         
     | 
| 
       3187 
3197 
     | 
    
         
             
              } 
         
     | 
| 
       3188 
3198 
     | 
    
         
             
              arg2 = static_cast< bool >(val2);
         
     | 
| 
       3189 
3199 
     | 
    
         
             
              result = (TagLib::MPEG::File *)new TagLib::MPEG::File(arg1,arg2);
         
     | 
| 
         @@ -3243,17 +3253,17 @@ _wrap_new_File__SWIG_3(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       3243 
3253 
     | 
    
         
             
              }
         
     | 
| 
       3244 
3254 
     | 
    
         
             
              res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_TagLib__ID3v2__FrameFactory, 0 |  0 );
         
     | 
| 
       3245 
3255 
     | 
    
         
             
              if (!SWIG_IsOK(res2)) {
         
     | 
| 
       3246 
     | 
    
         
            -
                SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "TagLib::ID3v2::FrameFactory *"," 
     | 
| 
      
 3256 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "TagLib::ID3v2::FrameFactory *","File", 2, argv[1] )); 
         
     | 
| 
       3247 
3257 
     | 
    
         
             
              }
         
     | 
| 
       3248 
3258 
     | 
    
         
             
              arg2 = reinterpret_cast< TagLib::ID3v2::FrameFactory * >(argp2);
         
     | 
| 
       3249 
3259 
     | 
    
         
             
              ecode3 = SWIG_AsVal_bool(argv[2], &val3);
         
     | 
| 
       3250 
3260 
     | 
    
         
             
              if (!SWIG_IsOK(ecode3)) {
         
     | 
| 
       3251 
     | 
    
         
            -
                SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "bool"," 
     | 
| 
      
 3261 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "bool","File", 3, argv[2] ));
         
     | 
| 
       3252 
3262 
     | 
    
         
             
              } 
         
     | 
| 
       3253 
3263 
     | 
    
         
             
              arg3 = static_cast< bool >(val3);
         
     | 
| 
       3254 
3264 
     | 
    
         
             
              ecode4 = SWIG_AsVal_int(argv[3], &val4);
         
     | 
| 
       3255 
3265 
     | 
    
         
             
              if (!SWIG_IsOK(ecode4)) {
         
     | 
| 
       3256 
     | 
    
         
            -
                SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "TagLib::MPEG::Properties::ReadStyle"," 
     | 
| 
      
 3266 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "TagLib::MPEG::Properties::ReadStyle","File", 4, argv[3] ));
         
     | 
| 
       3257 
3267 
     | 
    
         
             
              } 
         
     | 
| 
       3258 
3268 
     | 
    
         
             
              arg4 = static_cast< TagLib::MPEG::Properties::ReadStyle >(val4);
         
     | 
| 
       3259 
3269 
     | 
    
         
             
              result = (TagLib::MPEG::File *)new TagLib::MPEG::File(arg1,arg2,arg3,arg4);
         
     | 
| 
         @@ -3287,12 +3297,12 @@ _wrap_new_File__SWIG_4(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       3287 
3297 
     | 
    
         
             
              }
         
     | 
| 
       3288 
3298 
     | 
    
         
             
              res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_TagLib__ID3v2__FrameFactory, 0 |  0 );
         
     | 
| 
       3289 
3299 
     | 
    
         
             
              if (!SWIG_IsOK(res2)) {
         
     | 
| 
       3290 
     | 
    
         
            -
                SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "TagLib::ID3v2::FrameFactory *"," 
     | 
| 
      
 3300 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "TagLib::ID3v2::FrameFactory *","File", 2, argv[1] )); 
         
     | 
| 
       3291 
3301 
     | 
    
         
             
              }
         
     | 
| 
       3292 
3302 
     | 
    
         
             
              arg2 = reinterpret_cast< TagLib::ID3v2::FrameFactory * >(argp2);
         
     | 
| 
       3293 
3303 
     | 
    
         
             
              ecode3 = SWIG_AsVal_bool(argv[2], &val3);
         
     | 
| 
       3294 
3304 
     | 
    
         
             
              if (!SWIG_IsOK(ecode3)) {
         
     | 
| 
       3295 
     | 
    
         
            -
                SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "bool"," 
     | 
| 
      
 3305 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "bool","File", 3, argv[2] ));
         
     | 
| 
       3296 
3306 
     | 
    
         
             
              } 
         
     | 
| 
       3297 
3307 
     | 
    
         
             
              arg3 = static_cast< bool >(val3);
         
     | 
| 
       3298 
3308 
     | 
    
         
             
              result = (TagLib::MPEG::File *)new TagLib::MPEG::File(arg1,arg2,arg3);
         
     | 
| 
         @@ -3340,7 +3350,7 @@ _wrap_new_File__SWIG_5(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       3340 
3350 
     | 
    
         
             
              }
         
     | 
| 
       3341 
3351 
     | 
    
         
             
              res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_TagLib__ID3v2__FrameFactory, 0 |  0 );
         
     | 
| 
       3342 
3352 
     | 
    
         
             
              if (!SWIG_IsOK(res2)) {
         
     | 
| 
       3343 
     | 
    
         
            -
                SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "TagLib::ID3v2::FrameFactory *"," 
     | 
| 
      
 3353 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "TagLib::ID3v2::FrameFactory *","File", 2, argv[1] )); 
         
     | 
| 
       3344 
3354 
     | 
    
         
             
              }
         
     | 
| 
       3345 
3355 
     | 
    
         
             
              arg2 = reinterpret_cast< TagLib::ID3v2::FrameFactory * >(argp2);
         
     | 
| 
       3346 
3356 
     | 
    
         
             
              result = (TagLib::MPEG::File *)new TagLib::MPEG::File(arg1,arg2);
         
     | 
| 
         @@ -3619,73 +3629,6 @@ fail: 
     | 
|
| 
       3619 
3629 
     | 
    
         
             
            }
         
     | 
| 
       3620 
3630 
     | 
    
         | 
| 
       3621 
3631 
     | 
    
         | 
| 
       3622 
     | 
    
         
            -
            SWIGINTERN VALUE _wrap_File_save(int nargs, VALUE *args, VALUE self) {
         
     | 
| 
       3623 
     | 
    
         
            -
              int argc;
         
     | 
| 
       3624 
     | 
    
         
            -
              VALUE argv[4];
         
     | 
| 
       3625 
     | 
    
         
            -
              int ii;
         
     | 
| 
       3626 
     | 
    
         
            -
              
         
     | 
| 
       3627 
     | 
    
         
            -
              argc = nargs + 1;
         
     | 
| 
       3628 
     | 
    
         
            -
              argv[0] = self;
         
     | 
| 
       3629 
     | 
    
         
            -
              if (argc > 4) SWIG_fail;
         
     | 
| 
       3630 
     | 
    
         
            -
              for (ii = 1; (ii < argc); ++ii) {
         
     | 
| 
       3631 
     | 
    
         
            -
                argv[ii] = args[ii-1];
         
     | 
| 
       3632 
     | 
    
         
            -
              }
         
     | 
| 
       3633 
     | 
    
         
            -
              if (argc == 1) {
         
     | 
| 
       3634 
     | 
    
         
            -
                int _v;
         
     | 
| 
       3635 
     | 
    
         
            -
                void *vptr = 0;
         
     | 
| 
       3636 
     | 
    
         
            -
                int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
         
     | 
| 
       3637 
     | 
    
         
            -
                _v = SWIG_CheckState(res);
         
     | 
| 
       3638 
     | 
    
         
            -
                if (_v) {
         
     | 
| 
       3639 
     | 
    
         
            -
                  return _wrap_File_save__SWIG_0(nargs, args, self);
         
     | 
| 
       3640 
     | 
    
         
            -
                }
         
     | 
| 
       3641 
     | 
    
         
            -
              }
         
     | 
| 
       3642 
     | 
    
         
            -
              if (argc == 2) {
         
     | 
| 
       3643 
     | 
    
         
            -
                int _v;
         
     | 
| 
       3644 
     | 
    
         
            -
                void *vptr = 0;
         
     | 
| 
       3645 
     | 
    
         
            -
                int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
         
     | 
| 
       3646 
     | 
    
         
            -
                _v = SWIG_CheckState(res);
         
     | 
| 
       3647 
     | 
    
         
            -
                if (_v) {
         
     | 
| 
       3648 
     | 
    
         
            -
                  {
         
     | 
| 
       3649 
     | 
    
         
            -
                    int res = SWIG_AsVal_int(argv[1], NULL);
         
     | 
| 
       3650 
     | 
    
         
            -
                    _v = SWIG_CheckState(res);
         
     | 
| 
       3651 
     | 
    
         
            -
                  }
         
     | 
| 
       3652 
     | 
    
         
            -
                  if (_v) {
         
     | 
| 
       3653 
     | 
    
         
            -
                    return _wrap_File_save__SWIG_1(nargs, args, self);
         
     | 
| 
       3654 
     | 
    
         
            -
                  }
         
     | 
| 
       3655 
     | 
    
         
            -
                }
         
     | 
| 
       3656 
     | 
    
         
            -
              }
         
     | 
| 
       3657 
     | 
    
         
            -
              if (argc == 3) {
         
     | 
| 
       3658 
     | 
    
         
            -
                int _v;
         
     | 
| 
       3659 
     | 
    
         
            -
                void *vptr = 0;
         
     | 
| 
       3660 
     | 
    
         
            -
                int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
         
     | 
| 
       3661 
     | 
    
         
            -
                _v = SWIG_CheckState(res);
         
     | 
| 
       3662 
     | 
    
         
            -
                if (_v) {
         
     | 
| 
       3663 
     | 
    
         
            -
                  {
         
     | 
| 
       3664 
     | 
    
         
            -
                    int res = SWIG_AsVal_int(argv[1], NULL);
         
     | 
| 
       3665 
     | 
    
         
            -
                    _v = SWIG_CheckState(res);
         
     | 
| 
       3666 
     | 
    
         
            -
                  }
         
     | 
| 
       3667 
     | 
    
         
            -
                  if (_v) {
         
     | 
| 
       3668 
     | 
    
         
            -
                    {
         
     | 
| 
       3669 
     | 
    
         
            -
                      int res = SWIG_AsVal_bool(argv[2], NULL);
         
     | 
| 
       3670 
     | 
    
         
            -
                      _v = SWIG_CheckState(res);
         
     | 
| 
       3671 
     | 
    
         
            -
                    }
         
     | 
| 
       3672 
     | 
    
         
            -
                    if (_v) {
         
     | 
| 
       3673 
     | 
    
         
            -
                      return _wrap_File_save__SWIG_2(nargs, args, self);
         
     | 
| 
       3674 
     | 
    
         
            -
                    }
         
     | 
| 
       3675 
     | 
    
         
            -
                  }
         
     | 
| 
       3676 
     | 
    
         
            -
                }
         
     | 
| 
       3677 
     | 
    
         
            -
              }
         
     | 
| 
       3678 
     | 
    
         
            -
              
         
     | 
| 
       3679 
     | 
    
         
            -
            fail:
         
     | 
| 
       3680 
     | 
    
         
            -
              Ruby_Format_OverloadedError( argc, 4, "File.save", 
         
     | 
| 
       3681 
     | 
    
         
            -
                "    bool File.save()\n"
         
     | 
| 
       3682 
     | 
    
         
            -
                "    bool File.save(int tags)\n"
         
     | 
| 
       3683 
     | 
    
         
            -
                "    bool File.save(int tags, bool stripOthers)\n");
         
     | 
| 
       3684 
     | 
    
         
            -
              
         
     | 
| 
       3685 
     | 
    
         
            -
              return Qnil;
         
     | 
| 
       3686 
     | 
    
         
            -
            }
         
     | 
| 
       3687 
     | 
    
         
            -
             
     | 
| 
       3688 
     | 
    
         
            -
             
     | 
| 
       3689 
3632 
     | 
    
         
             
            SWIGINTERN VALUE
         
     | 
| 
       3690 
3633 
     | 
    
         
             
            _wrap_File_id3v2_tag__SWIG_0(int argc, VALUE *argv, VALUE self) {
         
     | 
| 
       3691 
3634 
     | 
    
         
             
              TagLib::MPEG::File *arg1 = (TagLib::MPEG::File *) 0 ;
         
     | 
| 
         @@ -4314,6 +4257,149 @@ fail: 
     | 
|
| 
       4314 
4257 
     | 
    
         
             
            }
         
     | 
| 
       4315 
4258 
     | 
    
         | 
| 
       4316 
4259 
     | 
    
         | 
| 
      
 4260 
     | 
    
         
            +
            SWIGINTERN VALUE
         
     | 
| 
      
 4261 
     | 
    
         
            +
            _wrap_File_save__SWIG_3(int argc, VALUE *argv, VALUE self) {
         
     | 
| 
      
 4262 
     | 
    
         
            +
              TagLib::MPEG::File *arg1 = (TagLib::MPEG::File *) 0 ;
         
     | 
| 
      
 4263 
     | 
    
         
            +
              int arg2 ;
         
     | 
| 
      
 4264 
     | 
    
         
            +
              bool arg3 ;
         
     | 
| 
      
 4265 
     | 
    
         
            +
              int arg4 ;
         
     | 
| 
      
 4266 
     | 
    
         
            +
              void *argp1 = 0 ;
         
     | 
| 
      
 4267 
     | 
    
         
            +
              int res1 = 0 ;
         
     | 
| 
      
 4268 
     | 
    
         
            +
              int val2 ;
         
     | 
| 
      
 4269 
     | 
    
         
            +
              int ecode2 = 0 ;
         
     | 
| 
      
 4270 
     | 
    
         
            +
              bool val3 ;
         
     | 
| 
      
 4271 
     | 
    
         
            +
              int ecode3 = 0 ;
         
     | 
| 
      
 4272 
     | 
    
         
            +
              int val4 ;
         
     | 
| 
      
 4273 
     | 
    
         
            +
              int ecode4 = 0 ;
         
     | 
| 
      
 4274 
     | 
    
         
            +
              bool result;
         
     | 
| 
      
 4275 
     | 
    
         
            +
              VALUE vresult = Qnil;
         
     | 
| 
      
 4276 
     | 
    
         
            +
              
         
     | 
| 
      
 4277 
     | 
    
         
            +
              if ((argc < 3) || (argc > 3)) {
         
     | 
| 
      
 4278 
     | 
    
         
            +
                rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
         
     | 
| 
      
 4279 
     | 
    
         
            +
              }
         
     | 
| 
      
 4280 
     | 
    
         
            +
              res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__MPEG__File, 0 |  0 );
         
     | 
| 
      
 4281 
     | 
    
         
            +
              if (!SWIG_IsOK(res1)) {
         
     | 
| 
      
 4282 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::MPEG::File *","save", 1, self )); 
         
     | 
| 
      
 4283 
     | 
    
         
            +
              }
         
     | 
| 
      
 4284 
     | 
    
         
            +
              arg1 = reinterpret_cast< TagLib::MPEG::File * >(argp1);
         
     | 
| 
      
 4285 
     | 
    
         
            +
              ecode2 = SWIG_AsVal_int(argv[0], &val2);
         
     | 
| 
      
 4286 
     | 
    
         
            +
              if (!SWIG_IsOK(ecode2)) {
         
     | 
| 
      
 4287 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","save", 2, argv[0] ));
         
     | 
| 
      
 4288 
     | 
    
         
            +
              } 
         
     | 
| 
      
 4289 
     | 
    
         
            +
              arg2 = static_cast< int >(val2);
         
     | 
| 
      
 4290 
     | 
    
         
            +
              ecode3 = SWIG_AsVal_bool(argv[1], &val3);
         
     | 
| 
      
 4291 
     | 
    
         
            +
              if (!SWIG_IsOK(ecode3)) {
         
     | 
| 
      
 4292 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "bool","save", 3, argv[1] ));
         
     | 
| 
      
 4293 
     | 
    
         
            +
              } 
         
     | 
| 
      
 4294 
     | 
    
         
            +
              arg3 = static_cast< bool >(val3);
         
     | 
| 
      
 4295 
     | 
    
         
            +
              ecode4 = SWIG_AsVal_int(argv[2], &val4);
         
     | 
| 
      
 4296 
     | 
    
         
            +
              if (!SWIG_IsOK(ecode4)) {
         
     | 
| 
      
 4297 
     | 
    
         
            +
                SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "int","save", 4, argv[2] ));
         
     | 
| 
      
 4298 
     | 
    
         
            +
              } 
         
     | 
| 
      
 4299 
     | 
    
         
            +
              arg4 = static_cast< int >(val4);
         
     | 
| 
      
 4300 
     | 
    
         
            +
              result = (bool)TagLib_MPEG_File_save__SWIG_3(arg1,arg2,arg3,arg4);
         
     | 
| 
      
 4301 
     | 
    
         
            +
              vresult = SWIG_From_bool(static_cast< bool >(result));
         
     | 
| 
      
 4302 
     | 
    
         
            +
              return vresult;
         
     | 
| 
      
 4303 
     | 
    
         
            +
            fail:
         
     | 
| 
      
 4304 
     | 
    
         
            +
              return Qnil;
         
     | 
| 
      
 4305 
     | 
    
         
            +
            }
         
     | 
| 
      
 4306 
     | 
    
         
            +
             
     | 
| 
      
 4307 
     | 
    
         
            +
             
     | 
| 
      
 4308 
     | 
    
         
            +
            SWIGINTERN VALUE _wrap_File_save(int nargs, VALUE *args, VALUE self) {
         
     | 
| 
      
 4309 
     | 
    
         
            +
              int argc;
         
     | 
| 
      
 4310 
     | 
    
         
            +
              VALUE argv[5];
         
     | 
| 
      
 4311 
     | 
    
         
            +
              int ii;
         
     | 
| 
      
 4312 
     | 
    
         
            +
              
         
     | 
| 
      
 4313 
     | 
    
         
            +
              argc = nargs + 1;
         
     | 
| 
      
 4314 
     | 
    
         
            +
              argv[0] = self;
         
     | 
| 
      
 4315 
     | 
    
         
            +
              if (argc > 5) SWIG_fail;
         
     | 
| 
      
 4316 
     | 
    
         
            +
              for (ii = 1; (ii < argc); ++ii) {
         
     | 
| 
      
 4317 
     | 
    
         
            +
                argv[ii] = args[ii-1];
         
     | 
| 
      
 4318 
     | 
    
         
            +
              }
         
     | 
| 
      
 4319 
     | 
    
         
            +
              if (argc == 1) {
         
     | 
| 
      
 4320 
     | 
    
         
            +
                int _v;
         
     | 
| 
      
 4321 
     | 
    
         
            +
                void *vptr = 0;
         
     | 
| 
      
 4322 
     | 
    
         
            +
                int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
         
     | 
| 
      
 4323 
     | 
    
         
            +
                _v = SWIG_CheckState(res);
         
     | 
| 
      
 4324 
     | 
    
         
            +
                if (_v) {
         
     | 
| 
      
 4325 
     | 
    
         
            +
                  return _wrap_File_save__SWIG_0(nargs, args, self);
         
     | 
| 
      
 4326 
     | 
    
         
            +
                }
         
     | 
| 
      
 4327 
     | 
    
         
            +
              }
         
     | 
| 
      
 4328 
     | 
    
         
            +
              if (argc == 2) {
         
     | 
| 
      
 4329 
     | 
    
         
            +
                int _v;
         
     | 
| 
      
 4330 
     | 
    
         
            +
                void *vptr = 0;
         
     | 
| 
      
 4331 
     | 
    
         
            +
                int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
         
     | 
| 
      
 4332 
     | 
    
         
            +
                _v = SWIG_CheckState(res);
         
     | 
| 
      
 4333 
     | 
    
         
            +
                if (_v) {
         
     | 
| 
      
 4334 
     | 
    
         
            +
                  {
         
     | 
| 
      
 4335 
     | 
    
         
            +
                    int res = SWIG_AsVal_int(argv[1], NULL);
         
     | 
| 
      
 4336 
     | 
    
         
            +
                    _v = SWIG_CheckState(res);
         
     | 
| 
      
 4337 
     | 
    
         
            +
                  }
         
     | 
| 
      
 4338 
     | 
    
         
            +
                  if (_v) {
         
     | 
| 
      
 4339 
     | 
    
         
            +
                    return _wrap_File_save__SWIG_1(nargs, args, self);
         
     | 
| 
      
 4340 
     | 
    
         
            +
                  }
         
     | 
| 
      
 4341 
     | 
    
         
            +
                }
         
     | 
| 
      
 4342 
     | 
    
         
            +
              }
         
     | 
| 
      
 4343 
     | 
    
         
            +
              if (argc == 3) {
         
     | 
| 
      
 4344 
     | 
    
         
            +
                int _v;
         
     | 
| 
      
 4345 
     | 
    
         
            +
                void *vptr = 0;
         
     | 
| 
      
 4346 
     | 
    
         
            +
                int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
         
     | 
| 
      
 4347 
     | 
    
         
            +
                _v = SWIG_CheckState(res);
         
     | 
| 
      
 4348 
     | 
    
         
            +
                if (_v) {
         
     | 
| 
      
 4349 
     | 
    
         
            +
                  {
         
     | 
| 
      
 4350 
     | 
    
         
            +
                    int res = SWIG_AsVal_int(argv[1], NULL);
         
     | 
| 
      
 4351 
     | 
    
         
            +
                    _v = SWIG_CheckState(res);
         
     | 
| 
      
 4352 
     | 
    
         
            +
                  }
         
     | 
| 
      
 4353 
     | 
    
         
            +
                  if (_v) {
         
     | 
| 
      
 4354 
     | 
    
         
            +
                    {
         
     | 
| 
      
 4355 
     | 
    
         
            +
                      int res = SWIG_AsVal_bool(argv[2], NULL);
         
     | 
| 
      
 4356 
     | 
    
         
            +
                      _v = SWIG_CheckState(res);
         
     | 
| 
      
 4357 
     | 
    
         
            +
                    }
         
     | 
| 
      
 4358 
     | 
    
         
            +
                    if (_v) {
         
     | 
| 
      
 4359 
     | 
    
         
            +
                      return _wrap_File_save__SWIG_2(nargs, args, self);
         
     | 
| 
      
 4360 
     | 
    
         
            +
                    }
         
     | 
| 
      
 4361 
     | 
    
         
            +
                  }
         
     | 
| 
      
 4362 
     | 
    
         
            +
                }
         
     | 
| 
      
 4363 
     | 
    
         
            +
              }
         
     | 
| 
      
 4364 
     | 
    
         
            +
              if (argc == 4) {
         
     | 
| 
      
 4365 
     | 
    
         
            +
                int _v;
         
     | 
| 
      
 4366 
     | 
    
         
            +
                void *vptr = 0;
         
     | 
| 
      
 4367 
     | 
    
         
            +
                int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__MPEG__File, 0);
         
     | 
| 
      
 4368 
     | 
    
         
            +
                _v = SWIG_CheckState(res);
         
     | 
| 
      
 4369 
     | 
    
         
            +
                if (_v) {
         
     | 
| 
      
 4370 
     | 
    
         
            +
                  {
         
     | 
| 
      
 4371 
     | 
    
         
            +
                    int res = SWIG_AsVal_int(argv[1], NULL);
         
     | 
| 
      
 4372 
     | 
    
         
            +
                    _v = SWIG_CheckState(res);
         
     | 
| 
      
 4373 
     | 
    
         
            +
                  }
         
     | 
| 
      
 4374 
     | 
    
         
            +
                  if (_v) {
         
     | 
| 
      
 4375 
     | 
    
         
            +
                    {
         
     | 
| 
      
 4376 
     | 
    
         
            +
                      int res = SWIG_AsVal_bool(argv[2], NULL);
         
     | 
| 
      
 4377 
     | 
    
         
            +
                      _v = SWIG_CheckState(res);
         
     | 
| 
      
 4378 
     | 
    
         
            +
                    }
         
     | 
| 
      
 4379 
     | 
    
         
            +
                    if (_v) {
         
     | 
| 
      
 4380 
     | 
    
         
            +
                      {
         
     | 
| 
      
 4381 
     | 
    
         
            +
                        int res = SWIG_AsVal_int(argv[3], NULL);
         
     | 
| 
      
 4382 
     | 
    
         
            +
                        _v = SWIG_CheckState(res);
         
     | 
| 
      
 4383 
     | 
    
         
            +
                      }
         
     | 
| 
      
 4384 
     | 
    
         
            +
                      if (_v) {
         
     | 
| 
      
 4385 
     | 
    
         
            +
                        return _wrap_File_save__SWIG_3(nargs, args, self);
         
     | 
| 
      
 4386 
     | 
    
         
            +
                      }
         
     | 
| 
      
 4387 
     | 
    
         
            +
                    }
         
     | 
| 
      
 4388 
     | 
    
         
            +
                  }
         
     | 
| 
      
 4389 
     | 
    
         
            +
                }
         
     | 
| 
      
 4390 
     | 
    
         
            +
              }
         
     | 
| 
      
 4391 
     | 
    
         
            +
              
         
     | 
| 
      
 4392 
     | 
    
         
            +
            fail:
         
     | 
| 
      
 4393 
     | 
    
         
            +
              Ruby_Format_OverloadedError( argc, 5, "File.save", 
         
     | 
| 
      
 4394 
     | 
    
         
            +
                "    bool File.save()\n"
         
     | 
| 
      
 4395 
     | 
    
         
            +
                "    bool File.save(int tags)\n"
         
     | 
| 
      
 4396 
     | 
    
         
            +
                "    bool File.save(int tags, bool stripOthers)\n"
         
     | 
| 
      
 4397 
     | 
    
         
            +
                "    bool File.save(int tags, bool stripOthers, int id3v2Version)\n");
         
     | 
| 
      
 4398 
     | 
    
         
            +
              
         
     | 
| 
      
 4399 
     | 
    
         
            +
              return Qnil;
         
     | 
| 
      
 4400 
     | 
    
         
            +
            }
         
     | 
| 
      
 4401 
     | 
    
         
            +
             
     | 
| 
      
 4402 
     | 
    
         
            +
             
     | 
| 
       4317 
4403 
     | 
    
         | 
| 
       4318 
4404 
     | 
    
         
             
            /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
         
     | 
| 
       4319 
4405 
     | 
    
         | 
| 
         @@ -4723,7 +4809,6 @@ SWIGEXPORT void Init_taglib_mpeg(void) { 
     | 
|
| 
       4723 
4809 
     | 
    
         
             
              rb_define_const(SwigClassFile.klass, "AllTags", SWIG_From_int(static_cast< int >(TagLib::MPEG::File::AllTags)));
         
     | 
| 
       4724 
4810 
     | 
    
         
             
              rb_define_method(SwigClassFile.klass, "tag", VALUEFUNC(_wrap_File_tag), -1);
         
     | 
| 
       4725 
4811 
     | 
    
         
             
              rb_define_method(SwigClassFile.klass, "audio_properties", VALUEFUNC(_wrap_File_audio_properties), -1);
         
     | 
| 
       4726 
     | 
    
         
            -
              rb_define_method(SwigClassFile.klass, "save", VALUEFUNC(_wrap_File_save), -1);
         
     | 
| 
       4727 
4812 
     | 
    
         
             
              rb_define_method(SwigClassFile.klass, "id3v2_tag", VALUEFUNC(_wrap_File_id3v2_tag), -1);
         
     | 
| 
       4728 
4813 
     | 
    
         
             
              rb_define_method(SwigClassFile.klass, "id3v1_tag", VALUEFUNC(_wrap_File_id3v1_tag), -1);
         
     | 
| 
       4729 
4814 
     | 
    
         
             
              rb_define_method(SwigClassFile.klass, "apetag", VALUEFUNC(_wrap_File_apetag), -1);
         
     | 
| 
         @@ -4734,6 +4819,7 @@ SWIGEXPORT void Init_taglib_mpeg(void) { 
     | 
|
| 
       4734 
4819 
     | 
    
         
             
              rb_define_method(SwigClassFile.klass, "previous_frame_offset", VALUEFUNC(_wrap_File_previous_frame_offset), -1);
         
     | 
| 
       4735 
4820 
     | 
    
         
             
              rb_define_method(SwigClassFile.klass, "last_frame_offset", VALUEFUNC(_wrap_File_last_frame_offset), -1);
         
     | 
| 
       4736 
4821 
     | 
    
         
             
              rb_define_method(SwigClassFile.klass, "close", VALUEFUNC(_wrap_File_close), -1);
         
     | 
| 
      
 4822 
     | 
    
         
            +
              rb_define_method(SwigClassFile.klass, "save", VALUEFUNC(_wrap_File_save), -1);
         
     | 
| 
       4737 
4823 
     | 
    
         
             
              SwigClassFile.mark = 0;
         
     | 
| 
       4738 
4824 
     | 
    
         
             
              SwigClassFile.destroy = (void (*)(void *)) free_taglib_mpeg_file;
         
     | 
| 
       4739 
4825 
     | 
    
         
             
              SwigClassFile.trackObjects = 1;
         
     | 
| 
         @@ -1881,7 +1881,7 @@ TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) { 
     | 
|
| 
       1881 
1881 
     | 
    
         
             
              if (NIL_P(s)) {
         
     | 
| 
       1882 
1882 
     | 
    
         
             
                return TagLib::ByteVector::null;
         
     | 
| 
       1883 
1883 
     | 
    
         
             
              } else {
         
     | 
| 
       1884 
     | 
    
         
            -
                return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
         
     | 
| 
      
 1884 
     | 
    
         
            +
                return TagLib::ByteVector(RSTRING_PTR(StringValue(s)), RSTRING_LEN(s));
         
     | 
| 
       1885 
1885 
     | 
    
         
             
              }
         
     | 
| 
       1886 
1886 
     | 
    
         
             
            }
         
     | 
| 
       1887 
1887 
     | 
    
         | 
| 
         @@ -1899,7 +1899,7 @@ TagLib::String ruby_string_to_taglib_string(VALUE s) { 
     | 
|
| 
       1899 
1899 
     | 
    
         
             
              if (NIL_P(s)) {
         
     | 
| 
       1900 
1900 
     | 
    
         
             
                return TagLib::String::null;
         
     | 
| 
       1901 
1901 
     | 
    
         
             
              } else {
         
     | 
| 
       1902 
     | 
    
         
            -
                return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
         
     | 
| 
      
 1902 
     | 
    
         
            +
                return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(StringValue(s))), TagLib::String::UTF8);
         
     | 
| 
       1903 
1903 
     | 
    
         
             
              }
         
     | 
| 
       1904 
1904 
     | 
    
         
             
            }
         
     | 
| 
       1905 
1905 
     | 
    
         | 
| 
         @@ -2042,11 +2042,7 @@ SWIGINTERN int 
     | 
|
| 
       2042 
2042 
     | 
    
         
             
            SWIG_AsCharPtrAndSize(VALUE obj, char** cptr, size_t* psize, int *alloc)
         
     | 
| 
       2043 
2043 
     | 
    
         
             
            {
         
     | 
| 
       2044 
2044 
     | 
    
         
             
              if (TYPE(obj) == T_STRING) {
         
     | 
| 
       2045 
     | 
    
         
            -
                #if defined(StringValuePtr)
         
     | 
| 
       2046 
2045 
     | 
    
         
             
                char *cstr = StringValuePtr(obj); 
         
     | 
| 
       2047 
     | 
    
         
            -
                #else
         
     | 
| 
       2048 
     | 
    
         
            -
                char *cstr = STR2CSTR(obj);
         
     | 
| 
       2049 
     | 
    
         
            -
                #endif
         
     | 
| 
       2050 
2046 
     | 
    
         
             
                size_t size = RSTRING_LEN(obj) + 1;
         
     | 
| 
       2051 
2047 
     | 
    
         
             
                if (cptr)  {
         
     | 
| 
       2052 
2048 
     | 
    
         
             
                  if (alloc) {
         
     |