taglib-ruby 1.1.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a55f54bdc833c65711a28fbbe37d76b25f0b0c09eadc035e468c342805b4634f
4
- data.tar.gz: dbcee5669f1aa0675026aed4f644f37bffd3025c3553a516eaf1187348147235
3
+ metadata.gz: 659d2ce981f60aaee4cdc2ada2ace70d33d55f2f1414478f03a8088facaedb98
4
+ data.tar.gz: 4baf4450e6903749e1f5a9829d2f83e4fa3809ec24974950d006992a50c35c78
5
5
  SHA512:
6
- metadata.gz: 29780812c27444ee090922a6c132bbc39f4a31332bc9b5b76c69170ecfca0f52a0b4e885ba3f7db5d389c86ad4bd55ffca06f4f28621a70b487e175f6c08f6a8
7
- data.tar.gz: 7b17dcb6eaf9a80bc12ff4e31d1032935a874b1fb49c283d054f9b2605d1eac56deeb716f35944f6e407bd47f10c1aa1a71a893de354ff6f52b2e448b7150b55
6
+ metadata.gz: 3df1ff745ae3e67a269f69f20820372c25d91a5d51fe916ffc590014518dad82d8674a526df4763449543246bef6e23d4ba6766513d5214c96e68b3a14b89846
7
+ data.tar.gz: f114af2a78f0ea69335ceff09cc1152ca9050b8519ebc318b85a854734d063f531cdf6176c10e1c487533d7fef58819e0a35431940a4c75e836c2e76e1f3e1c0
data/CHANGELOG.md CHANGED
@@ -6,6 +6,22 @@ All notable changes to this project will be documented in this file.
6
6
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
7
7
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
8
8
 
9
+ ## 2.0.0
10
+ ### Changed
11
+ - Regenerate SWIG wrapper code against TagLib 2.0.1. This breaks
12
+ compatibility with TagLib 1.x. You will get a compiler error if you
13
+ try to install taglib-ruby 2.x on a system that has TagLib 1.x.
14
+ Please use taglib-ruby 1.x if your system has TagLib 1.x, and
15
+ taglib-ruby 2.x if your system has TagLib 2.x.
16
+ - The optional `strip_others` argument to `TagLib::MPEG::File#save` no
17
+ longer takes a boolean value. It now uses the constants
18
+ `TagLib::File::StripOthers` and `TagLib::File::StripNone`.
19
+
20
+ ### Removed
21
+ - `TagLib::MPEG::File#tag` has been removed because it no longer
22
+ exists in TagLib 2.x. Please use `TagLib::MPEG::File#id3v2_tag` or
23
+ `TagLib::MPEG::File#id3v1_tag`.
24
+
9
25
  ## 1.1.3 - 2022-12-29
10
26
  ### Changed
11
27
  - Fix warning `warning: undefining the allocator of T_DATA class
data/README.md CHANGED
@@ -30,9 +30,13 @@ installed with header files (and a C++ compiler of course):
30
30
  * Brew: `brew install taglib`
31
31
  * MacPorts: `sudo port install taglib`
32
32
 
33
- Then do:
33
+ Then install the latest taglib-ruby 1.x by running:
34
34
 
35
- gem install taglib-ruby
35
+ gem install taglib-ruby --version '< 2'
36
+
37
+ If you are using TagLib 2.0.1 or higher, you need to install taglib-ruby 2.x instead:
38
+
39
+ gem install taglib-ruby --version '>= 2'
36
40
 
37
41
  ### MacOS
38
42
 
@@ -40,16 +44,20 @@ Depending on your brew setup, TagLib might be installed in different locations,
40
44
  which makes it hard for taglib-ruby to find it. To get the library location, run:
41
45
 
42
46
  $ brew info taglib
43
- taglib: stable 1.12 (bottled), HEAD
47
+ taglib: stable 1.13 (bottled), HEAD
44
48
  Audio metadata library
45
49
  https://taglib.org/
46
- /usr/local/Cellar/taglib/1.12 (122 files, 1.5MB) *
50
+ /opt/homebrew/Cellar/taglib/1.13 (122 files, 1.6MB) *
47
51
  ...
48
52
 
49
53
  Note the line with the path at the end. Provide that using the `TAGLIB_DIR`
50
54
  environment variable when installing, like this:
51
55
 
52
- TAGLIB_DIR=/usr/local/Cellar/taglib/1.12 gem install taglib-ruby
56
+ TAGLIB_DIR=/opt/homebrew/Cellar/taglib/1.13 gem install taglib-ruby
57
+
58
+ If you're using bundler, like this:
59
+
60
+ TAGLIB_DIR=/opt/homebrew/Cellar/taglib/1.13 bundle install
53
61
 
54
62
  Another problem might be that `clang++` doesn't work with a specific version
55
63
  of TagLib. In that case, try compiling taglib-ruby's C++ extensions with a
@@ -116,18 +124,14 @@ Build a specific version of Taglib:
116
124
  The above command will automatically download Taglib 1.11.1, build it and
117
125
  install it in `tmp/x86_64-linux/taglib-1.11.1`.
118
126
 
119
- The `swig` and `compile` tasks can then be executed against that specific
127
+ The `swig`, `compile` and `test` tasks can then be executed against that specific
120
128
  version of Taglib by setting the `TAGLIB_DIR` environment variable to
121
129
  `$PWD/tmp/x86_64-linux/taglib-1.11.1` (it is assumed that taglib headers are
122
130
  located at `$TAGLIB_DIR/include` and taglib libraries at `$TAGLIB_DIR/lib`).
123
131
 
124
- The `test` task can then be run for that version of Taglib by adding
125
- `$PWD/tmp/x86_64-linux/taglib-1.11.1/lib` to the `LD_LIBRARY_PATH` environment
126
- variable.
127
-
128
132
  To do everything in one command:
129
133
 
130
- PLATFORM=x86_64-linux TAGLIB_VERSION=1.11.1 TAGLIB_DIR=$PWD/tmp/x86_64-linux/taglib-1.11.1 LD_LIBRARY_PATH=$PWD/tmp/x86_64-linux/taglib-1.11.1/lib rake vendor compile test
134
+ PLATFORM=x86_64-linux TAGLIB_VERSION=1.11.1 TAGLIB_DIR=$PWD/tmp/x86_64-linux/taglib-1.11.1 rake vendor compile test
131
135
 
132
136
  ### Workflow
133
137
 
data/docs/taglib/mpeg.rb CHANGED
@@ -32,14 +32,6 @@ module TagLib::MPEG
32
32
  def initialize(filename, read_properties=true)
33
33
  end
34
34
 
35
- # Returns a tag that contains attributes from both the ID3v2 and
36
- # ID3v1 tag, with ID3v2 attributes having precendence.
37
- #
38
- # @return [TagLib::Tag]
39
- # @return [nil] if not present
40
- def tag
41
- end
42
-
43
35
  # Returns the ID3v1 tag.
44
36
  #
45
37
  # @param create if a new tag should be created when none exists
@@ -88,7 +80,7 @@ module TagLib::MPEG
88
80
  # ArgumentError.
89
81
  #
90
82
  # @return [Boolean] whether saving was successful
91
- def save(tags=TagLib::MPEG::File::AllTags, strip_others=true)
83
+ def save(tags=TagLib::MPEG::File::AllTags, strip_others=TagLib::File::StripOthers)
92
84
  end
93
85
 
94
86
  # Strip the specified tags from the file. Note that this directly
@@ -1,15 +1,19 @@
1
1
  # frozen-string-literal: true
2
2
 
3
- # Default opt dirs to help mkmf find taglib
4
- opt_dirs = ['/usr/local', '/opt/local', '/sw']
5
-
6
- # Heroku vendor dir
7
- vendor = ENV.fetch('GEM_HOME', '')[/^[^ ]*\/vendor\//]
8
- opt_dirs << "#{vendor}taglib" if vendor
9
- opt_dirs_joined = opt_dirs.join(':')
10
-
11
- configure_args = "--with-opt-dir=#{opt_dirs_joined} "
12
- ENV['CONFIGURE_ARGS'] = configure_args + ENV.fetch('CONFIGURE_ARGS', '')
3
+ taglib_dir = ENV['TAGLIB_DIR']
4
+
5
+ unless taglib_dir
6
+ # Default opt dirs to help mkmf find taglib
7
+ opt_dirs = ['/usr/local', '/opt/local', '/sw']
8
+
9
+ # Heroku vendor dir
10
+ vendor = ENV.fetch('GEM_HOME', '')[/^[^ ]*\/vendor\//]
11
+ opt_dirs << "#{vendor}taglib" if vendor
12
+ opt_dirs_joined = opt_dirs.join(':')
13
+
14
+ configure_args = "--with-opt-dir=#{opt_dirs_joined} "
15
+ ENV['CONFIGURE_ARGS'] = configure_args + ENV.fetch('CONFIGURE_ARGS', '')
16
+ end
13
17
 
14
18
  require 'mkmf'
15
19
 
@@ -18,14 +22,14 @@ def error(msg)
18
22
  abort
19
23
  end
20
24
 
21
- if ENV.key?('TAGLIB_DIR') && !File.directory?(ENV['TAGLIB_DIR'])
25
+ if taglib_dir && !File.directory?(taglib_dir)
22
26
  error 'When defined, the TAGLIB_DIR environment variable must point to a valid directory.'
23
27
  end
24
28
 
25
29
  # If specified, use the TAGLIB_DIR environment variable as the prefix
26
30
  # for finding taglib headers and libs. See MakeMakefile#dir_config
27
31
  # for more details.
28
- dir_config('tag', (ENV['TAGLIB_DIR'] if ENV.key?('TAGLIB_DIR')))
32
+ dir_config('tag', taglib_dir)
29
33
 
30
34
  # When compiling statically, -lstdc++ would make the resulting .so to
31
35
  # have a dependency on an external libstdc++ instead of the static one.
@@ -46,5 +50,10 @@ end
46
50
 
47
51
  $CFLAGS << ' -DSWIG_TYPE_TABLE=taglib'
48
52
 
53
+ # TagLib 2.0 requires C++17. Some compilers default to an older standard
54
+ # so we add this '-std=' option to make sure the compiler accepts C++17
55
+ # code.
56
+ $CXXFLAGS << ' -std=c++17'
57
+
49
58
  # Allow users to override the Ruby runtime's preferred CXX
50
59
  RbConfig::MAKEFILE_CONFIG['CXX'] = ENV['TAGLIB_RUBY_CXX'] if ENV['TAGLIB_RUBY_CXX']
@@ -14,12 +14,16 @@
14
14
  %ignore TagLib::RIFF::AIFF::Properties::length;
15
15
  %ignore TagLib::RIFF::AIFF::Properties::sampleWidth;
16
16
 
17
+ %ignore TagLib::RIFF::File;
18
+ %include <taglib/rifffile.h>
19
+
17
20
  %include <taglib/aiffproperties.h>
18
21
 
19
22
  %freefunc TagLib::RIFF::AIFF::File "free_taglib_riff_aiff_file";
20
23
 
21
24
  // Ignore IOStream and all the constructors using it.
22
25
  %ignore IOStream;
26
+ %ignore TagLib::RIFF::AIFF::File::File(IOStream *, bool, Properties::ReadStyle, ID3v2::FrameFactory *);
23
27
  %ignore TagLib::RIFF::AIFF::File::File(IOStream *, bool, Properties::ReadStyle);
24
28
  %ignore TagLib::RIFF::AIFF::File::File(IOStream *, bool);
25
29
  %ignore TagLib::RIFF::AIFF::File::File(IOStream *);
@@ -1854,16 +1854,21 @@ int SWIG_Ruby_arity( VALUE proc, int minimal )
1854
1854
  /* -------- TYPES TABLE (BEGIN) -------- */
1855
1855
 
1856
1856
  #define SWIGTYPE_p_TagLib__AudioProperties swig_types[0]
1857
- #define SWIGTYPE_p_TagLib__ID3v2__Tag swig_types[1]
1858
- #define SWIGTYPE_p_TagLib__RIFF__AIFF__File swig_types[2]
1859
- #define SWIGTYPE_p_TagLib__RIFF__AIFF__Properties swig_types[3]
1860
- #define SWIGTYPE_p_char swig_types[4]
1861
- #define SWIGTYPE_p_unsigned_char swig_types[5]
1862
- #define SWIGTYPE_p_unsigned_int swig_types[6]
1863
- #define SWIGTYPE_p_unsigned_long swig_types[7]
1864
- #define SWIGTYPE_p_wchar_t swig_types[8]
1865
- static swig_type_info *swig_types[10];
1866
- static swig_module_info swig_module = {swig_types, 9, 0, 0, 0, 0};
1857
+ #define SWIGTYPE_p_TagLib__File swig_types[1]
1858
+ #define SWIGTYPE_p_TagLib__ID3v2__FrameFactory swig_types[2]
1859
+ #define SWIGTYPE_p_TagLib__ID3v2__Tag swig_types[3]
1860
+ #define SWIGTYPE_p_TagLib__ID3v2__Version swig_types[4]
1861
+ #define SWIGTYPE_p_TagLib__RIFF__AIFF__File swig_types[5]
1862
+ #define SWIGTYPE_p_TagLib__RIFF__AIFF__Properties swig_types[6]
1863
+ #define SWIGTYPE_p_TagLib__RIFF__File swig_types[7]
1864
+ #define SWIGTYPE_p_char swig_types[8]
1865
+ #define SWIGTYPE_p_long_long swig_types[9]
1866
+ #define SWIGTYPE_p_unsigned_char swig_types[10]
1867
+ #define SWIGTYPE_p_unsigned_int swig_types[11]
1868
+ #define SWIGTYPE_p_unsigned_long swig_types[12]
1869
+ #define SWIGTYPE_p_wchar_t swig_types[13]
1870
+ static swig_type_info *swig_types[15];
1871
+ static swig_module_info swig_module = {swig_types, 14, 0, 0, 0, 0};
1867
1872
  #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
1868
1873
  #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
1869
1874
 
@@ -1957,34 +1962,26 @@ template <typename T> T SwigValueInit() {
1957
1962
  #endif
1958
1963
 
1959
1964
  VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) {
1960
- if (byteVector.isNull()) {
1961
- return Qnil;
1962
- } else {
1963
- return rb_str_new(byteVector.data(), byteVector.size());
1964
- }
1965
+ return rb_str_new(byteVector.data(), byteVector.size());
1965
1966
  }
1966
1967
 
1967
1968
  TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
1968
1969
  if (NIL_P(s)) {
1969
- return TagLib::ByteVector::null;
1970
+ return TagLib::ByteVector();
1970
1971
  } else {
1971
1972
  return TagLib::ByteVector(RSTRING_PTR(StringValue(s)), RSTRING_LEN(s));
1972
1973
  }
1973
1974
  }
1974
1975
 
1975
1976
  VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
1976
- if (string.isNull()) {
1977
- return Qnil;
1978
- } else {
1979
- VALUE result = rb_str_new2(string.toCString(true));
1980
- ASSOCIATE_UTF8_ENCODING(result);
1981
- return result;
1982
- }
1977
+ VALUE result = rb_str_new2(string.toCString(true));
1978
+ ASSOCIATE_UTF8_ENCODING(result);
1979
+ return result;
1983
1980
  }
1984
1981
 
1985
1982
  TagLib::String ruby_string_to_taglib_string(VALUE s) {
1986
1983
  if (NIL_P(s)) {
1987
- return TagLib::String::null;
1984
+ return TagLib::String();
1988
1985
  } else {
1989
1986
  return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(StringValue(s))), TagLib::String::UTF8);
1990
1987
  }
@@ -2073,6 +2070,13 @@ TagLib::FileName ruby_string_to_taglib_filename(VALUE s) {
2073
2070
  #endif
2074
2071
  }
2075
2072
 
2073
+ VALUE taglib_offset_t_to_ruby_int(TagLib::offset_t off) {
2074
+ #ifdef _WIN32
2075
+ return LL2NUM(off);
2076
+ #else
2077
+ return OFFT2NUM(off);
2078
+ #endif
2079
+ }
2076
2080
 
2077
2081
 
2078
2082
  #include <limits.h>
@@ -2092,7 +2096,7 @@ SWIG_ruby_failed(VALUE SWIGUNUSEDPARM(arg1), VALUE SWIGUNUSEDPARM(arg2))
2092
2096
  }
2093
2097
 
2094
2098
 
2095
- /*@SWIG:/usr/local/Cellar/swig/4.1.1/share/swig/4.1.1/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2099
+ /*@SWIG:/swig/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2096
2100
  SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE arg)
2097
2101
  {
2098
2102
  VALUE *args = (VALUE *)arg;
@@ -2326,30 +2330,6 @@ free_TagLib_RIFF_AIFF_Properties(void *self) {
2326
2330
  delete arg1;
2327
2331
  }
2328
2332
 
2329
- SWIGINTERN VALUE
2330
- _wrap_Properties_length_in_seconds(int argc, VALUE *argv, VALUE self) {
2331
- TagLib::RIFF::AIFF::Properties *arg1 = (TagLib::RIFF::AIFF::Properties *) 0 ;
2332
- void *argp1 = 0 ;
2333
- int res1 = 0 ;
2334
- int result;
2335
- VALUE vresult = Qnil;
2336
-
2337
- if ((argc < 0) || (argc > 0)) {
2338
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
2339
- }
2340
- res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__RIFF__AIFF__Properties, 0 | 0 );
2341
- if (!SWIG_IsOK(res1)) {
2342
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::RIFF::AIFF::Properties const *","lengthInSeconds", 1, self ));
2343
- }
2344
- arg1 = reinterpret_cast< TagLib::RIFF::AIFF::Properties * >(argp1);
2345
- result = (int)((TagLib::RIFF::AIFF::Properties const *)arg1)->lengthInSeconds();
2346
- vresult = SWIG_From_int(static_cast< int >(result));
2347
- return vresult;
2348
- fail:
2349
- return Qnil;
2350
- }
2351
-
2352
-
2353
2333
  SWIGINTERN VALUE
2354
2334
  _wrap_Properties_length_in_milliseconds(int argc, VALUE *argv, VALUE self) {
2355
2335
  TagLib::RIFF::AIFF::Properties *arg1 = (TagLib::RIFF::AIFF::Properties *) 0 ;
@@ -2574,6 +2554,53 @@ static swig_class SwigClassFile;
2574
2554
 
2575
2555
  SWIGINTERN VALUE
2576
2556
  _wrap_new_File__SWIG_0(int argc, VALUE *argv, VALUE self) {
2557
+ TagLib::FileName arg1 ;
2558
+ bool arg2 ;
2559
+ TagLib::RIFF::AIFF::Properties::ReadStyle arg3 ;
2560
+ TagLib::ID3v2::FrameFactory *arg4 = (TagLib::ID3v2::FrameFactory *) 0 ;
2561
+ bool val2 ;
2562
+ int ecode2 = 0 ;
2563
+ int val3 ;
2564
+ int ecode3 = 0 ;
2565
+ void *argp4 = 0 ;
2566
+ int res4 = 0 ;
2567
+ TagLib::RIFF::AIFF::File *result = 0 ;
2568
+
2569
+ if ((argc < 4) || (argc > 4)) {
2570
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
2571
+ }
2572
+ {
2573
+ arg1 = ruby_string_to_taglib_filename(argv[0]);
2574
+ if ((const char *)(TagLib::FileName)(arg1) == NULL) {
2575
+ SWIG_exception_fail(SWIG_MemoryError, "Failed to allocate memory for file name.");
2576
+ }
2577
+ }
2578
+ ecode2 = SWIG_AsVal_bool(argv[1], &val2);
2579
+ if (!SWIG_IsOK(ecode2)) {
2580
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool","File", 2, argv[1] ));
2581
+ }
2582
+ arg2 = static_cast< bool >(val2);
2583
+ ecode3 = SWIG_AsVal_int(argv[2], &val3);
2584
+ if (!SWIG_IsOK(ecode3)) {
2585
+ SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "TagLib::RIFF::AIFF::Properties::ReadStyle","File", 3, argv[2] ));
2586
+ }
2587
+ arg3 = static_cast< TagLib::RIFF::AIFF::Properties::ReadStyle >(val3);
2588
+ res4 = SWIG_ConvertPtr(argv[3], &argp4,SWIGTYPE_p_TagLib__ID3v2__FrameFactory, 0 | 0 );
2589
+ if (!SWIG_IsOK(res4)) {
2590
+ SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "TagLib::ID3v2::FrameFactory *","File", 4, argv[3] ));
2591
+ }
2592
+ arg4 = reinterpret_cast< TagLib::ID3v2::FrameFactory * >(argp4);
2593
+ result = (TagLib::RIFF::AIFF::File *)new TagLib::RIFF::AIFF::File(arg1,arg2,arg3,arg4);
2594
+ DATA_PTR(self) = result;
2595
+ SWIG_RubyAddTracking(result, self);
2596
+ return self;
2597
+ fail:
2598
+ return Qnil;
2599
+ }
2600
+
2601
+
2602
+ SWIGINTERN VALUE
2603
+ _wrap_new_File__SWIG_1(int argc, VALUE *argv, VALUE self) {
2577
2604
  TagLib::FileName arg1 ;
2578
2605
  bool arg2 ;
2579
2606
  TagLib::RIFF::AIFF::Properties::ReadStyle arg3 ;
@@ -2612,7 +2639,7 @@ fail:
2612
2639
 
2613
2640
 
2614
2641
  SWIGINTERN VALUE
2615
- _wrap_new_File__SWIG_1(int argc, VALUE *argv, VALUE self) {
2642
+ _wrap_new_File__SWIG_2(int argc, VALUE *argv, VALUE self) {
2616
2643
  TagLib::FileName arg1 ;
2617
2644
  bool arg2 ;
2618
2645
  bool val2 ;
@@ -2658,7 +2685,7 @@ _wrap_File_allocate(int argc, VALUE *argv, VALUE self)
2658
2685
 
2659
2686
 
2660
2687
  SWIGINTERN VALUE
2661
- _wrap_new_File__SWIG_2(int argc, VALUE *argv, VALUE self) {
2688
+ _wrap_new_File__SWIG_3(int argc, VALUE *argv, VALUE self) {
2662
2689
  TagLib::FileName arg1 ;
2663
2690
  TagLib::RIFF::AIFF::File *result = 0 ;
2664
2691
 
@@ -2682,11 +2709,11 @@ fail:
2682
2709
 
2683
2710
  SWIGINTERN VALUE _wrap_new_File(int nargs, VALUE *args, VALUE self) {
2684
2711
  int argc;
2685
- VALUE argv[3];
2712
+ VALUE argv[4];
2686
2713
  int ii;
2687
2714
 
2688
2715
  argc = nargs;
2689
- if (argc > 3) SWIG_fail;
2716
+ if (argc > 4) SWIG_fail;
2690
2717
  for (ii = 0; (ii < argc); ++ii) {
2691
2718
  argv[ii] = args[ii];
2692
2719
  }
@@ -2695,7 +2722,7 @@ SWIGINTERN VALUE _wrap_new_File(int nargs, VALUE *args, VALUE self) {
2695
2722
  int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
2696
2723
  _v = SWIG_CheckState(res);
2697
2724
  if (_v) {
2698
- return _wrap_new_File__SWIG_2(nargs, args, self);
2725
+ return _wrap_new_File__SWIG_3(nargs, args, self);
2699
2726
  }
2700
2727
  }
2701
2728
  if (argc == 2) {
@@ -2708,7 +2735,7 @@ SWIGINTERN VALUE _wrap_new_File(int nargs, VALUE *args, VALUE self) {
2708
2735
  _v = SWIG_CheckState(res);
2709
2736
  }
2710
2737
  if (_v) {
2711
- return _wrap_new_File__SWIG_1(nargs, args, self);
2738
+ return _wrap_new_File__SWIG_2(nargs, args, self);
2712
2739
  }
2713
2740
  }
2714
2741
  }
@@ -2727,14 +2754,40 @@ SWIGINTERN VALUE _wrap_new_File(int nargs, VALUE *args, VALUE self) {
2727
2754
  _v = SWIG_CheckState(res);
2728
2755
  }
2729
2756
  if (_v) {
2730
- return _wrap_new_File__SWIG_0(nargs, args, self);
2757
+ return _wrap_new_File__SWIG_1(nargs, args, self);
2758
+ }
2759
+ }
2760
+ }
2761
+ }
2762
+ if (argc == 4) {
2763
+ int _v = 0;
2764
+ int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
2765
+ _v = SWIG_CheckState(res);
2766
+ if (_v) {
2767
+ {
2768
+ int res = SWIG_AsVal_bool(argv[1], NULL);
2769
+ _v = SWIG_CheckState(res);
2770
+ }
2771
+ if (_v) {
2772
+ {
2773
+ int res = SWIG_AsVal_int(argv[2], NULL);
2774
+ _v = SWIG_CheckState(res);
2775
+ }
2776
+ if (_v) {
2777
+ void *vptr = 0;
2778
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_TagLib__ID3v2__FrameFactory, 0);
2779
+ _v = SWIG_CheckState(res);
2780
+ if (_v) {
2781
+ return _wrap_new_File__SWIG_0(nargs, args, self);
2782
+ }
2731
2783
  }
2732
2784
  }
2733
2785
  }
2734
2786
  }
2735
2787
 
2736
2788
  fail:
2737
- Ruby_Format_OverloadedError( argc, 3, "File.new",
2789
+ Ruby_Format_OverloadedError( argc, 4, "File.new",
2790
+ " File.new(TagLib::FileName file, bool readProperties, TagLib::RIFF::AIFF::Properties::ReadStyle propertiesStyle, TagLib::ID3v2::FrameFactory *frameFactory)\n"
2738
2791
  " File.new(TagLib::FileName file, bool readProperties, TagLib::RIFF::AIFF::Properties::ReadStyle propertiesStyle)\n"
2739
2792
  " File.new(TagLib::FileName file, bool readProperties)\n"
2740
2793
  " File.new(TagLib::FileName file)\n");
@@ -2792,7 +2845,7 @@ fail:
2792
2845
 
2793
2846
 
2794
2847
  SWIGINTERN VALUE
2795
- _wrap_File_save(int argc, VALUE *argv, VALUE self) {
2848
+ _wrap_File_save__SWIG_0(int argc, VALUE *argv, VALUE self) {
2796
2849
  TagLib::RIFF::AIFF::File *arg1 = (TagLib::RIFF::AIFF::File *) 0 ;
2797
2850
  void *argp1 = 0 ;
2798
2851
  int res1 = 0 ;
@@ -2815,6 +2868,88 @@ fail:
2815
2868
  }
2816
2869
 
2817
2870
 
2871
+ SWIGINTERN VALUE
2872
+ _wrap_File_save__SWIG_1(int argc, VALUE *argv, VALUE self) {
2873
+ TagLib::RIFF::AIFF::File *arg1 = (TagLib::RIFF::AIFF::File *) 0 ;
2874
+ TagLib::ID3v2::Version arg2 ;
2875
+ void *argp1 = 0 ;
2876
+ int res1 = 0 ;
2877
+ void *argp2 ;
2878
+ int res2 = 0 ;
2879
+ bool result;
2880
+ VALUE vresult = Qnil;
2881
+
2882
+ if ((argc < 1) || (argc > 1)) {
2883
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
2884
+ }
2885
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_TagLib__RIFF__AIFF__File, 0 | 0 );
2886
+ if (!SWIG_IsOK(res1)) {
2887
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::RIFF::AIFF::File *","save", 1, self ));
2888
+ }
2889
+ arg1 = reinterpret_cast< TagLib::RIFF::AIFF::File * >(argp1);
2890
+ {
2891
+ res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_TagLib__ID3v2__Version, 0 );
2892
+ if (!SWIG_IsOK(res2)) {
2893
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "TagLib::ID3v2::Version","save", 2, argv[0] ));
2894
+ }
2895
+ if (!argp2) {
2896
+ SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "TagLib::ID3v2::Version","save", 2, argv[0]));
2897
+ } else {
2898
+ arg2 = *(reinterpret_cast< TagLib::ID3v2::Version * >(argp2));
2899
+ }
2900
+ }
2901
+ result = (bool)(arg1)->save(arg2);
2902
+ vresult = SWIG_From_bool(static_cast< bool >(result));
2903
+ return vresult;
2904
+ fail:
2905
+ return Qnil;
2906
+ }
2907
+
2908
+
2909
+ SWIGINTERN VALUE _wrap_File_save(int nargs, VALUE *args, VALUE self) {
2910
+ int argc;
2911
+ VALUE argv[3];
2912
+ int ii;
2913
+
2914
+ argc = nargs + 1;
2915
+ argv[0] = self;
2916
+ if (argc > 3) SWIG_fail;
2917
+ for (ii = 1; (ii < argc); ++ii) {
2918
+ argv[ii] = args[ii-1];
2919
+ }
2920
+ if (argc == 1) {
2921
+ int _v = 0;
2922
+ void *vptr = 0;
2923
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__RIFF__AIFF__File, 0);
2924
+ _v = SWIG_CheckState(res);
2925
+ if (_v) {
2926
+ return _wrap_File_save__SWIG_0(nargs, args, self);
2927
+ }
2928
+ }
2929
+ if (argc == 2) {
2930
+ int _v = 0;
2931
+ void *vptr = 0;
2932
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__RIFF__AIFF__File, 0);
2933
+ _v = SWIG_CheckState(res);
2934
+ if (_v) {
2935
+ void *vptr = 0;
2936
+ int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_TagLib__ID3v2__Version, SWIG_POINTER_NO_NULL);
2937
+ _v = SWIG_CheckState(res);
2938
+ if (_v) {
2939
+ return _wrap_File_save__SWIG_1(nargs, args, self);
2940
+ }
2941
+ }
2942
+ }
2943
+
2944
+ fail:
2945
+ Ruby_Format_OverloadedError( argc, 3, "File.save",
2946
+ " bool File.save()\n"
2947
+ " bool File.save(TagLib::ID3v2::Version version)\n");
2948
+
2949
+ return Qnil;
2950
+ }
2951
+
2952
+
2818
2953
  SWIGINTERN VALUE
2819
2954
  _wrap_File_id3v2_tagq___(int argc, VALUE *argv, VALUE self) {
2820
2955
  TagLib::RIFF::AIFF::File *arg1 = (TagLib::RIFF::AIFF::File *) 0 ;
@@ -2866,11 +3001,25 @@ fail:
2866
3001
  static void *_p_TagLib__RIFF__AIFF__PropertiesTo_p_TagLib__AudioProperties(void *x, int *SWIGUNUSEDPARM(newmemory)) {
2867
3002
  return (void *)((TagLib::AudioProperties *) ((TagLib::RIFF::AIFF::Properties *) x));
2868
3003
  }
3004
+ static void *_p_TagLib__RIFF__AIFF__FileTo_p_TagLib__File(void *x, int *SWIGUNUSEDPARM(newmemory)) {
3005
+ return (void *)((TagLib::File *) (TagLib::RIFF::File *) ((TagLib::RIFF::AIFF::File *) x));
3006
+ }
3007
+ static void *_p_TagLib__RIFF__FileTo_p_TagLib__File(void *x, int *SWIGUNUSEDPARM(newmemory)) {
3008
+ return (void *)((TagLib::File *) ((TagLib::RIFF::File *) x));
3009
+ }
3010
+ static void *_p_TagLib__RIFF__AIFF__FileTo_p_TagLib__RIFF__File(void *x, int *SWIGUNUSEDPARM(newmemory)) {
3011
+ return (void *)((TagLib::RIFF::File *) ((TagLib::RIFF::AIFF::File *) x));
3012
+ }
2869
3013
  static swig_type_info _swigt__p_TagLib__AudioProperties = {"_p_TagLib__AudioProperties", "TagLib::AudioProperties *", 0, 0, (void*)0, 0};
3014
+ static swig_type_info _swigt__p_TagLib__File = {"_p_TagLib__File", "TagLib::File *", 0, 0, (void*)0, 0};
3015
+ static swig_type_info _swigt__p_TagLib__ID3v2__FrameFactory = {"_p_TagLib__ID3v2__FrameFactory", "TagLib::ID3v2::FrameFactory *", 0, 0, (void*)0, 0};
2870
3016
  static swig_type_info _swigt__p_TagLib__ID3v2__Tag = {"_p_TagLib__ID3v2__Tag", "TagLib::ID3v2::Tag *", 0, 0, (void*)0, 0};
3017
+ static swig_type_info _swigt__p_TagLib__ID3v2__Version = {"_p_TagLib__ID3v2__Version", "TagLib::ID3v2::Version *", 0, 0, (void*)0, 0};
2871
3018
  static swig_type_info _swigt__p_TagLib__RIFF__AIFF__File = {"_p_TagLib__RIFF__AIFF__File", "TagLib::RIFF::AIFF::File *", 0, 0, (void*)0, 0};
2872
3019
  static swig_type_info _swigt__p_TagLib__RIFF__AIFF__Properties = {"_p_TagLib__RIFF__AIFF__Properties", "TagLib::RIFF::AIFF::Properties *", 0, 0, (void*)0, 0};
3020
+ static swig_type_info _swigt__p_TagLib__RIFF__File = {"_p_TagLib__RIFF__File", "TagLib::RIFF::File *", 0, 0, (void*)0, 0};
2873
3021
  static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
3022
+ static swig_type_info _swigt__p_long_long = {"_p_long_long", "TagLib::offset_t *|long long *", 0, 0, (void*)0, 0};
2874
3023
  static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "TagLib::uchar *|unsigned char *", 0, 0, (void*)0, 0};
2875
3024
  static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "TagLib::uint *|unsigned int *", 0, 0, (void*)0, 0};
2876
3025
  static swig_type_info _swigt__p_unsigned_long = {"_p_unsigned_long", "TagLib::ulong *|unsigned long *", 0, 0, (void*)0, 0};
@@ -2878,10 +3027,15 @@ static swig_type_info _swigt__p_wchar_t = {"_p_wchar_t", "TagLib::wchar *|wchar_
2878
3027
 
2879
3028
  static swig_type_info *swig_type_initial[] = {
2880
3029
  &_swigt__p_TagLib__AudioProperties,
3030
+ &_swigt__p_TagLib__File,
3031
+ &_swigt__p_TagLib__ID3v2__FrameFactory,
2881
3032
  &_swigt__p_TagLib__ID3v2__Tag,
3033
+ &_swigt__p_TagLib__ID3v2__Version,
2882
3034
  &_swigt__p_TagLib__RIFF__AIFF__File,
2883
3035
  &_swigt__p_TagLib__RIFF__AIFF__Properties,
3036
+ &_swigt__p_TagLib__RIFF__File,
2884
3037
  &_swigt__p_char,
3038
+ &_swigt__p_long_long,
2885
3039
  &_swigt__p_unsigned_char,
2886
3040
  &_swigt__p_unsigned_int,
2887
3041
  &_swigt__p_unsigned_long,
@@ -2889,10 +3043,15 @@ static swig_type_info *swig_type_initial[] = {
2889
3043
  };
2890
3044
 
2891
3045
  static swig_cast_info _swigc__p_TagLib__AudioProperties[] = { {&_swigt__p_TagLib__AudioProperties, 0, 0, 0}, {&_swigt__p_TagLib__RIFF__AIFF__Properties, _p_TagLib__RIFF__AIFF__PropertiesTo_p_TagLib__AudioProperties, 0, 0},{0, 0, 0, 0}};
3046
+ static swig_cast_info _swigc__p_TagLib__File[] = { {&_swigt__p_TagLib__File, 0, 0, 0}, {&_swigt__p_TagLib__RIFF__AIFF__File, _p_TagLib__RIFF__AIFF__FileTo_p_TagLib__File, 0, 0}, {&_swigt__p_TagLib__RIFF__File, _p_TagLib__RIFF__FileTo_p_TagLib__File, 0, 0},{0, 0, 0, 0}};
3047
+ static swig_cast_info _swigc__p_TagLib__ID3v2__FrameFactory[] = { {&_swigt__p_TagLib__ID3v2__FrameFactory, 0, 0, 0},{0, 0, 0, 0}};
2892
3048
  static swig_cast_info _swigc__p_TagLib__ID3v2__Tag[] = { {&_swigt__p_TagLib__ID3v2__Tag, 0, 0, 0},{0, 0, 0, 0}};
3049
+ static swig_cast_info _swigc__p_TagLib__ID3v2__Version[] = { {&_swigt__p_TagLib__ID3v2__Version, 0, 0, 0},{0, 0, 0, 0}};
2893
3050
  static swig_cast_info _swigc__p_TagLib__RIFF__AIFF__File[] = { {&_swigt__p_TagLib__RIFF__AIFF__File, 0, 0, 0},{0, 0, 0, 0}};
2894
3051
  static swig_cast_info _swigc__p_TagLib__RIFF__AIFF__Properties[] = { {&_swigt__p_TagLib__RIFF__AIFF__Properties, 0, 0, 0},{0, 0, 0, 0}};
3052
+ static swig_cast_info _swigc__p_TagLib__RIFF__File[] = { {&_swigt__p_TagLib__RIFF__File, 0, 0, 0}, {&_swigt__p_TagLib__RIFF__AIFF__File, _p_TagLib__RIFF__AIFF__FileTo_p_TagLib__RIFF__File, 0, 0},{0, 0, 0, 0}};
2895
3053
  static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
3054
+ static swig_cast_info _swigc__p_long_long[] = { {&_swigt__p_long_long, 0, 0, 0},{0, 0, 0, 0}};
2896
3055
  static swig_cast_info _swigc__p_unsigned_char[] = { {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}};
2897
3056
  static swig_cast_info _swigc__p_unsigned_int[] = { {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}};
2898
3057
  static swig_cast_info _swigc__p_unsigned_long[] = { {&_swigt__p_unsigned_long, 0, 0, 0},{0, 0, 0, 0}};
@@ -2900,10 +3059,15 @@ static swig_cast_info _swigc__p_wchar_t[] = { {&_swigt__p_wchar_t, 0, 0, 0},{0,
2900
3059
 
2901
3060
  static swig_cast_info *swig_cast_initial[] = {
2902
3061
  _swigc__p_TagLib__AudioProperties,
3062
+ _swigc__p_TagLib__File,
3063
+ _swigc__p_TagLib__ID3v2__FrameFactory,
2903
3064
  _swigc__p_TagLib__ID3v2__Tag,
3065
+ _swigc__p_TagLib__ID3v2__Version,
2904
3066
  _swigc__p_TagLib__RIFF__AIFF__File,
2905
3067
  _swigc__p_TagLib__RIFF__AIFF__Properties,
3068
+ _swigc__p_TagLib__RIFF__File,
2906
3069
  _swigc__p_char,
3070
+ _swigc__p_long_long,
2907
3071
  _swigc__p_unsigned_char,
2908
3072
  _swigc__p_unsigned_int,
2909
3073
  _swigc__p_unsigned_long,
@@ -3173,7 +3337,6 @@ SWIGEXPORT void Init_taglib_aiff(void) {
3173
3337
  SWIG_TypeClientData(SWIGTYPE_p_TagLib__RIFF__AIFF__Properties, (void *) &SwigClassProperties);
3174
3338
  rb_define_alloc_func(SwigClassProperties.klass, _wrap_Properties_allocate);
3175
3339
  rb_define_method(SwigClassProperties.klass, "initialize", VALUEFUNC(_wrap_new_Properties), -1);
3176
- rb_define_method(SwigClassProperties.klass, "length_in_seconds", VALUEFUNC(_wrap_Properties_length_in_seconds), -1);
3177
3340
  rb_define_method(SwigClassProperties.klass, "length_in_milliseconds", VALUEFUNC(_wrap_Properties_length_in_milliseconds), -1);
3178
3341
  rb_define_method(SwigClassProperties.klass, "bitrate", VALUEFUNC(_wrap_Properties_bitrate), -1);
3179
3342
  rb_define_method(SwigClassProperties.klass, "sample_rate", VALUEFUNC(_wrap_Properties_sample_rate), -1);