ruby-taglib2 1.01 → 1.02

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. data/ext/ruby-taglib2.cpp +29 -0
  2. data/lib/ruby_taglib2.rb +1 -1
  3. metadata +18 -4
data/ext/ruby-taglib2.cpp CHANGED
@@ -1,3 +1,4 @@
1
+ #include <textidentificationframe.h>
1
2
  #include <attachedpictureframe.h>
2
3
  #include <fileref.h>
3
4
  #include <flacfile.h>
@@ -161,6 +162,32 @@ static VALUE FileInitialize(VALUE self, VALUE path)
161
162
  return Qnil; \
162
163
  }
163
164
 
165
+ #define TextIdentificationAttribute(name, capName) \
166
+ static VALUE FileRead##capName(VALUE self) \
167
+ { \
168
+ GetFileRef \
169
+ GetID3Tag \
170
+ CheckTag(f) \
171
+ if(!tag->frameListMap()["TSRC"].isEmpty()) return TStrToRubyStr(tag->frameListMap()["TSRC"].front()->toString()); \
172
+ else return TStrToRubyStr(""); \
173
+ } \
174
+ static VALUE FileWrite##capName(VALUE self, VALUE arg) \
175
+ { \
176
+ GetFileRef \
177
+ GetID3Tag \
178
+ CheckTag(f) \
179
+ if(!tag->frameListMap()["TSRC"].isEmpty()) \
180
+ { \
181
+ TagLib::List<TagLib::ID3v2::Frame*> frame = tag->frameListMap()["TSRC"]; \
182
+ frame.front()->setText(RubyStrToTStr(StringValue(arg))); \
183
+ } \
184
+ else \
185
+ { \
186
+ TagLib::ID3v2::TextIdentificationFrame *frame = new TagLib::ID3v2::TextIdentificationFrame("TSRC", TagLib::String::Latin1); \
187
+ frame->setText(RubyStrToTStr(StringValue(arg))); \
188
+ tag->addFrame(frame); \
189
+ } \
190
+ }
164
191
 
165
192
  #define StringAttribute(name, capName) \
166
193
  static VALUE FileRead##capName(VALUE self) \
@@ -222,6 +249,7 @@ IntProperty(bitrate, Bitrate)
222
249
  IntProperty(sampleRate, SampleRate)
223
250
  IntProperty(channels, Channels)
224
251
  IntProperty(length, Length)
252
+ TextIdentificationAttribute(isrc,Isrc)
225
253
 
226
254
  ////////////////////////
227
255
  // TagLib2::File#save
@@ -436,6 +464,7 @@ extern "C" void Init_taglib2(void)
436
464
  AttributeMethods(genre, Genre)
437
465
  AttributeMethods(year, Year)
438
466
  AttributeMethods(track, Track)
467
+ AttributeMethods(isrc, Isrc)
439
468
  PropertyMethod(bitrate, Bitrate)
440
469
  PropertyMethod(sampleRate, SampleRate)
441
470
  PropertyMethod(sample_rate, SampleRate)
data/lib/ruby_taglib2.rb CHANGED
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module RubyTaglib2
5
- VERSION = '1.01'
5
+ VERSION = '1.02'
6
6
  end
metadata CHANGED
@@ -1,11 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-taglib2
3
3
  version: !ruby/object:Gem::Version
4
- version: "1.01"
4
+ hash: 11
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 2
9
+ version: "1.02"
5
10
  platform: ruby
6
11
  authors:
7
12
  - Neil Stevens
8
13
  - Saimon Moore
14
+ - Ben Colon
9
15
  autorequire:
10
16
  bindir: bin
11
17
  cert_chain:
@@ -36,21 +42,29 @@ rdoc_options: []
36
42
  require_paths:
37
43
  - lib
38
44
  required_ruby_version: !ruby/object:Gem::Requirement
45
+ none: false
39
46
  requirements:
40
47
  - - ">"
41
48
  - !ruby/object:Gem::Version
49
+ hash: 31
50
+ segments:
51
+ - 0
52
+ - 0
53
+ - 0
42
54
  version: 0.0.0
43
- version:
44
55
  required_rubygems_version: !ruby/object:Gem::Requirement
56
+ none: false
45
57
  requirements:
46
58
  - - ">="
47
59
  - !ruby/object:Gem::Version
60
+ hash: 3
61
+ segments:
62
+ - 0
48
63
  version: "0"
49
- version:
50
64
  requirements:
51
65
  - Ruby bindings for Taglib's C Library
52
66
  rubyforge_project:
53
- rubygems_version: 1.3.5
67
+ rubygems_version: 1.3.7
54
68
  signing_key:
55
69
  specification_version: 1
56
70
  summary: ruby-taglib2 is a compiled extension to ruby that provides access to the TagLib library