taglib-ruby 1.1.2 → 2.0.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.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -0
- data/CHANGELOG.md +22 -0
- data/README.md +16 -12
- data/docs/taglib/mpeg.rb +1 -9
- data/ext/extconf_common.rb +21 -12
- data/ext/taglib_aiff/taglib_aiff.i +5 -0
- data/ext/taglib_aiff/taglib_aiff_wrap.cxx +327 -111
- data/ext/taglib_base/includes.i +14 -14
- data/ext/taglib_base/taglib_base.i +37 -4
- data/ext/taglib_base/taglib_base_wrap.cxx +414 -422
- data/ext/taglib_flac/taglib_flac.i +8 -3
- data/ext/taglib_flac/taglib_flac_wrap.cxx +356 -406
- data/ext/taglib_flac_picture/taglib_flac_picture.i +4 -0
- data/ext/taglib_flac_picture/taglib_flac_picture_wrap.cxx +229 -122
- data/ext/taglib_id3v1/taglib_id3v1_wrap.cxx +196 -102
- data/ext/taglib_id3v2/taglib_id3v2.i +5 -0
- data/ext/taglib_id3v2/taglib_id3v2_wrap.cxx +727 -568
- data/ext/taglib_mp4/taglib_mp4.i +22 -18
- data/ext/taglib_mp4/taglib_mp4_wrap.cxx +2141 -1493
- data/ext/taglib_mpeg/taglib_mpeg.i +6 -0
- data/ext/taglib_mpeg/taglib_mpeg_wrap.cxx +546 -379
- data/ext/taglib_ogg/taglib_ogg.i +0 -2
- data/ext/taglib_ogg/taglib_ogg_wrap.cxx +162 -107
- data/ext/taglib_vorbis/taglib_vorbis.i +1 -0
- data/ext/taglib_vorbis/taglib_vorbis_wrap.cxx +141 -109
- data/ext/taglib_wav/taglib_wav.i +6 -2
- data/ext/taglib_wav/taglib_wav_wrap.cxx +290 -147
- data/lib/taglib/version.rb +3 -3
- data/taglib-ruby.gemspec +1 -0
- data/tasks/ext.rake +23 -39
- data/tasks/swig.rake +14 -4
- data/test/id3v2_write_test.rb +1 -1
- data/test/wav_examples_test.rb +1 -1
- data/test/wav_file_test.rb +1 -1
- data/test/wav_file_write_test.rb +6 -6
- metadata +4 -3
@@ -1,45 +1,17 @@
|
|
1
1
|
/* ----------------------------------------------------------------------------
|
2
|
-
* This file was automatically generated by SWIG (
|
3
|
-
* Version 4.
|
2
|
+
* This file was automatically generated by SWIG (https://www.swig.org).
|
3
|
+
* Version 4.1.1
|
4
4
|
*
|
5
|
-
*
|
6
|
-
*
|
7
|
-
* changes to this file unless you know what you are doing--modify the SWIG
|
8
|
-
* interface file instead.
|
5
|
+
* Do not make changes to this file unless you know what you are doing - modify
|
6
|
+
* the SWIG interface file instead.
|
9
7
|
* ----------------------------------------------------------------------------- */
|
10
8
|
|
11
9
|
static void free_taglib_vorbis_file(void *ptr);
|
12
10
|
|
13
11
|
|
14
12
|
|
15
|
-
#
|
13
|
+
#define SWIG_VERSION 0x040101
|
16
14
|
#define SWIGRUBY
|
17
|
-
#endif
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
#ifdef __cplusplus
|
22
|
-
/* SwigValueWrapper is described in swig.swg */
|
23
|
-
template<typename T> class SwigValueWrapper {
|
24
|
-
struct SwigMovePointer {
|
25
|
-
T *ptr;
|
26
|
-
SwigMovePointer(T *p) : ptr(p) { }
|
27
|
-
~SwigMovePointer() { delete ptr; }
|
28
|
-
SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
|
29
|
-
} pointer;
|
30
|
-
SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
|
31
|
-
SwigValueWrapper(const SwigValueWrapper<T>& rhs);
|
32
|
-
public:
|
33
|
-
SwigValueWrapper() : pointer(0) { }
|
34
|
-
SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
|
35
|
-
operator T&() const { return *pointer.ptr; }
|
36
|
-
T *operator&() { return pointer.ptr; }
|
37
|
-
};
|
38
|
-
|
39
|
-
template <typename T> T SwigValueInit() {
|
40
|
-
return T();
|
41
|
-
}
|
42
|
-
#endif
|
43
15
|
|
44
16
|
/* -----------------------------------------------------------------------------
|
45
17
|
* This section contains generic SWIG labels for method/variable
|
@@ -335,6 +307,8 @@ template <typename T> T SwigValueInit() {
|
|
335
307
|
#define SWIG_POINTER_DISOWN 0x1
|
336
308
|
#define SWIG_CAST_NEW_MEMORY 0x2
|
337
309
|
#define SWIG_POINTER_NO_NULL 0x4
|
310
|
+
#define SWIG_POINTER_CLEAR 0x8
|
311
|
+
#define SWIG_POINTER_RELEASE (SWIG_POINTER_CLEAR | SWIG_POINTER_DISOWN)
|
338
312
|
|
339
313
|
/* Flags for new pointer objects */
|
340
314
|
#define SWIG_POINTER_OWN 0x1
|
@@ -406,7 +380,7 @@ template <typename T> T SwigValueInit() {
|
|
406
380
|
SWIG errors code.
|
407
381
|
|
408
382
|
Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
|
409
|
-
allows
|
383
|
+
allows returning the 'cast rank', for example, if you have this
|
410
384
|
|
411
385
|
int food(double)
|
412
386
|
int fooi(int);
|
@@ -420,7 +394,13 @@ template <typename T> T SwigValueInit() {
|
|
420
394
|
*/
|
421
395
|
|
422
396
|
#define SWIG_OK (0)
|
397
|
+
/* Runtime errors are < 0 */
|
423
398
|
#define SWIG_ERROR (-1)
|
399
|
+
/* Errors in range -1 to -99 are in swigerrors.swg (errors for all languages including those not using the runtime) */
|
400
|
+
/* Errors in range -100 to -199 are language specific errors defined in *errors.swg */
|
401
|
+
/* Errors < -200 are generic runtime specific errors */
|
402
|
+
#define SWIG_ERROR_RELEASE_NOT_OWNED (-200)
|
403
|
+
|
424
404
|
#define SWIG_IsOK(r) (r >= 0)
|
425
405
|
#define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError)
|
426
406
|
|
@@ -435,7 +415,7 @@ template <typename T> T SwigValueInit() {
|
|
435
415
|
#define SWIG_OLDOBJ (SWIG_OK)
|
436
416
|
#define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK)
|
437
417
|
#define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK)
|
438
|
-
/* Check, add and del mask methods */
|
418
|
+
/* Check, add and del object mask methods */
|
439
419
|
#define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
|
440
420
|
#define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
|
441
421
|
#define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
|
@@ -581,7 +561,7 @@ SWIG_TypeCheck(const char *c, swig_type_info *ty) {
|
|
581
561
|
Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
|
582
562
|
*/
|
583
563
|
SWIGRUNTIME swig_cast_info *
|
584
|
-
SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
|
564
|
+
SWIG_TypeCheckStruct(const swig_type_info *from, swig_type_info *ty) {
|
585
565
|
if (ty) {
|
586
566
|
swig_cast_info *iter = ty->cast;
|
587
567
|
while (iter) {
|
@@ -641,9 +621,9 @@ SWIG_TypeName(const swig_type_info *ty) {
|
|
641
621
|
SWIGRUNTIME const char *
|
642
622
|
SWIG_TypePrettyName(const swig_type_info *type) {
|
643
623
|
/* The "str" field contains the equivalent pretty names of the
|
644
|
-
type, separated by vertical-bar characters.
|
645
|
-
|
646
|
-
|
624
|
+
type, separated by vertical-bar characters. Choose the last
|
625
|
+
name. It should be the most specific; a fully resolved name
|
626
|
+
but not necessarily with default template parameters expanded. */
|
647
627
|
if (!type) return NULL;
|
648
628
|
if (type->str != NULL) {
|
649
629
|
const char *last_name = type->str;
|
@@ -863,7 +843,7 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
|
|
863
843
|
}
|
864
844
|
#endif
|
865
845
|
|
866
|
-
/*
|
846
|
+
/* SWIG Errors applicable to all language modules, values are reserved from -1 to -99 */
|
867
847
|
#define SWIG_UnknownError -1
|
868
848
|
#define SWIG_IOError -2
|
869
849
|
#define SWIG_RuntimeError -3
|
@@ -879,9 +859,25 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
|
|
879
859
|
#define SWIG_NullReferenceError -13
|
880
860
|
|
881
861
|
|
862
|
+
#if __GNUC__ >= 7
|
863
|
+
#pragma GCC diagnostic push
|
864
|
+
#if defined(__cplusplus)
|
865
|
+
#pragma GCC diagnostic ignored "-Wregister"
|
866
|
+
#if __GNUC__ >= 10
|
867
|
+
#pragma GCC diagnostic ignored "-Wvolatile"
|
868
|
+
#if __GNUC__ >= 11
|
869
|
+
#pragma GCC diagnostic ignored "-Wdeprecated-enum-enum-conversion"
|
870
|
+
#endif
|
871
|
+
#endif
|
872
|
+
#endif
|
873
|
+
#endif
|
882
874
|
|
883
875
|
#include <ruby.h>
|
884
876
|
|
877
|
+
#if __GNUC__ >= 7
|
878
|
+
#pragma GCC diagnostic pop
|
879
|
+
#endif
|
880
|
+
|
885
881
|
/* Ruby 1.9.1 has a "memoisation optimisation" when compiling with GCC which
|
886
882
|
* breaks using rb_intern as an lvalue, as SWIG does. We work around this
|
887
883
|
* issue for now by disabling this.
|
@@ -1661,6 +1657,11 @@ SWIG_Ruby_ConvertPtrAndOwn(VALUE obj, void **ptr, swig_type_info *ty, int flags,
|
|
1661
1657
|
own->own = 0;
|
1662
1658
|
}
|
1663
1659
|
|
1660
|
+
if (((flags & SWIG_POINTER_RELEASE) == SWIG_POINTER_RELEASE)) {
|
1661
|
+
if (!RDATA(obj)->dfree)
|
1662
|
+
return SWIG_ERROR_RELEASE_NOT_OWNED;
|
1663
|
+
}
|
1664
|
+
|
1664
1665
|
/* Check to see if the input object is giving up ownership
|
1665
1666
|
of the underlying C struct or C++ object. If so then we
|
1666
1667
|
need to reset the destructor since the Ruby object no
|
@@ -1672,7 +1673,7 @@ SWIG_Ruby_ConvertPtrAndOwn(VALUE obj, void **ptr, swig_type_info *ty, int flags,
|
|
1672
1673
|
swig_class *sklass = (swig_class *) ty->clientdata;
|
1673
1674
|
track = sklass->trackObjects;
|
1674
1675
|
}
|
1675
|
-
|
1676
|
+
|
1676
1677
|
if (track) {
|
1677
1678
|
/* We are tracking objects for this class. Thus we change the destructor
|
1678
1679
|
* to SWIG_RubyRemoveTracking. This allows us to
|
@@ -1686,6 +1687,10 @@ SWIG_Ruby_ConvertPtrAndOwn(VALUE obj, void **ptr, swig_type_info *ty, int flags,
|
|
1686
1687
|
}
|
1687
1688
|
}
|
1688
1689
|
|
1690
|
+
if (flags & SWIG_POINTER_CLEAR) {
|
1691
|
+
DATA_PTR(obj) = 0;
|
1692
|
+
}
|
1693
|
+
|
1689
1694
|
/* Do type-checking if type info was provided */
|
1690
1695
|
if (ty) {
|
1691
1696
|
if (ty->clientdata) {
|
@@ -1793,6 +1798,7 @@ SWIG_Ruby_SetModule(swig_module_info *pointer)
|
|
1793
1798
|
{
|
1794
1799
|
/* register a new class */
|
1795
1800
|
VALUE cl = rb_define_class("swig_runtime_data", rb_cObject);
|
1801
|
+
rb_undef_alloc_func(cl);
|
1796
1802
|
/* create and store the structure pointer to a global variable */
|
1797
1803
|
swig_runtime_data_type_pointer = Data_Wrap_Struct(cl, 0, 0, pointer);
|
1798
1804
|
rb_define_readonly_variable("$swig_runtime_data_type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, &swig_runtime_data_type_pointer);
|
@@ -1823,7 +1829,7 @@ int SWIG_Ruby_arity( VALUE proc, int minimal )
|
|
1823
1829
|
{
|
1824
1830
|
if ( rb_respond_to( proc, swig_arity_id ) )
|
1825
1831
|
{
|
1826
|
-
VALUE num =
|
1832
|
+
VALUE num = rb_funcall2( proc, swig_arity_id, 0, 0 );
|
1827
1833
|
int arity = NUM2INT(num);
|
1828
1834
|
if ( arity < 0 && (arity+1) < -minimal ) return 1;
|
1829
1835
|
if ( arity == minimal ) return 1;
|
@@ -1841,7 +1847,7 @@ int SWIG_Ruby_arity( VALUE proc, int minimal )
|
|
1841
1847
|
|
1842
1848
|
#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
|
1843
1849
|
|
1844
|
-
#define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; }
|
1850
|
+
#define SWIG_contract_assert(expr, msg) do { if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } } while (0)
|
1845
1851
|
|
1846
1852
|
|
1847
1853
|
|
@@ -1856,12 +1862,13 @@ int SWIG_Ruby_arity( VALUE proc, int minimal )
|
|
1856
1862
|
#define SWIGTYPE_p_TagLib__Vorbis__File swig_types[6]
|
1857
1863
|
#define SWIGTYPE_p_TagLib__Vorbis__Properties swig_types[7]
|
1858
1864
|
#define SWIGTYPE_p_char swig_types[8]
|
1859
|
-
#define
|
1860
|
-
#define
|
1861
|
-
#define
|
1862
|
-
#define
|
1863
|
-
|
1864
|
-
static
|
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};
|
1865
1872
|
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
|
1866
1873
|
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
|
1867
1874
|
|
@@ -1872,12 +1879,56 @@ static swig_module_info swig_module = {swig_types, 13, 0, 0, 0, 0};
|
|
1872
1879
|
|
1873
1880
|
static VALUE mVorbis;
|
1874
1881
|
|
1875
|
-
#
|
1876
|
-
#
|
1882
|
+
#ifdef __cplusplus
|
1883
|
+
#include <utility>
|
1884
|
+
/* SwigValueWrapper is described in swig.swg */
|
1885
|
+
template<typename T> class SwigValueWrapper {
|
1886
|
+
struct SwigSmartPointer {
|
1887
|
+
T *ptr;
|
1888
|
+
SwigSmartPointer(T *p) : ptr(p) { }
|
1889
|
+
~SwigSmartPointer() { delete ptr; }
|
1890
|
+
SwigSmartPointer& operator=(SwigSmartPointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
|
1891
|
+
void reset(T *p) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = p; }
|
1892
|
+
} pointer;
|
1893
|
+
SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
|
1894
|
+
SwigValueWrapper(const SwigValueWrapper<T>& rhs);
|
1895
|
+
public:
|
1896
|
+
SwigValueWrapper() : pointer(0) { }
|
1897
|
+
SwigValueWrapper& operator=(const T& t) { SwigSmartPointer tmp(new T(t)); pointer = tmp; return *this; }
|
1898
|
+
#if __cplusplus >=201103L
|
1899
|
+
SwigValueWrapper& operator=(T&& t) { SwigSmartPointer tmp(new T(std::move(t))); pointer = tmp; return *this; }
|
1900
|
+
operator T&&() const { return std::move(*pointer.ptr); }
|
1901
|
+
#else
|
1902
|
+
operator T&() const { return *pointer.ptr; }
|
1903
|
+
#endif
|
1904
|
+
T *operator&() const { return pointer.ptr; }
|
1905
|
+
static void reset(SwigValueWrapper& t, T *p) { t.pointer.reset(p); }
|
1906
|
+
};
|
1877
1907
|
|
1908
|
+
/*
|
1909
|
+
* SwigValueInit() is a generic initialisation solution as the following approach:
|
1910
|
+
*
|
1911
|
+
* T c_result = T();
|
1912
|
+
*
|
1913
|
+
* doesn't compile for all types for example:
|
1914
|
+
*
|
1915
|
+
* unsigned int c_result = unsigned int();
|
1916
|
+
*/
|
1917
|
+
template <typename T> T SwigValueInit() {
|
1918
|
+
return T();
|
1919
|
+
}
|
1878
1920
|
|
1879
|
-
#
|
1880
|
-
#define
|
1921
|
+
#if __cplusplus >=201103L
|
1922
|
+
# define SWIG_STD_MOVE(OBJ) std::move(OBJ)
|
1923
|
+
#else
|
1924
|
+
# define SWIG_STD_MOVE(OBJ) OBJ
|
1925
|
+
#endif
|
1926
|
+
|
1927
|
+
#endif
|
1928
|
+
|
1929
|
+
|
1930
|
+
#define SWIG_RUBY_THREAD_BEGIN_BLOCK
|
1931
|
+
#define SWIG_RUBY_THREAD_END_BLOCK
|
1881
1932
|
|
1882
1933
|
|
1883
1934
|
#define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a))
|
@@ -1910,34 +1961,26 @@ static VALUE mVorbis;
|
|
1910
1961
|
#endif
|
1911
1962
|
|
1912
1963
|
VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) {
|
1913
|
-
|
1914
|
-
return Qnil;
|
1915
|
-
} else {
|
1916
|
-
return rb_str_new(byteVector.data(), byteVector.size());
|
1917
|
-
}
|
1964
|
+
return rb_str_new(byteVector.data(), byteVector.size());
|
1918
1965
|
}
|
1919
1966
|
|
1920
1967
|
TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
|
1921
1968
|
if (NIL_P(s)) {
|
1922
|
-
return TagLib::ByteVector
|
1969
|
+
return TagLib::ByteVector();
|
1923
1970
|
} else {
|
1924
1971
|
return TagLib::ByteVector(RSTRING_PTR(StringValue(s)), RSTRING_LEN(s));
|
1925
1972
|
}
|
1926
1973
|
}
|
1927
1974
|
|
1928
1975
|
VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
|
1929
|
-
|
1930
|
-
|
1931
|
-
|
1932
|
-
VALUE result = rb_str_new2(string.toCString(true));
|
1933
|
-
ASSOCIATE_UTF8_ENCODING(result);
|
1934
|
-
return result;
|
1935
|
-
}
|
1976
|
+
VALUE result = rb_str_new2(string.toCString(true));
|
1977
|
+
ASSOCIATE_UTF8_ENCODING(result);
|
1978
|
+
return result;
|
1936
1979
|
}
|
1937
1980
|
|
1938
1981
|
TagLib::String ruby_string_to_taglib_string(VALUE s) {
|
1939
1982
|
if (NIL_P(s)) {
|
1940
|
-
return TagLib::String
|
1983
|
+
return TagLib::String();
|
1941
1984
|
} else {
|
1942
1985
|
return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(StringValue(s))), TagLib::String::UTF8);
|
1943
1986
|
}
|
@@ -2026,6 +2069,13 @@ TagLib::FileName ruby_string_to_taglib_filename(VALUE s) {
|
|
2026
2069
|
#endif
|
2027
2070
|
}
|
2028
2071
|
|
2072
|
+
VALUE taglib_offset_t_to_ruby_int(TagLib::offset_t off) {
|
2073
|
+
#ifdef _WIN32
|
2074
|
+
return LL2NUM(off);
|
2075
|
+
#else
|
2076
|
+
return OFFT2NUM(off);
|
2077
|
+
#endif
|
2078
|
+
}
|
2029
2079
|
|
2030
2080
|
|
2031
2081
|
#include <limits.h>
|
@@ -2045,7 +2095,7 @@ SWIG_ruby_failed(VALUE SWIGUNUSEDPARM(arg1), VALUE SWIGUNUSEDPARM(arg2))
|
|
2045
2095
|
}
|
2046
2096
|
|
2047
2097
|
|
2048
|
-
/*@SWIG:/
|
2098
|
+
/*@SWIG:/swig/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
2049
2099
|
SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE arg)
|
2050
2100
|
{
|
2051
2101
|
VALUE *args = (VALUE *)arg;
|
@@ -2286,7 +2336,7 @@ SWIGINTERN VALUE _wrap_new_Properties(int nargs, VALUE *args, VALUE self) {
|
|
2286
2336
|
argv[ii] = args[ii];
|
2287
2337
|
}
|
2288
2338
|
if (argc == 1) {
|
2289
|
-
int _v;
|
2339
|
+
int _v = 0;
|
2290
2340
|
void *vptr = 0;
|
2291
2341
|
int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__Vorbis__File, 0);
|
2292
2342
|
_v = SWIG_CheckState(res);
|
@@ -2295,7 +2345,7 @@ SWIGINTERN VALUE _wrap_new_Properties(int nargs, VALUE *args, VALUE self) {
|
|
2295
2345
|
}
|
2296
2346
|
}
|
2297
2347
|
if (argc == 2) {
|
2298
|
-
int _v;
|
2348
|
+
int _v = 0;
|
2299
2349
|
void *vptr = 0;
|
2300
2350
|
int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_TagLib__Vorbis__File, 0);
|
2301
2351
|
_v = SWIG_CheckState(res);
|
@@ -2326,30 +2376,6 @@ free_TagLib_Vorbis_Properties(void *self) {
|
|
2326
2376
|
delete arg1;
|
2327
2377
|
}
|
2328
2378
|
|
2329
|
-
SWIGINTERN VALUE
|
2330
|
-
_wrap_Properties_length_in_seconds(int argc, VALUE *argv, VALUE self) {
|
2331
|
-
TagLib::Vorbis::Properties *arg1 = (TagLib::Vorbis::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__Vorbis__Properties, 0 | 0 );
|
2341
|
-
if (!SWIG_IsOK(res1)) {
|
2342
|
-
SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "TagLib::Vorbis::Properties const *","lengthInSeconds", 1, self ));
|
2343
|
-
}
|
2344
|
-
arg1 = reinterpret_cast< TagLib::Vorbis::Properties * >(argp1);
|
2345
|
-
result = (int)((TagLib::Vorbis::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
2379
|
SWIGINTERN VALUE
|
2354
2380
|
_wrap_Properties_length_in_milliseconds(int argc, VALUE *argv, VALUE self) {
|
2355
2381
|
TagLib::Vorbis::Properties *arg1 = (TagLib::Vorbis::Properties *) 0 ;
|
@@ -2663,7 +2689,7 @@ SWIGINTERN VALUE _wrap_new_File(int nargs, VALUE *args, VALUE self) {
|
|
2663
2689
|
argv[ii] = args[ii];
|
2664
2690
|
}
|
2665
2691
|
if (argc == 1) {
|
2666
|
-
int _v;
|
2692
|
+
int _v = 0;
|
2667
2693
|
int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
|
2668
2694
|
_v = SWIG_CheckState(res);
|
2669
2695
|
if (_v) {
|
@@ -2671,7 +2697,7 @@ SWIGINTERN VALUE _wrap_new_File(int nargs, VALUE *args, VALUE self) {
|
|
2671
2697
|
}
|
2672
2698
|
}
|
2673
2699
|
if (argc == 2) {
|
2674
|
-
int _v;
|
2700
|
+
int _v = 0;
|
2675
2701
|
int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
|
2676
2702
|
_v = SWIG_CheckState(res);
|
2677
2703
|
if (_v) {
|
@@ -2685,7 +2711,7 @@ SWIGINTERN VALUE _wrap_new_File(int nargs, VALUE *args, VALUE self) {
|
|
2685
2711
|
}
|
2686
2712
|
}
|
2687
2713
|
if (argc == 3) {
|
2688
|
-
int _v;
|
2714
|
+
int _v = 0;
|
2689
2715
|
int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
|
2690
2716
|
_v = SWIG_CheckState(res);
|
2691
2717
|
if (_v) {
|
@@ -2814,26 +2840,27 @@ fail:
|
|
2814
2840
|
static void *_p_TagLib__Vorbis__PropertiesTo_p_TagLib__AudioProperties(void *x, int *SWIGUNUSEDPARM(newmemory)) {
|
2815
2841
|
return (void *)((TagLib::AudioProperties *) ((TagLib::Vorbis::Properties *) x));
|
2816
2842
|
}
|
2817
|
-
static void *_p_TagLib__Vorbis__FileTo_p_TagLib__Ogg__File(void *x, int *SWIGUNUSEDPARM(newmemory)) {
|
2818
|
-
return (void *)((TagLib::Ogg::File *) ((TagLib::Vorbis::File *) x));
|
2819
|
-
}
|
2820
2843
|
static void *_p_TagLib__Ogg__FileTo_p_TagLib__File(void *x, int *SWIGUNUSEDPARM(newmemory)) {
|
2821
2844
|
return (void *)((TagLib::File *) ((TagLib::Ogg::File *) x));
|
2822
2845
|
}
|
2823
2846
|
static void *_p_TagLib__Vorbis__FileTo_p_TagLib__File(void *x, int *SWIGUNUSEDPARM(newmemory)) {
|
2824
2847
|
return (void *)((TagLib::File *) (TagLib::Ogg::File *) ((TagLib::Vorbis::File *) x));
|
2825
2848
|
}
|
2826
|
-
static
|
2827
|
-
|
2849
|
+
static void *_p_TagLib__Vorbis__FileTo_p_TagLib__Ogg__File(void *x, int *SWIGUNUSEDPARM(newmemory)) {
|
2850
|
+
return (void *)((TagLib::Ogg::File *) ((TagLib::Vorbis::File *) x));
|
2851
|
+
}
|
2852
|
+
static swig_type_info _swigt__p_MapT_TagLib__String_TagLib__StringList_t = {"_p_MapT_TagLib__String_TagLib__StringList_t", "TagLib::Ogg::FieldListMap *|Map< TagLib::String,TagLib::StringList > *", 0, 0, (void*)0, 0};
|
2853
|
+
static swig_type_info _swigt__p_TagLib__AudioProperties = {"_p_TagLib__AudioProperties", "TagLib::AudioProperties *", 0, 0, (void*)0, 0};
|
2828
2854
|
static swig_type_info _swigt__p_TagLib__File = {"_p_TagLib__File", "TagLib::File *", 0, 0, (void*)0, 0};
|
2829
|
-
static swig_type_info _swigt__p_TagLib__ListT_TagLib__FLAC__Picture_t = {"_p_TagLib__ListT_TagLib__FLAC__Picture_t", "TagLib::List< TagLib::FLAC::Picture >
|
2855
|
+
static swig_type_info _swigt__p_TagLib__ListT_TagLib__FLAC__Picture_t = {"_p_TagLib__ListT_TagLib__FLAC__Picture_t", "TagLib::FLAC::PictureList *|TagLib::List< TagLib::FLAC::Picture > *", 0, 0, (void*)0, 0};
|
2830
2856
|
static swig_type_info _swigt__p_TagLib__Ogg__File = {"_p_TagLib__Ogg__File", "TagLib::Ogg::File *", 0, 0, (void*)0, 0};
|
2831
2857
|
static swig_type_info _swigt__p_TagLib__Ogg__XiphComment = {"_p_TagLib__Ogg__XiphComment", "TagLib::Ogg::XiphComment *", 0, 0, (void*)0, 0};
|
2832
|
-
static swig_type_info _swigt__p_TagLib__Vorbis__File = {"_p_TagLib__Vorbis__File", "TagLib::Vorbis::File *|TagLib::
|
2833
|
-
static swig_type_info _swigt__p_TagLib__Vorbis__Properties = {"_p_TagLib__Vorbis__Properties", "TagLib::Vorbis::Properties *", 0, 0, (void*)0, 0};
|
2858
|
+
static swig_type_info _swigt__p_TagLib__Vorbis__File = {"_p_TagLib__Vorbis__File", "TagLib::Ogg::Vorbis::File *|TagLib::Vorbis::File *", 0, 0, (void*)0, 0};
|
2859
|
+
static swig_type_info _swigt__p_TagLib__Vorbis__Properties = {"_p_TagLib__Vorbis__Properties", "TagLib::Ogg::Vorbis::Properties *|TagLib::Vorbis::Properties *", 0, 0, (void*)0, 0};
|
2834
2860
|
static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
|
2861
|
+
static swig_type_info _swigt__p_long_long = {"_p_long_long", "TagLib::offset_t *|long long *", 0, 0, (void*)0, 0};
|
2835
2862
|
static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "TagLib::uchar *|unsigned char *", 0, 0, (void*)0, 0};
|
2836
|
-
static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "unsigned int
|
2863
|
+
static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "TagLib::uint *|unsigned int *", 0, 0, (void*)0, 0};
|
2837
2864
|
static swig_type_info _swigt__p_unsigned_long = {"_p_unsigned_long", "TagLib::ulong *|unsigned long *", 0, 0, (void*)0, 0};
|
2838
2865
|
static swig_type_info _swigt__p_wchar_t = {"_p_wchar_t", "TagLib::wchar *|wchar_t *", 0, 0, (void*)0, 0};
|
2839
2866
|
|
@@ -2847,6 +2874,7 @@ static swig_type_info *swig_type_initial[] = {
|
|
2847
2874
|
&_swigt__p_TagLib__Vorbis__File,
|
2848
2875
|
&_swigt__p_TagLib__Vorbis__Properties,
|
2849
2876
|
&_swigt__p_char,
|
2877
|
+
&_swigt__p_long_long,
|
2850
2878
|
&_swigt__p_unsigned_char,
|
2851
2879
|
&_swigt__p_unsigned_int,
|
2852
2880
|
&_swigt__p_unsigned_long,
|
@@ -2855,13 +2883,14 @@ static swig_type_info *swig_type_initial[] = {
|
|
2855
2883
|
|
2856
2884
|
static swig_cast_info _swigc__p_MapT_TagLib__String_TagLib__StringList_t[] = { {&_swigt__p_MapT_TagLib__String_TagLib__StringList_t, 0, 0, 0},{0, 0, 0, 0}};
|
2857
2885
|
static swig_cast_info _swigc__p_TagLib__AudioProperties[] = { {&_swigt__p_TagLib__AudioProperties, 0, 0, 0}, {&_swigt__p_TagLib__Vorbis__Properties, _p_TagLib__Vorbis__PropertiesTo_p_TagLib__AudioProperties, 0, 0},{0, 0, 0, 0}};
|
2858
|
-
static swig_cast_info _swigc__p_TagLib__File[] = { {&
|
2886
|
+
static swig_cast_info _swigc__p_TagLib__File[] = { {&_swigt__p_TagLib__File, 0, 0, 0}, {&_swigt__p_TagLib__Ogg__File, _p_TagLib__Ogg__FileTo_p_TagLib__File, 0, 0}, {&_swigt__p_TagLib__Vorbis__File, _p_TagLib__Vorbis__FileTo_p_TagLib__File, 0, 0},{0, 0, 0, 0}};
|
2859
2887
|
static swig_cast_info _swigc__p_TagLib__ListT_TagLib__FLAC__Picture_t[] = { {&_swigt__p_TagLib__ListT_TagLib__FLAC__Picture_t, 0, 0, 0},{0, 0, 0, 0}};
|
2860
2888
|
static swig_cast_info _swigc__p_TagLib__Ogg__File[] = { {&_swigt__p_TagLib__Ogg__File, 0, 0, 0}, {&_swigt__p_TagLib__Vorbis__File, _p_TagLib__Vorbis__FileTo_p_TagLib__Ogg__File, 0, 0},{0, 0, 0, 0}};
|
2861
2889
|
static swig_cast_info _swigc__p_TagLib__Ogg__XiphComment[] = { {&_swigt__p_TagLib__Ogg__XiphComment, 0, 0, 0},{0, 0, 0, 0}};
|
2862
2890
|
static swig_cast_info _swigc__p_TagLib__Vorbis__File[] = { {&_swigt__p_TagLib__Vorbis__File, 0, 0, 0},{0, 0, 0, 0}};
|
2863
2891
|
static swig_cast_info _swigc__p_TagLib__Vorbis__Properties[] = { {&_swigt__p_TagLib__Vorbis__Properties, 0, 0, 0},{0, 0, 0, 0}};
|
2864
2892
|
static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
|
2893
|
+
static swig_cast_info _swigc__p_long_long[] = { {&_swigt__p_long_long, 0, 0, 0},{0, 0, 0, 0}};
|
2865
2894
|
static swig_cast_info _swigc__p_unsigned_char[] = { {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}};
|
2866
2895
|
static swig_cast_info _swigc__p_unsigned_int[] = { {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}};
|
2867
2896
|
static swig_cast_info _swigc__p_unsigned_long[] = { {&_swigt__p_unsigned_long, 0, 0, 0},{0, 0, 0, 0}};
|
@@ -2877,6 +2906,7 @@ static swig_cast_info *swig_cast_initial[] = {
|
|
2877
2906
|
_swigc__p_TagLib__Vorbis__File,
|
2878
2907
|
_swigc__p_TagLib__Vorbis__Properties,
|
2879
2908
|
_swigc__p_char,
|
2909
|
+
_swigc__p_long_long,
|
2880
2910
|
_swigc__p_unsigned_char,
|
2881
2911
|
_swigc__p_unsigned_int,
|
2882
2912
|
_swigc__p_unsigned_long,
|
@@ -2938,9 +2968,12 @@ extern "C" {
|
|
2938
2968
|
#define SWIGRUNTIME_DEBUG
|
2939
2969
|
#endif
|
2940
2970
|
|
2971
|
+
#ifndef SWIG_INIT_CLIENT_DATA_TYPE
|
2972
|
+
#define SWIG_INIT_CLIENT_DATA_TYPE void *
|
2973
|
+
#endif
|
2941
2974
|
|
2942
2975
|
SWIGRUNTIME void
|
2943
|
-
SWIG_InitializeModule(
|
2976
|
+
SWIG_InitializeModule(SWIG_INIT_CLIENT_DATA_TYPE clientdata) {
|
2944
2977
|
size_t i;
|
2945
2978
|
swig_module_info *module_head, *iter;
|
2946
2979
|
int init;
|
@@ -3145,7 +3178,6 @@ SWIGEXPORT void Init_taglib_vorbis(void) {
|
|
3145
3178
|
SWIG_TypeClientData(SWIGTYPE_p_TagLib__Vorbis__Properties, (void *) &SwigClassProperties);
|
3146
3179
|
rb_define_alloc_func(SwigClassProperties.klass, _wrap_Properties_allocate);
|
3147
3180
|
rb_define_method(SwigClassProperties.klass, "initialize", VALUEFUNC(_wrap_new_Properties), -1);
|
3148
|
-
rb_define_method(SwigClassProperties.klass, "length_in_seconds", VALUEFUNC(_wrap_Properties_length_in_seconds), -1);
|
3149
3181
|
rb_define_method(SwigClassProperties.klass, "length_in_milliseconds", VALUEFUNC(_wrap_Properties_length_in_milliseconds), -1);
|
3150
3182
|
rb_define_method(SwigClassProperties.klass, "bitrate", VALUEFUNC(_wrap_Properties_bitrate), -1);
|
3151
3183
|
rb_define_method(SwigClassProperties.klass, "sample_rate", VALUEFUNC(_wrap_Properties_sample_rate), -1);
|
data/ext/taglib_wav/taglib_wav.i
CHANGED
@@ -4,7 +4,6 @@
|
|
4
4
|
#include <taglib/wavfile.h>
|
5
5
|
#include <taglib/wavproperties.h>
|
6
6
|
#include <taglib/id3v2tag.h>
|
7
|
-
using namespace TagLib::RIFF;
|
8
7
|
%}
|
9
8
|
|
10
9
|
%include "../taglib_base/includes.i"
|
@@ -16,6 +15,9 @@ using namespace TagLib::RIFF;
|
|
16
15
|
%ignore TagLib::RIFF::WAV::Properties::length;
|
17
16
|
%ignore TagLib::RIFF::WAV::Properties::sampleWidth;
|
18
17
|
|
18
|
+
%ignore TagLib::RIFF::File;
|
19
|
+
%include <taglib/rifffile.h>
|
20
|
+
|
19
21
|
%include <taglib/wavproperties.h>
|
20
22
|
|
21
23
|
%freefunc TagLib::RIFF::WAV::File "free_taglib_riff_wav_file";
|
@@ -28,9 +30,11 @@ namespace TagLib {
|
|
28
30
|
|
29
31
|
// Ignore IOStream and all the constructors using it.
|
30
32
|
%ignore IOStream;
|
33
|
+
%ignore TagLib::RIFF::WAV::File::File(IOStream *, bool, Properties::ReadStyle, ID3v2::FrameFactory *f);
|
31
34
|
%ignore TagLib::RIFF::WAV::File::File(IOStream *, bool, Properties::ReadStyle);
|
32
35
|
%ignore TagLib::RIFF::WAV::File::File(IOStream *, bool);
|
33
36
|
%ignore TagLib::RIFF::WAV::File::File(IOStream *);
|
37
|
+
%ignore TagLib::RIFF::WAV::File::isSupported(IOStream *);
|
34
38
|
|
35
39
|
// Ignore the unified property interface.
|
36
40
|
%ignore TagLib::RIFF::WAV::File::properties;
|
@@ -54,7 +58,7 @@ namespace TagLib {
|
|
54
58
|
static void free_taglib_riff_wav_file(void *ptr) {
|
55
59
|
TagLib::RIFF::WAV::File *file = (TagLib::RIFF::WAV::File *) ptr;
|
56
60
|
|
57
|
-
TagLib::ID3v2::Tag *id3v2tag = file->
|
61
|
+
TagLib::ID3v2::Tag *id3v2tag = file->ID3v2Tag();
|
58
62
|
if (id3v2tag) {
|
59
63
|
TagLib::ID3v2::FrameList frames = id3v2tag->frameList();
|
60
64
|
for (TagLib::ID3v2::FrameList::ConstIterator it = frames.begin(); it != frames.end(); it++) {
|