mumble-ruby2 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,24 @@
1
+ module Mumble
2
+ module ThreadTools
3
+ class DuplicateThread < StandardError; end
4
+
5
+ protected
6
+ def spawn_thread(sym)
7
+ raise DuplicateThread if threads.has_key? sym
8
+ threads[sym] = Thread.new { loop { send sym } }
9
+ end
10
+
11
+ def spawn_threads(*symbols)
12
+ symbols.map { |sym| spawn_thread sym }
13
+ end
14
+
15
+ def kill_threads
16
+ threads.values.map(&:kill)
17
+ threads.clear
18
+ end
19
+
20
+ def threads
21
+ @threads ||= {}
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,51 @@
1
+ module Mumble
2
+ class User < Model
3
+ attribute :session
4
+ attribute :user_id
5
+ attribute :actor
6
+ attribute :name
7
+ attribute :channel_id
8
+ attribute :hash
9
+ attribute :comment
10
+ attribute :mute
11
+ attribute :deaf
12
+ attribute :self_mute
13
+ attribute :self_deaf
14
+
15
+ def current_channel
16
+ client.channels[channel_id]
17
+ end
18
+
19
+ def send_text(string)
20
+ client.text_user(self, string)
21
+ end
22
+
23
+ def send_image(file)
24
+ client.text_user_img(self, file)
25
+ end
26
+
27
+ def mute(bool=true)
28
+ client.send_user_state self_mute: bool
29
+ end
30
+
31
+ def deafen(bool=true)
32
+ client.send_user_state self_deaf: bool
33
+ end
34
+
35
+ def muted?
36
+ !!data['suppress'] || !!data['mute'] || !!self_mute
37
+ end
38
+
39
+ def deafened?
40
+ !!data['deaf'] || !!self_deaf
41
+ end
42
+
43
+ def register
44
+ client.send_user_state(session: session, user_id: 0)
45
+ end
46
+
47
+ def stats
48
+ client.send_user_stats session: session
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,3 @@
1
+ module Mumble
2
+ VERSION = "1.1.4"
3
+ end
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/mumble-ruby2/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Matthew Perry", "Philip Mayer"]
6
+ gem.email = ["philip.mayer@shadowsith.de"]
7
+ gem.description = %q{Ruby API for interacting with a mumble server}
8
+ gem.summary = %q{Implements the mumble VOIP protocol in ruby for more easily writing clients.}
9
+ gem.homepage = "https://github.com/Shadowsith/mumble-ruby2"
10
+
11
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
12
+ gem.files = `git ls-files`.split("\n")
13
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
14
+ gem.name = "mumble-ruby2"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = Mumble::VERSION
17
+ gem.license = "MIT"
18
+
19
+ gem.add_dependency "activesupport", "~> 4.2.6"
20
+ gem.add_dependency "ruby_protobuf", "~> 0.4.11"
21
+ gem.add_dependency "hashie", "~> 4.1.0"
22
+ gem.add_dependency "opus-ruby", "~> 1.0.1"
23
+ gem.add_dependency "wavefile", "~> 1.1.1"
24
+ end
metadata ADDED
@@ -0,0 +1,137 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mumble-ruby2
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.4
5
+ platform: ruby
6
+ authors:
7
+ - Matthew Perry
8
+ - Philip Mayer
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2021-07-28 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 4.2.6
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 4.2.6
28
+ - !ruby/object:Gem::Dependency
29
+ name: ruby_protobuf
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: 0.4.11
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: 0.4.11
42
+ - !ruby/object:Gem::Dependency
43
+ name: hashie
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 4.1.0
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 4.1.0
56
+ - !ruby/object:Gem::Dependency
57
+ name: opus-ruby
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: 1.0.1
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: 1.0.1
70
+ - !ruby/object:Gem::Dependency
71
+ name: wavefile
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: 1.1.1
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: 1.1.1
84
+ description: Ruby API for interacting with a mumble server
85
+ email:
86
+ - philip.mayer@shadowsith.de
87
+ executables: []
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - ".gitignore"
92
+ - ".ruby-gemset"
93
+ - ".ruby-version"
94
+ - Gemfile
95
+ - LICENSE.txt
96
+ - README.rdoc
97
+ - Rakefile
98
+ - lib/mumble-ruby2.rb
99
+ - lib/mumble-ruby2/audio_player.rb
100
+ - lib/mumble-ruby2/audio_recorder.rb
101
+ - lib/mumble-ruby2/cert_manager.rb
102
+ - lib/mumble-ruby2/channel.rb
103
+ - lib/mumble-ruby2/client.rb
104
+ - lib/mumble-ruby2/connection.rb
105
+ - lib/mumble-ruby2/img_reader.rb
106
+ - lib/mumble-ruby2/messages.rb
107
+ - lib/mumble-ruby2/model.rb
108
+ - lib/mumble-ruby2/mumble.proto
109
+ - lib/mumble-ruby2/packet_data_stream.rb
110
+ - lib/mumble-ruby2/thread_tools.rb
111
+ - lib/mumble-ruby2/user.rb
112
+ - lib/mumble-ruby2/version.rb
113
+ - mumble-ruby2.gemspec
114
+ homepage: https://github.com/Shadowsith/mumble-ruby2
115
+ licenses:
116
+ - MIT
117
+ metadata: {}
118
+ post_install_message:
119
+ rdoc_options: []
120
+ require_paths:
121
+ - lib
122
+ required_ruby_version: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ requirements: []
133
+ rubygems_version: 3.2.21
134
+ signing_key:
135
+ specification_version: 4
136
+ summary: Implements the mumble VOIP protocol in ruby for more easily writing clients.
137
+ test_files: []