adb-sdklib 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZGI1NWY1ZTRjNDdlNDFkOWU0YzNhODI4OWZlNjZhY2M5Mjg0ZTFiYQ==
4
+ OTA0ZTdiZDlhYTU0YTI5YTE5OTY4NjhiMjY2OTdkZDE2MDI3NjVhZg==
5
5
  data.tar.gz: !binary |-
6
- YmQ4ZTg4NTI5MWVhYWQwOWRkMWY3NGVkOTgyYWIyNDMwZDhkMDI0Yg==
6
+ ZWQyM2Q1Y2YxMjdlYWI0YmUyNTdiOTcwZmQwNGNiMjBkZGRlNWFiMQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OWYzOTZjNDM2NDNmYzI0MmZiY2M1NTliYjY2OTkxZDkzMjYwOTk3NzUzNmI5
10
- ZWI5ZjZiYzY4M2MwZTZmZjE4NzM5ZGMyYTA2YjM0MTZmODQyZTY3YjJhYTgy
11
- YzEyNDg1OWIwMmU3YWE5MWUwOTRlOWJiZGNhZWMxNTA1N2YzMTg=
9
+ NTU5ODk1ZDBhODdmYTY3MGNjMTIzN2UyMTg3ODMzOGQ1Y2IwNTQ5Y2FmOTk0
10
+ MzdlMzY0MjkzYTA2ZWMxZmQ4MjFjNjMyZDMxMzVkZmRiMjc3MDU4ZTE3N2E2
11
+ MWRlOGIwNGQ0MTcwNzYwYjg2MjcwM2NiMjFjZjlkOGFiZjIzMmQ=
12
12
  data.tar.gz: !binary |-
13
- ZjlmZDA0YzVlMGI2NTdiMDAwMDA4ZjA5Y2U4NWQ5ZTRmYWYxOWMzZDUwODU1
14
- ZWM0OGJjMzFmZTE1M2RmMjMxYzRjZmFlM2U4OTlkMmU1N2Q4NDcwZDMxNTYy
15
- ODE2OWFlOGM2MjNhZTA3NWQ2NDhjNTMzNWI0NjZlZTg0ZGI4ZTg=
13
+ YmY3NWI0MGQyZmY2MTEzZTZjMWExMjI5MjhhYWYzNjcyN2Y4YTg0NWFmNjlk
14
+ ZjI5Y2VhY2FiNDAwNjUyMTExOGFhY2Y5OTc3ZDVmZmJkMGQ5NDI0MjFmMmJj
15
+ MGU1ZjE1MzNlZjBjNGNjMTJlYjQ2NzNjOWU3ZTFkNDQzMTk3ZGE=
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ *~
1
2
  *.gem
2
3
  *.rbc
3
4
  .bundle
@@ -2,6 +2,7 @@
2
2
  require "adb_sdklib/version"
3
3
  require 'adb_sdklib/common'
4
4
  require 'adb_sdklib/device'
5
+ require 'adb_sdklib/raw_image'
5
6
 
6
7
  module AdbSdkLib
7
8
  # List of devices.
@@ -56,7 +56,11 @@ module AdbSdkLib
56
56
  # @!attribute [r] bootloader?
57
57
  # @return [Boolean] true if the device is in bootloader mode.
58
58
  def bootloader?; @device.isBootloader end
59
-
59
+
60
+ # Get a screenshot from the device
61
+ # @return [AdbSdkLib::RawImage] Wrapper of com.android.ddmlib.RawImage object.
62
+ def screenshot(); RawImage.new(@device.getScreenshot()) end
63
+
60
64
  # Reboot the device
61
65
  # @param [String, nil] into the bootloader name to reboot into,
62
66
  # or nil to just reboot the device
