turtleshell 1.0.4 → 1.0.5

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
  SHA1:
3
- metadata.gz: 0020ab1903bd5ebd8bf3338fbf008ed6c8496411
4
- data.tar.gz: 1243d95e4ae08009ff350e827fd03876d1f93a93
3
+ metadata.gz: 0866f748e24f3efdb6c4a1bb490f5664de5f97b1
4
+ data.tar.gz: 1882e6475159941b9cf423d3c54c8d30d2419d50
5
5
  SHA512:
6
- metadata.gz: 7ff72851c7c4aac05e27ae19a2ae84872d454e9342565a63c084449b87b2d0cf0f8f53ffe7e9ff5c380fd364616bf67f069ab9109e965f74b156723849f47df0
7
- data.tar.gz: c2ebcfd7eb0001075f1645f87e2a16e5c0a2952a738c1dcd2b2cc175223ade07feefd047d8be95d7774fa420285c3f2bd89227a0ea08e7c7ed37a3b27f21b49e
6
+ metadata.gz: 9647e4773ebabe4517600c124f06815ea3e1cb6029f35a7a63d5b314d2976072af8f9c435eb4346d9b69c40765b716fe6560453dfb491a2cae3120b6860b4183
7
+ data.tar.gz: 645b2dd39e02d7440996f41d8313a8cb6ff48f3953d2ad84b0bc6eda5d4a86cd325651be61409cca1bbc91b2a1dca7450b4871a3a4e90ae1d360cc82b7c929f6
@@ -1,5 +1,9 @@
1
+ ### 1.0.5 (2014-12-29)
2
+
3
+ * Added `#get_available_gains` -- lists gain values the device allows
4
+
1
5
  ### 1.0.0 (2013-12-28)
2
6
 
3
7
  * Added sample rate, gain, center frequency getters / setters
4
- * Added `read_samples` method to read syncronously from the device
5
- * Added `read_samples_async` to read asyncronously
8
+ * Added `#read_samples` method to read syncronously from the device
9
+ * Added `#read_samples_async` to read asyncronously
@@ -114,7 +114,7 @@ static void turtleshell_callback(unsigned char *buffer, uint32_t length, void *c
114
114
 
115
115
  if (!unwrapped_context.callback || !unwrapped_context.device) {
116
116
  printf("unexpected error: could not read callback / device from unwrapped context\n");
117
- exit(1);
117
+ return;
118
118
  }
119
119
 
120
120
  device = unwrapped_context.device;
@@ -205,6 +205,25 @@ static VALUE turtleshell_set_gain(VALUE self, VALUE wrapped_device, VALUE value)
205
205
  return Qnil;
206
206
  }
207
207
 
208
+ static VALUE turtleshell_get_gains(VALUE self, VALUE wrapped_device) {
209
+ int *gains = NULL;
210
+ int length, i;
211
+ rtlsdr_dev_t *device;
212
+ VALUE buffer = rb_ary_new();
213
+ Data_Get_Struct(wrapped_device, rtlsdr_dev_t, device);
214
+
215
+ length = rtlsdr_get_tuner_gains(device, NULL);
216
+ gains = malloc(sizeof(int) * length);
217
+ rtlsdr_get_tuner_gains(device, gains);
218
+
219
+ for (i = 0; i < length; ++i) {
220
+ rb_ary_push(buffer, INT2NUM(gains[i]));
221
+ }
222
+
223
+ free(gains);
224
+ return buffer;
225
+ }
226
+
208
227
  void Init_librtlsdr() {
209
228
  m_turtleshell = rb_define_module("TurtleShell");
210
229
  m_rtlsdr = rb_define_module_under(m_turtleshell, "RTLSDR");
@@ -230,4 +249,5 @@ void Init_librtlsdr() {
230
249
  rb_define_module_function(m_rtlsdr, "set_center_freq", turtleshell_set_center_frequency, 2);
231
250
  rb_define_module_function(m_rtlsdr, "get_gain", turtleshell_get_gain, 1);
232
251
  rb_define_module_function(m_rtlsdr, "set_gain", turtleshell_set_gain, 2);
252
+ rb_define_module_function(m_rtlsdr, "get_tuner_gains", turtleshell_get_gains, 1);
233
253
  }
@@ -48,6 +48,11 @@ module TurtleShell
48
48
  TurtleShell::RTLSDR.set_gain(@device, gain)
49
49
  end
50
50
 
51
+ # most devices only support a finite number of gain values
52
+ def get_available_gains
53
+ TurtleShell::RTLSDR.get_tuner_gains(@device)
54
+ end
55
+
51
56
  # read specified number of complex samples from tuner
52
57
  # real and imaginary parts are normalized between [-1, 1]
53
58
  def read_samples(number_of_samples = 1024)
@@ -1,9 +1,9 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'turtleshell'
3
- s.version = '1.0.4'
3
+ s.version = '1.0.5'
4
4
  s.date = '2013-11-05'
5
5
  s.summary = 'A ruby wrapper for librtlsdr'
6
- s.description = 'turtleshell is an interface for realtek USB software defined radio devices'
6
+ s.description = 'ruby bindings for librtlsdr -- realtek USB software defined radio devices'
7
7
  s.authors = ['Tim Jarratt']
8
8
  s.email = 'tjarratt@gmail.com'
9
9
  s.files = ['lib/turtleshell.rb']
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turtleshell
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Jarratt
@@ -52,7 +52,7 @@ dependencies:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.14'
55
- description: turtleshell is an interface for realtek USB software defined radio devices
55
+ description: ruby bindings for librtlsdr -- realtek USB software defined radio devices
56
56
  email: tjarratt@gmail.com
57
57
  executables: []
58
58
  extensions: