cwiid 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +5 -88
  3. data/config.rb +23 -0
  4. data/ext/wiimote.cc +21 -4
  5. data/ext/wiimote.hh +3 -1
  6. metadata +33 -61
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6ab3d7f6da791942d6b8756c3881fdf0988c1997
4
+ data.tar.gz: 04c99b6c964449170edb726ec5b5ed5cb8a7f668
5
+ SHA512:
6
+ metadata.gz: 6dcc63f0279e8cecdcd441fd3ddb9c3acd4f63cc32dccd4529cd94038b5370657058db49967d74ed9a2263c5fc61e2810f5c67ee57f41c0b430050148e22b599
7
+ data.tar.gz: 0c14e5090d3bb65f9310f27b5d387795862a893ca822967917319e2496895674abefe85c419042ec21f468d84fd4c7cc79acf8fffe44307443ec91068f532f73
data/Rakefile CHANGED
@@ -5,32 +5,14 @@ require 'rake/testtask'
5
5
  require 'rake/packagetask'
6
6
  require 'rake/loaders/makefile'
7
7
  require 'rbconfig'
8
-
9
- PKG_NAME = 'cwiid'
10
- PKG_VERSION = '0.1.3'
11
- CFG = RbConfig::CONFIG
12
- CXX = ENV[ 'CXX' ] || 'g++'
13
- RB_FILES = FileList[ 'lib/**/*.rb' ]
14
- CC_FILES = FileList[ 'ext/*.cc' ]
15
- HH_FILES = FileList[ 'ext/*.hh' ] + FileList[ 'ext/*.tcc' ]
16
- TC_FILES = FileList[ 'test/tc_*.rb' ]
17
- TS_FILES = FileList[ 'test/ts_*.rb' ]
18
- SO_FILE = "ext/cwiid.#{CFG[ 'DLEXT' ]}"
19
- PKG_FILES = [ 'Rakefile', 'README.md', 'COPYING', '.document' ] +
20
- RB_FILES + CC_FILES + HH_FILES + TS_FILES + TC_FILES
21
- BIN_FILES = [ 'README.md', 'COPYING', '.document', SO_FILE ] +
22
- RB_FILES + TS_FILES + TC_FILES
23
- SUMMARY = %q{Using the Wii Remote with Ruby}
24
- DESCRIPTION = %q{This Ruby extension provides an inerface to access a Wii Remote using the libcwiid library.}
25
- AUTHOR = %q{Jan Wedekind}
26
- EMAIL = %q{jan@wedesoft.de}
27
- HOMEPAGE = %q{http://wedesoft.github.com/cwiid/}
8
+ require_relative 'config'
28
9
 
29
10
  OBJ = CC_FILES.ext 'o'
30
11
  $CXXFLAGS = "-DNDEBUG #{CFG[ 'CPPFLAGS' ]} #{CFG[ 'CFLAGS' ]}"
31
- if CFG[ 'rubyhdrdir' ]
32
- $CXXFLAGS = "#{$CXXFLAGS} -I#{CFG[ 'rubyhdrdir' ]} " +
33
- "-I#{CFG[ 'rubyhdrdir' ]}/#{CFG[ 'arch' ]}"
12
+ if CFG['rubyarchhdrdir']
13
+ $CXXFLAGS = "#{$CXXFLAGS} -I#{CFG['rubyhdrdir']} -I#{CFG['rubyarchhdrdir']}"
14
+ elsif CFG['rubyhdrdir']
15
+ $CXXFLAGS = "#{$CXXFLAGS} -I#{CFG['rubyhdrdir' ]} -I#{CFG['rubyhdrdir']}/#{CFG['arch']}"
34
16
  else
35
17
  $CXXFLAGS = "#{$CXXFLAGS} -I#{CFG[ 'archdir' ]}"
36
18
  end
@@ -92,71 +74,6 @@ Rake::PackageTask.new PKG_NAME, PKG_VERSION do |p|
92
74
  p.package_files = PKG_FILES
93
75
  end
94
76
 
95
- begin
96
- require 'rubygems'
97
- require 'rubygems/builder'
98
- $SPEC = Gem::Specification.new do |s|
99
- s.name = PKG_NAME
100
- s.version = PKG_VERSION
101
- s.platform = Gem::Platform::RUBY
102
- s.date = Date.today.to_s
103
- s.summary = SUMMARY
104
- s.description = DESCRIPTION
105
- s.author = AUTHOR
106
- s.email = EMAIL
107
- s.homepage = HOMEPAGE
108
- s.files = PKG_FILES
109
- s.test_files = TC_FILES
110
- s.require_paths = [ 'lib', 'ext' ]
111
- s.extensions = %w{Rakefile}
112
- s.has_rdoc = 'yard'
113
- s.extra_rdoc_files = []
114
- s.rdoc_options = %w{--no-private}
115
- s.add_development_dependency %q{rake}
116
- end
117
- GEM_SOURCE = "#{PKG_NAME}-#{PKG_VERSION}.gem"
118
- $BINSPEC = Gem::Specification.new do |s|
119
- s.name = PKG_NAME
120
- s.version = PKG_VERSION
121
- s.platform = Gem::Platform::CURRENT
122
- s.date = Date.today.to_s
123
- s.summary = SUMMARY
124
- s.description = DESCRIPTION
125
- s.author = AUTHOR
126
- s.email = EMAIL
127
- s.homepage = HOMEPAGE
128
- s.files = BIN_FILES
129
- s.test_files = TC_FILES
130
- s.require_paths = [ 'lib', 'ext' ]
131
- s.has_rdoc = 'yard'
132
- s.extra_rdoc_files = []
133
- s.rdoc_options = %w{--no-private}
134
- end
135
- GEM_BINARY = "#{PKG_NAME}-#{PKG_VERSION}-#{$BINSPEC.platform}.gem"
136
- desc "Build the gem file #{GEM_SOURCE}"
137
- task :gem => [ "pkg/#{GEM_SOURCE}" ]
138
- file "pkg/#{GEM_SOURCE}" => [ 'pkg' ] + $SPEC.files do
139
- when_writing 'Creating GEM' do
140
- Gem::Builder.new( $SPEC ).build
141
- verbose true do
142
- FileUtils.mv GEM_SOURCE, "pkg/#{GEM_SOURCE}"
143
- end
144
- end
145
- end
146
- desc "Build the gem file #{GEM_BINARY}"
147
- task :gem_binary => [ "pkg/#{GEM_BINARY}" ]
148
- file "pkg/#{GEM_BINARY}" => [ 'pkg' ] + $BINSPEC.files do
149
- when_writing 'Creating binary GEM' do
150
- Gem::Builder.new( $BINSPEC ).build
151
- verbose true do
152
- FileUtils.mv GEM_BINARY, "pkg/#{GEM_BINARY}"
153
- end
154
- end
155
- end
156
- rescue LoadError
157
- STDERR.puts 'Please install \'rubygems\' if you want to create Gem packages'
158
- end
159
-
160
77
  rule '.o' => '.cc' do |t|
161
78
  sh "#{CXX} #{$CXXFLAGS} -c -o #{t.name} #{t.source}"
162
79
  end
@@ -0,0 +1,23 @@
1
+ require 'rake'
2
+
3
+ PKG_NAME = 'cwiid'
4
+ PKG_VERSION = '0.1.4'
5
+ CFG = RbConfig::CONFIG
6
+ CXX = ENV[ 'CXX' ] || 'g++'
7
+ RB_FILES = ['config.rb'] + FileList[ 'lib/**/*.rb' ]
8
+ CC_FILES = FileList[ 'ext/*.cc' ]
9
+ HH_FILES = FileList[ 'ext/*.hh' ] + FileList[ 'ext/*.tcc' ]
10
+ TC_FILES = FileList[ 'test/tc_*.rb' ]
11
+ TS_FILES = FileList[ 'test/ts_*.rb' ]
12
+ SO_FILE = "ext/cwiid.#{CFG[ 'DLEXT' ]}"
13
+ PKG_FILES = [ 'Rakefile', 'README.md', 'COPYING', '.document' ] +
14
+ RB_FILES + CC_FILES + HH_FILES + TS_FILES + TC_FILES
15
+ BIN_FILES = [ 'README.md', 'COPYING', '.document', SO_FILE ] +
16
+ RB_FILES + TS_FILES + TC_FILES
17
+ SUMMARY = %q{Using the Wii Remote with Ruby}
18
+ DESCRIPTION = %q{This Ruby extension provides an inerface to access a Wii Remote using the libcwiid library.}
19
+ AUTHOR = %q{Jan Wedekind}
20
+ EMAIL = %q{jan@wedesoft.de}
21
+ HOMEPAGE = %q{http://wedesoft.github.com/cwiid/}
22
+
23
+
@@ -53,13 +53,14 @@ void WiiMote::close(void)
53
53
  };
54
54
  }
55
55
 
56
- void WiiMote::requestStatus(void) throw (Error)
56
+ int WiiMote::requestStatus(void) throw (Error)
57
57
  {
58
58
  ERRORMACRO( m_wiimote != NULL, Error, , "Wii Remote is closed. "
59
59
  "Did you call \"close\" before?" );
60
60
  m_error = false;
61
- cwiid_request_status( m_wiimote );
61
+ int status = cwiid_request_status( m_wiimote );
62
62
  ERRORMACRO( !m_error, Error, , "Status request error: " << m_errorMsg );
63
+ return status;
63
64
  }
64
65
 
65
66
  void WiiMote::getState(void) throw (Error)
@@ -151,6 +152,11 @@ char WiiMote::getIRSize( int i )
151
152
  return m_state.ir_src[ i ].size;
152
153
  }
153
154
 
155
+ unsigned short int WiiMote::getMotionPlus( int id )
156
+ {
157
+ return m_state.ext.motionplus.angle_rate[ id ];
158
+ }
159
+
154
160
  void WiiMote::err( const char *s, va_list ap )
155
161
  {
156
162
  char buffer[4096];
@@ -214,6 +220,8 @@ VALUE WiiMote::registerRubyClass(void)
214
220
  RUBY_METHOD_FUNC( wrapGetAcc ), 0 );
215
221
  rb_define_method( cRubyClass, "ir",
216
222
  RUBY_METHOD_FUNC( wrapGetIR ), 0 );
223
+ rb_define_method( cRubyClass, "motionplus",
224
+ RUBY_METHOD_FUNC( wrapGetMotionPlus ), 0 );
217
225
  return cRubyClass;
218
226
  }
219
227
 
@@ -244,13 +252,14 @@ VALUE WiiMote::wrapClose( VALUE rbSelf )
244
252
 
245
253
  VALUE WiiMote::wrapRequestStatus( VALUE rbSelf )
246
254
  {
255
+ VALUE rbRetVal = Qnil;
247
256
  try {
248
257
  WiiMotePtr *self; Data_Get_Struct( rbSelf, WiiMotePtr, self );
249
- (*self)->requestStatus();
258
+ rbRetVal = INT2NUM( (*self)->requestStatus() );
250
259
  } catch ( exception &e ) {
251
260
  rb_raise( rb_eRuntimeError, "%s", e.what() );
252
261
  };
253
- return rbSelf;
262
+ return rbRetVal;
254
263
  }
255
264
 
256
265
  VALUE WiiMote::wrapGetState( VALUE rbSelf )
@@ -349,3 +358,11 @@ VALUE WiiMote::wrapGetIR( VALUE rbSelf )
349
358
  return rbRetVal;
350
359
  }
351
360
 
361
+ VALUE WiiMote::wrapGetMotionPlus( VALUE rbSelf )
362
+ {
363
+ WiiMotePtr *self; Data_Get_Struct( rbSelf, WiiMotePtr, self );
364
+ return rb_ary_new3( 3, INT2NUM( (*self)->getMotionPlus( 0 ) ),
365
+ INT2NUM( (*self)->getMotionPlus( 1 ) ),
366
+ INT2NUM( (*self)->getMotionPlus( 2 ) ) );
367
+ }
368
+
@@ -27,7 +27,7 @@ public:
27
27
  WiiMote(void) throw (Error);
28
28
  virtual ~WiiMote(void);
29
29
  void close(void);
30
- void requestStatus(void) throw (Error);
30
+ int requestStatus(void) throw (Error);
31
31
  void getState(void) throw (Error);
32
32
  unsigned char getRptMode(void);
33
33
  void setRptMode( unsigned char mode ) throw (Error);
@@ -42,6 +42,7 @@ public:
42
42
  unsigned short int getIRX( int i );
43
43
  unsigned short int getIRY( int i );
44
44
  char getIRSize( int i );
45
+ unsigned short int getMotionPlus( int i );
45
46
  void err( const char *s, va_list ap );
46
47
  static VALUE cRubyClass;
47
48
  static VALUE registerRubyClass(void);
@@ -60,6 +61,7 @@ public:
60
61
  static VALUE wrapGetButtons( VALUE rbSelf );
61
62
  static VALUE wrapGetAcc( VALUE rbSelf );
62
63
  static VALUE wrapGetIR( VALUE rbSelf );
64
+ static VALUE wrapGetMotionPlus( VALUE rbSelf );
63
65
  static WiiMote *current;
64
66
  protected:
65
67
  cwiid_wiimote_t *m_wiimote;
metadata CHANGED
@@ -1,86 +1,58 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: cwiid
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 3
9
- version: 0.1.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
10
5
  platform: ruby
11
- authors:
6
+ authors:
12
7
  - Jan Wedekind
13
8
  autorequire:
14
9
  bindir: bin
15
10
  cert_chain: []
16
-
17
- date: 2011-02-23 00:00:00 +00:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: rake
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
- version: "0"
31
- type: :development
32
- version_requirements: *id001
33
- description: This Ruby extension provides an inerface to access a Wii Remote using the libcwiid library.
11
+ date: 2015-05-15 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: This Ruby extension provides an inerface to access a Wii Remote using
14
+ the libcwiid library.
34
15
  email: jan@wedesoft.de
35
16
  executables: []
36
-
37
- extensions:
17
+ extensions:
38
18
  - Rakefile
39
19
  extra_rdoc_files: []
40
-
41
- files:
42
- - Rakefile
43
- - README.md
20
+ files:
21
+ - ".document"
44
22
  - COPYING
45
- - .document
46
- - lib/cwiid_ext.rb
47
- - ext/wiimote.cc
48
- - ext/init.cc
49
- - ext/wiimote.hh
23
+ - README.md
24
+ - Rakefile
25
+ - config.rb
50
26
  - ext/error.hh
27
+ - ext/init.cc
51
28
  - ext/rubyinc.hh
52
- has_rdoc: yard
29
+ - ext/wiimote.cc
30
+ - ext/wiimote.hh
31
+ - lib/cwiid_ext.rb
53
32
  homepage: http://wedesoft.github.com/cwiid/
54
33
  licenses: []
55
-
34
+ metadata: {}
56
35
  post_install_message:
57
- rdoc_options:
58
- - --no-private
59
- require_paths:
36
+ rdoc_options:
37
+ - "--no-private"
38
+ require_paths:
60
39
  - lib
61
40
  - ext
62
- required_ruby_version: !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
41
+ required_ruby_version: !ruby/object:Gem::Requirement
42
+ requirements:
65
43
  - - ">="
66
- - !ruby/object:Gem::Version
67
- segments:
68
- - 0
69
- version: "0"
70
- required_rubygems_version: !ruby/object:Gem::Requirement
71
- none: false
72
- requirements:
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ required_rubygems_version: !ruby/object:Gem::Requirement
47
+ requirements:
73
48
  - - ">="
74
- - !ruby/object:Gem::Version
75
- segments:
76
- - 0
77
- version: "0"
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
78
51
  requirements: []
79
-
80
52
  rubyforge_project:
81
- rubygems_version: 1.3.7
53
+ rubygems_version: 2.4.6
82
54
  signing_key:
83
- specification_version: 3
55
+ specification_version: 4
84
56
  summary: Using the Wii Remote with Ruby
85
57
  test_files: []
86
-
58
+ has_rdoc: yard