@@ -0,0 +1,112 @@
1
+ # coding: utf-8
2
+
3
+ module AdbSdkLib
4
+
5
+ class Pixel
6
+ attr_accessor :x, :y, :red, :green, :blue, :alpha, :argb
7
+
8
+ def initialize(x,y, argb)
9
+ @x = x
10
+ @y = y
11
+ @argb = argb
12
+ @alpha = (argb >> 8*3) & 0xFF
13
+ @red = (argb >> 8*2) & 0xFF
14
+ @green = (argb >> 8*1) & 0xFF
15
+ @blue = (argb >> 8*0) & 0xFF
16
+ end
17
+ end
18
+
19
+ # Data representing an image taken from a device frame buffer.
20
+ #
21
+ # This is a wrapper of com.android.ddmlib.RawImage
22
+ class RawImage
23
+ include Common
24
+
25
+ # @param [Rjb::Rjb_JavaProxy] RawImage Rjb proxy of com.android.ddmlib.RawImage
26
+ def initialize(image)
27
+ unless image.instance_of?(Rjb::Rjb_JavaProxy) &&
28
+ image._classname == 'com.android.ddmlib.RawImage'
29
+ raise TypeError, "Parameter is not com.android.ddmlib.RawImage class"
30
+ end
31
+ class << image
32
+ def call_java_method(method_name, *args)
33
+ rjb_method_missing(method_name, *args)
34
+ rescue => e
35
+ raise SdkLibError.new(e.message, e.class.to_s, self._classname, method_name)
36
+ end
37
+ alias_method :rjb_method_missing, :method_missing
38
+ alias_method :method_missing, :call_java_method
39
+ end
40
+ @image = image
41
+ end
42
+
43
+ # Returns a rotated version of the image
44
+ # The image is rotated counter-clockwise.
45
+ # @return [RawImage] rotated image
46
+ def rotated
47
+ RawImage.new(@image.getRotated())
48
+ end
49
+
50
+ # Returns ARGB value of a pixel
51
+ # @param [Integer] index of the pixel in data
52
+ # @return [Integer] ARGB value of the given pixel
53
+ def argb(index)
54
+ @image.getARGB(index)
55
+ end
56
+
57
+ # Returns ARGB value of a pixel
58
+ # @param [Integer] pixel index
59
+ # @return [Integer] ARGB value of the given pixel
60
+ def argb_at(x,y)
61
+ @image.getARGB(point_to_index(x,y))
62
+ end
63
+
64
+ # Returns pixel content
65
+ # @param [Integer, Integer] pixel position x,y
66
+ # @return [AdbSdkLib::Pixel] pixel content
67
+ def pixel(x,y)
68
+ Pixel.new(x,y,@image.getARGB(point_to_index(x,y)))
69
+ end
70
+
71
+ # Calls block once for each pixel in data, passing that device as a parameter.
72
+ # If no block is given, an enumerator is returned instead.
73
+ # @return [Enumerator] if not block given
74
+ # @return [self] if block given
75
+ # @yield [pixel] called with each pixel
76
+ # @yieldparam [Pixel] pixel a pixel instance
77
+ def each_pixel()
78
+ return to_enum :each_pixel unless block_given?
79
+ @image.height.times do |y|
80
+ @image.width.times do |x|
81
+ yield pixel(x,y)
82
+ end
83
+ end
84
+ self
85
+ end
86
+
87
+ # Returns image's width
88
+ # @return [Integer] image's width
89
+ def width()
90
+ @image.width
91
+ end
92
+
93
+ # Returns image's height
94
+ # @return [Integer] image's height
95
+ def height()
96
+ @image.height
97
+ end
98
+
99
+ # Returns image's bpp
100
+ # @return [Integer] image's bpp
101
+ def bpp()
102
+ @image.bpp
103
+ end
104
+
105
+ # Returns pixel index for a given position
106
+ # @param [Integer, Integer] pixel position x,y
107
+ # @return [Integer] pixel index
108
+ def point_to_index(x,y)
109
+ return (x*(bpp >> 3))+(y*((bpp >> 3)*(width)))
110
+ end
111
+ end
112
+ end
@@ -1,3 +1,3 @@
1
1
  module AdbSdkLib
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adb-sdklib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoyo0906
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-23 00:00:00.000000000 Z
11
+ date: 2014-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rjb
@@ -70,6 +70,7 @@ files:
70
70
  - lib/adb-sdklib.rb
71
71
  - lib/adb_sdklib/common.rb
72
72
  - lib/adb_sdklib/device.rb
73
+ - lib/adb_sdklib/raw_image.rb
73
74
  - lib/adb_sdklib/version.rb
74
75
  homepage: http://github.com/yoyo0906/ruby-adb-sdklib
75
76
  licenses: