ffi-gphoto2 0.6.1 → 0.7.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/CHANGELOG.md +9 -0
- data/README.md +2 -1
- data/ffi-gphoto2.gemspec +2 -1
- data/lib/ffi/gphoto2_port.rb +18 -0
- data/lib/ffi/gphoto2_port/gp_port.rb +17 -0
- data/lib/ffi/gphoto2_port/gp_port_serial_parity.rb +6 -0
- data/lib/ffi/gphoto2_port/gp_port_settings.rb +11 -0
- data/lib/ffi/gphoto2_port/gp_port_settings_serial.rb +12 -0
- data/lib/ffi/gphoto2_port/gp_port_settings_usb.rb +15 -0
- data/lib/ffi/gphoto2_port/gp_port_settings_usb_disk_direct.rb +8 -0
- data/lib/ffi/gphoto2_port/gp_port_settings_usb_scsi.rb +8 -0
- data/lib/gphoto2.rb +1 -0
- data/lib/gphoto2/port.rb +61 -0
- data/lib/gphoto2/version.rb +1 -1
- data/spec/gphoto2/port_spec.rb +22 -0
- metadata +14 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf11eabf2214ce078d1aeb77ead538196bd288a7
|
4
|
+
data.tar.gz: ea9df058f1c06e0d490bdc9ef8be4c6b5de4aaf8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c56d4570c4888b01440abd7dd8e4cf0782b99cec74958f15ae2751ec8c16a0df3ccb110f7b23ab84898be468da1b1cd7af61031eccb73e6a24cf273aa65cc811
|
7
|
+
data.tar.gz: 98b399dbb55eb4d813befb69494caf9c841c3eb663440c0fc1dfd0add182ec294a99655039fbc5e83c45db20cd4eeea30a754045571dff13127e6d83b6d291e3
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,15 @@
|
|
2
2
|
|
3
3
|
## HEAD
|
4
4
|
|
5
|
+
## 0.7.0 (2016-09-19)
|
6
|
+
|
7
|
+
* [CHANGE] Raise minimum `libgphoto2` version to 2.5.2. This version introduced
|
8
|
+
`gp_port_reset`.
|
9
|
+
* [ADD] Add `FFI::GPhoto2Port::GPPort` struct and related functions to do a
|
10
|
+
port reset.
|
11
|
+
|
12
|
+
## 0.6.1 (2016-08-21)
|
13
|
+
|
5
14
|
* [FIX] `ManagedStruct.release` actually calls `*_free` functions. Autorelease
|
6
15
|
invocations were silently failing with a `TypeError` because the functions
|
7
16
|
expected structs, not pointers.
|
data/README.md
CHANGED
data/ffi-gphoto2.gemspec
CHANGED
@@ -19,7 +19,8 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
20
|
spec.require_paths = ['lib']
|
21
21
|
|
22
|
-
spec.requirements << 'libgphoto2 >= 2.5.
|
22
|
+
spec.requirements << 'libgphoto2 >= 2.5.2'
|
23
|
+
spec.requirements << 'libgphoto2_port >= 0.10.1'
|
23
24
|
spec.required_ruby_version = '>= 1.9'
|
24
25
|
|
25
26
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
data/lib/ffi/gphoto2_port.rb
CHANGED
@@ -8,9 +8,16 @@ module FFI
|
|
8
8
|
require 'ffi/gphoto2_port/gp_port_result'
|
9
9
|
|
10
10
|
# enums
|
11
|
+
require 'ffi/gphoto2_port/gp_port_serial_parity'
|
11
12
|
require 'ffi/gphoto2_port/gp_port_type'
|
12
13
|
|
13
14
|
# structs
|
15
|
+
require 'ffi/gphoto2_port/gp_port_settings_serial'
|
16
|
+
require 'ffi/gphoto2_port/gp_port_settings_usb'
|
17
|
+
require 'ffi/gphoto2_port/gp_port_settings_usb_disk_direct'
|
18
|
+
require 'ffi/gphoto2_port/gp_port_settings_usb_scsi'
|
19
|
+
require 'ffi/gphoto2_port/gp_port_settings'
|
20
|
+
require 'ffi/gphoto2_port/gp_port'
|
14
21
|
require 'ffi/gphoto2_port/gp_port_info'
|
15
22
|
require 'ffi/gphoto2_port/gp_port_info_list'
|
16
23
|
|
@@ -27,5 +34,16 @@ module FFI
|
|
27
34
|
|
28
35
|
# libgphoto2_port/gphoto2/gphoto2-port-result.h
|
29
36
|
attach_function :gp_port_result_as_string, [:int], :string
|
37
|
+
|
38
|
+
# libgphoto2_port/gphoto2/gphoto2-port.h
|
39
|
+
attach_function :gp_port_new, [:pointer], :int
|
40
|
+
attach_function :gp_port_free, [:pointer], :int
|
41
|
+
|
42
|
+
attach_function :gp_port_set_info, [GPPort.by_ref, GPPortInfo], :int
|
43
|
+
|
44
|
+
attach_function :gp_port_open, [GPPort.by_ref], :int
|
45
|
+
attach_function :gp_port_close, [GPPort.by_ref], :int
|
46
|
+
|
47
|
+
attach_function :gp_port_reset, [GPPort.by_ref], :int
|
30
48
|
end
|
31
49
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module FFI
|
2
|
+
module GPhoto2Port
|
3
|
+
class GPPort < FFI::ManagedStruct
|
4
|
+
# libgphoto2_port/libgphoto2_port/gphoto2-port.h
|
5
|
+
layout :type, GPPortType,
|
6
|
+
:settings, GPPortSettings,
|
7
|
+
:settings_pending, GPPortSettings,
|
8
|
+
:timeout, :int,
|
9
|
+
:pl, :pointer, # GPPortPrivateLibrary *
|
10
|
+
:pc, :pointer # GPPortPrivateCore *
|
11
|
+
|
12
|
+
def self.release(ptr)
|
13
|
+
FFI::GPhoto2.gp_port_free(ptr)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module FFI
|
2
|
+
module GPhoto2Port
|
3
|
+
class GPPortSettings < FFI::Struct
|
4
|
+
# libgphoto2_port/libgphoto2_port/gphoto2-port.h
|
5
|
+
layout :serial, GPPortSettingsSerial,
|
6
|
+
:usb, GPPortSettingsUSB,
|
7
|
+
:usbdiskdirect, GPPortSettingsUsbDiskDirect,
|
8
|
+
:usbscsi, GPPortSettingsUsbScsi
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module FFI
|
2
|
+
module GPhoto2Port
|
3
|
+
class GPPortSettingsUSB < FFI::Struct
|
4
|
+
# libgphoto2_port/libgphoto2_port/gphoto2-port.h
|
5
|
+
layout :inep, :int,
|
6
|
+
:outep, :int,
|
7
|
+
:intep, :int,
|
8
|
+
:config, :int,
|
9
|
+
:interface, :int,
|
10
|
+
:altsetting, :int,
|
11
|
+
:maxpacketsize, :int,
|
12
|
+
:port, [:char, 64]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/gphoto2.rb
CHANGED
data/lib/gphoto2/port.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
module GPhoto2
|
2
|
+
class Port
|
3
|
+
include FFI::GPhoto2Port
|
4
|
+
include GPhoto2::Struct
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@ptr = new
|
8
|
+
end
|
9
|
+
|
10
|
+
# @param [PortInfo]
|
11
|
+
# @return [PortInfo]
|
12
|
+
def info=(info)
|
13
|
+
set_info(info)
|
14
|
+
info
|
15
|
+
end
|
16
|
+
|
17
|
+
# @return [void]
|
18
|
+
def open
|
19
|
+
_open
|
20
|
+
end
|
21
|
+
|
22
|
+
# @return [void]
|
23
|
+
def close
|
24
|
+
_close
|
25
|
+
end
|
26
|
+
|
27
|
+
# @return [void]
|
28
|
+
def reset
|
29
|
+
_reset
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def new
|
35
|
+
ptr = FFI::MemoryPointer.new(:pointer)
|
36
|
+
rc = gp_port_new(ptr)
|
37
|
+
GPhoto2.check!(rc)
|
38
|
+
FFI::GPhoto2Port::GPPort.new(ptr.read_pointer)
|
39
|
+
end
|
40
|
+
|
41
|
+
def _open
|
42
|
+
rc = gp_port_open(ptr)
|
43
|
+
GPhoto2.check!(rc)
|
44
|
+
end
|
45
|
+
|
46
|
+
def _close
|
47
|
+
rc = gp_port_close(ptr)
|
48
|
+
GPhoto2.check!(rc)
|
49
|
+
end
|
50
|
+
|
51
|
+
def _reset
|
52
|
+
rc = gp_port_reset(ptr)
|
53
|
+
GPhoto2.check!(rc)
|
54
|
+
end
|
55
|
+
|
56
|
+
def set_info(port_info)
|
57
|
+
rc = gp_port_set_info(ptr, port_info.ptr)
|
58
|
+
GPhoto2.check!(rc)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
data/lib/gphoto2/version.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module GPhoto2
|
4
|
+
describe Port do
|
5
|
+
before do
|
6
|
+
allow_any_instance_of(Port).to receive(:new)
|
7
|
+
end
|
8
|
+
|
9
|
+
describe '#info=' do
|
10
|
+
let(:port) { Port.new }
|
11
|
+
|
12
|
+
before do
|
13
|
+
allow(port).to receive(:set_info)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'returns the input value' do
|
17
|
+
info = double(:port_info)
|
18
|
+
expect(port.info = info).to eq(info)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-gphoto2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Macias
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -132,9 +132,16 @@ files:
|
|
132
132
|
- lib/ffi/gphoto2/gp_context.rb
|
133
133
|
- lib/ffi/gphoto2/gphoto_device_type.rb
|
134
134
|
- lib/ffi/gphoto2_port.rb
|
135
|
+
- lib/ffi/gphoto2_port/gp_port.rb
|
135
136
|
- lib/ffi/gphoto2_port/gp_port_info.rb
|
136
137
|
- lib/ffi/gphoto2_port/gp_port_info_list.rb
|
137
138
|
- lib/ffi/gphoto2_port/gp_port_result.rb
|
139
|
+
- lib/ffi/gphoto2_port/gp_port_serial_parity.rb
|
140
|
+
- lib/ffi/gphoto2_port/gp_port_settings.rb
|
141
|
+
- lib/ffi/gphoto2_port/gp_port_settings_serial.rb
|
142
|
+
- lib/ffi/gphoto2_port/gp_port_settings_usb.rb
|
143
|
+
- lib/ffi/gphoto2_port/gp_port_settings_usb_disk_direct.rb
|
144
|
+
- lib/ffi/gphoto2_port/gp_port_settings_usb_scsi.rb
|
138
145
|
- lib/ffi/gphoto2_port/gp_port_type.rb
|
139
146
|
- lib/gphoto2.rb
|
140
147
|
- lib/gphoto2/camera.rb
|
@@ -162,6 +169,7 @@ files:
|
|
162
169
|
- lib/gphoto2/camera_widgets/window_camera_widget.rb
|
163
170
|
- lib/gphoto2/context.rb
|
164
171
|
- lib/gphoto2/entry.rb
|
172
|
+
- lib/gphoto2/port.rb
|
165
173
|
- lib/gphoto2/port_info.rb
|
166
174
|
- lib/gphoto2/port_info_list.rb
|
167
175
|
- lib/gphoto2/port_result.rb
|
@@ -184,6 +192,7 @@ files:
|
|
184
192
|
- spec/gphoto2/entry_spec.rb
|
185
193
|
- spec/gphoto2/port_info_list_spec.rb
|
186
194
|
- spec/gphoto2/port_info_spec.rb
|
195
|
+
- spec/gphoto2/port_spec.rb
|
187
196
|
- spec/gphoto2_spec.rb
|
188
197
|
- spec/spec_helper.rb
|
189
198
|
- spec/support/shared_examples/camera/capture_examples.rb
|
@@ -211,7 +220,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
211
220
|
- !ruby/object:Gem::Version
|
212
221
|
version: '0'
|
213
222
|
requirements:
|
214
|
-
- libgphoto2 >= 2.5.
|
223
|
+
- libgphoto2 >= 2.5.2
|
224
|
+
- libgphoto2_port >= 0.10.1
|
215
225
|
rubyforge_project:
|
216
226
|
rubygems_version: 2.6.4
|
217
227
|
signing_key:
|
@@ -235,6 +245,7 @@ test_files:
|
|
235
245
|
- spec/gphoto2/entry_spec.rb
|
236
246
|
- spec/gphoto2/port_info_list_spec.rb
|
237
247
|
- spec/gphoto2/port_info_spec.rb
|
248
|
+
- spec/gphoto2/port_spec.rb
|
238
249
|
- spec/gphoto2_spec.rb
|
239
250
|
- spec/spec_helper.rb
|
240
251
|
- spec/support/shared_examples/camera/capture_examples.rb
|