libxosd-ruby 0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,39 @@
1
+
2
+ require "xosd"
3
+
4
+ osd = Xosd.new(4)
5
+
6
+ begin
7
+ $stderr.puts osd
8
+
9
+ osd.valign = "top"
10
+ osd.vertical_offset = 20
11
+ osd.align = "center"
12
+ osd.color = "#00BBCC"
13
+ osd.outline_color = "#FF0000"
14
+ osd.outline_width = 1
15
+ osd.shadow_offset = 5
16
+ osd.font = "-*-*-*-*-*-*-20-*-*-*-*-*-*-*"
17
+ osd.timeout = 2
18
+
19
+ osd.display("Ruby rocks!", 0)
20
+ osd.percent(75, 2)
21
+ osd.slider(35, 3)
22
+
23
+ osd.wait
24
+ sleep 0.5
25
+
26
+ osd.timeout = 3
27
+ osd.show
28
+ sleep 0.5
29
+ osd.scroll(1)
30
+ sleep 0.5
31
+ osd.display("Bottom line", 3)
32
+ osd.wait
33
+ ensure
34
+ $stderr.puts "Destroying"
35
+ osd.destroy
36
+ $stderr.puts "Destroyed"
37
+ end
38
+
39
+ $stderr.puts "Done"
@@ -0,0 +1,40 @@
1
+
2
+ require "xosd"
3
+
4
+ osd = Xosd.new(2)
5
+ osd.font = "-*-*-*-*-*-*-20-*-*-*-*-*-*-*"
6
+ osd.align = "center"
7
+ osd.valign = "middle"
8
+
9
+ osd2 = Xosd.new(1)
10
+ osd2.font = "-*-*-*-*-*-*-20-*-*-*-*-*-*-*"
11
+ osd2.align = "left"
12
+ osd2.valign = "middle"
13
+ osd2.puts "On the left"
14
+
15
+ osd3 = Xosd.new(1)
16
+ osd3.font = "-*-*-*-*-*-*-20-*-*-*-*-*-*-*"
17
+ osd3.align = "right"
18
+ osd3.valign = "middle"
19
+ osd3.puts "On the right"
20
+
21
+
22
+ osd.timeout = 3
23
+ osd.percent(75)
24
+ sleep 2
25
+ osd.bar_length = 20
26
+ osd.slider(50)
27
+ sleep 2
28
+ osd.clear
29
+ osd.puts "Cleared"
30
+
31
+ osd.wait
32
+
33
+ osd.destroy
34
+
35
+ exit!
36
+
37
+ 0.upto(300) { |x|
38
+ osd.puts "#{x}: #{rand}"
39
+ }
40
+
data/xosd.rb ADDED
@@ -0,0 +1,182 @@
1
+
2
+ require 'libxosd'
3
+ require 'xosdbase'
4
+
5
+ class Xosd < XosdBase
6
+ include Libxosd
7
+
8
+ attr_reader :configured
9
+
10
+ def initialize(lines = 2)
11
+ @xosd = xosd_create(lines)
12
+ @configured = false
13
+ clear
14
+ end
15
+
16
+ def clear
17
+ @lines_drawn = 0
18
+ 0.upto(self.num_lines-1) { |line|
19
+ self.display('', line)
20
+ }
21
+ end
22
+
23
+ def show
24
+ ret( xosd_show(@xosd) )
25
+ end
26
+
27
+ def hide
28
+ ret( xosd_hide(@xosd) )
29
+ end
30
+
31
+ def puts(text)
32
+ display(text)
33
+ end
34
+
35
+ def pick_line(line)
36
+ if (line < 0)
37
+ line = @lines_drawn
38
+ # added "-1" here to try to fix a crash:
39
+ #/usr/local/lib/site_ruby/1.8/xosd.rb:167:in `ret': xosd_display: Invalid Line Number (RuntimeError)
40
+ #from /usr/local/lib/site_ruby/1.8/xosd.rb:47:in `display'
41
+ #from /usr/local/lib/site_ruby/1.8/xosd.rb:32:in `puts'
42
+ #from ./src/XOSDStatus.rb:85:in `sendEvent'
43
+ #from ./src/OutputPipe.rb:24:in `sendEvent'
44
+ if (@lines_drawn < self.num_lines-1)
45
+ @lines_drawn = @lines_drawn + 1
46
+ end
47
+ end
48
+ return line
49
+ end
50
+
51
+ def display(text, line = -1)
52
+ line = pick_line(line)
53
+ ret( xosd_display(@xosd, line, XOSD_string, text.to_s) )
54
+ end
55
+
56
+ def percent(percent, line = -1)
57
+ line = pick_line(line)
58
+ ret( xosd_display(@xosd, line, XOSD_percentage, percent.to_i) )
59
+ end
60
+
61
+ def slider(slider, line = -1)
62
+ line = pick_line(line)
63
+ ret( xosd_display(@xosd, line, XOSD_slider, slider.to_i) )
64
+ end
65
+
66
+ def timeout=(timeout)
67
+ @configured = true
68
+ ret( xosd_set_timeout(@xosd, timeout) )
69
+ end
70
+
71
+ def font=(font)
72
+ @configured = true
73
+ ret( xosd_set_font(@xosd, font) )
74
+ end
75
+
76
+ def valign=(valign)
77
+ @configured = true
78
+ case valign
79
+ when "top"
80
+ xosd_set_pos(@xosd, Libxosd::XOSD_top)
81
+ when "middle"
82
+ xosd_set_pos(@xosd, Libxosd::XOSD_middle)
83
+ when "bottom"
84
+ xosd_set_pos(@xosd, Libxosd::XOSD_bottom)
85
+ else
86
+ raise "Unknown valign: #{valign}"
87
+ end
88
+ end
89
+
90
+ def align=(align)
91
+ @configured = true
92
+ case align
93
+ when "left"
94
+ xosd_set_align(@xosd, Libxosd::XOSD_left)
95
+ when "center"
96
+ xosd_set_align(@xosd, Libxosd::XOSD_center)
97
+ when "right"
98
+ xosd_set_align(@xosd, Libxosd::XOSD_right)
99
+ else
100
+ raise "Unknown align: #{align}"
101
+ end
102
+ end
103
+
104
+ def color=(color)
105
+ @configured = true
106
+ ret( xosd_set_colour(@xosd, color) )
107
+ end
108
+
109
+ def shadow_color=(color)
110
+ @configured = true
111
+ ret( xosd_set_shadow_colour(@xosd, color) )
112
+ end
113
+
114
+ def outline_color=(color)
115
+ @configured = true
116
+ ret( xosd_set_outline_colour(@xosd, color) )
117
+ end
118
+
119
+ def shadow_offset=(offset)
120
+ @configured = true
121
+ ret( xosd_set_shadow_offset(@xosd, offset) )
122
+ end
123
+
124
+ def outline_width=(offset)
125
+ @configured = true
126
+ ret( xosd_set_outline_offset(@xosd, offset) )
127
+ end
128
+
129
+ def vertical_offset=(offset)
130
+ @configured = true
131
+ ret( xosd_set_vertical_offset(@xosd, offset) )
132
+ end
133
+
134
+ def horizontal_offset=(offset)
135
+ @configured = true
136
+ ret( xosd_set_horizontal_offset(@xosd, offset) )
137
+ end
138
+
139
+ def bar_length=(len)
140
+ @configured = true
141
+ ret( xosd_set_bar_length(@xosd, len) )
142
+ end
143
+
144
+ def onscreen?
145
+ return ret( xosd_is_onscreen(@xosd) ) == 1
146
+ end
147
+
148
+ def color
149
+ return xosd_get_colour(@xosd)
150
+ end
151
+
152
+ def num_lines
153
+ return ret( xosd_get_number_lines(@xosd) )
154
+ end
155
+
156
+ def scroll(lines)
157
+ return ret( xosd_scroll(@xosd, lines) )
158
+ end
159
+
160
+
161
+ def wait
162
+ xosd_wait_until_no_display(@xosd)
163
+ end
164
+
165
+ def destroy
166
+ xosd_destroy(@xosd)
167
+ @xosd = nil
168
+ end
169
+
170
+ def ret(value)
171
+ if (value == -1)
172
+ error = Libxosd.xosd_error
173
+ raise error
174
+ else
175
+ return value
176
+ end
177
+ end
178
+
179
+ private :ret
180
+
181
+ end
182
+
@@ -0,0 +1,37 @@
1
+
2
+ class XosdBase
3
+
4
+ def clear
5
+ @lines_drawn = 0
6
+ 0.upto(self.num_lines-1) { |line|
7
+ self.display('', line)
8
+ }
9
+ end
10
+
11
+ def puts(text)
12
+ display(text)
13
+ end
14
+
15
+ def pick_line(line)
16
+ if (line < 0)
17
+ line = @lines_drawn
18
+ if (@lines_drawn < self.num_lines)
19
+ @lines_drawn = @lines_drawn + 1
20
+ end
21
+ end
22
+ return line
23
+ end
24
+
25
+ def ret(value)
26
+ if (value == -1)
27
+ error = Libxosd.xosd_error
28
+ raise error
29
+ else
30
+ return value
31
+ end
32
+ end
33
+
34
+ private :ret, :pick_line
35
+
36
+ end
37
+
@@ -0,0 +1,13 @@
1
+
2
+ require 'drb'
3
+
4
+ class XosdClient
5
+
6
+ def XosdClient::connect(host, port)
7
+ DRb.start_service
8
+ osd = DRbObject.new(nil, "druby://#{host}:#{port}")
9
+ return osd
10
+ end
11
+
12
+ end
13
+
@@ -0,0 +1,42 @@
1
+
2
+ require 'xosd'
3
+ require 'drb'
4
+
5
+ class Xosd
6
+
7
+ def destroy
8
+ Kernel.puts "Exiting"
9
+ Thread.new {
10
+ sleep 1
11
+ exit! 0
12
+ }
13
+ end
14
+ end
15
+
16
+ class XosdServer
17
+
18
+ def XosdServer::start(lines, host, port)
19
+ DRb.start_service
20
+ osd = Xosd.new(lines)
21
+ DRb.start_service("druby://#{host}:#{port}", osd)
22
+ end
23
+
24
+ end
25
+
26
+ if ($0 == 'xosdserver.rb')
27
+ if ARGV[0]
28
+ lines = ARGV[0].to_i
29
+ else
30
+ lines = 2
31
+ end
32
+
33
+ if ARGV[1]
34
+ port = ARGV[1].to_i
35
+ else
36
+ port = 9393
37
+ end
38
+ puts "Starting with #{lines} lines, on port #{port}"
39
+ server = XosdServer.start(lines, '', port)
40
+ puts "Press enter to quit"
41
+ $stdin.readline
42
+ end
metadata ADDED
@@ -0,0 +1,55 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.1
3
+ specification_version: 1
4
+ name: libxosd-ruby
5
+ version: !ruby/object:Gem::Version
6
+ version: "0.4"
7
+ date: 2004-09-17
8
+ summary: libxosd-ruby is a ruby interface to libxosd
9
+ require_paths:
10
+ - "."
11
+ author: Derek Lewis
12
+ email: libxosd-ruby@lewisd.com
13
+ homepage: http://libxosd-ruby.rubyforge.org/
14
+ rubyforge_project: libxosd-ruby
15
+ description: "XOSD is a system that displays text on top of the other windows, much like the
16
+ on-screen display (OSD) used by most modern televisions and video-players.
17
+ libxosd-ruby is a ruby interface to this library."
18
+ autorequire: xosd
19
+ default_executable:
20
+ bindir: bin
21
+ has_rdoc: false
22
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
23
+ requirements:
24
+ -
25
+ - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: 1.8.1
28
+ version:
29
+ platform: ruby
30
+ files:
31
+ - Makefile
32
+ - LICENSE
33
+ - Rakefile
34
+ - README
35
+ - MANIFEST
36
+ - xosd.rb
37
+ - break1.rb
38
+ - xosdclient.rb
39
+ - test1.rb
40
+ - test2.rb
41
+ - install.rb
42
+ - extconf.rb
43
+ - xosdbase.rb
44
+ - xosdserver.rb
45
+ - libxosd_wrap.c
46
+ - libxosd.i
47
+ test_files: []
48
+ rdoc_options: []
49
+ extra_rdoc_files: []
50
+ executables: []
51
+ extensions:
52
+ - extconf.rb
53
+ requirements:
54
+ - libxosd
55
+ dependencies: []