libxosd-ruby 0.4

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.
@@ -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: []