class Mumbletune::MumbleClient
Public Class Methods
new()
click to toggle source
# File lib/mumbletune/mumble_client.rb, line 6 def initialize m_conf = Mumbletune.config["mumble"] format = {rate: 44100, channels: 2} # Format used by spotify @cli = Mumble::Client.new(m_conf['host'], m_conf['port'], m_conf['username'], m_conf['password'], format) @cli.on_server_sync do |message| # Once connected. @cli.session = message.session # housekeeping for mumble-ruby connect_to = @cli.channels.select { |key, hash| hash["name"] == m_conf["channel"] }.first[1][:name] @cli.join_channel connect_to @ready = true end @cli.on_text_message do |data| if data[:session].include?(@cli.me[:session]) # if message was sent to us # interpret the message in a separate thread Thread.new { Message.parse(@cli, data) } end end end
Public Instance Methods
broadcast(text)
click to toggle source
# File lib/mumbletune/mumble_client.rb, line 56 def broadcast(text) @cli.text_channel(@cli.me.channel_id, text) end
connect()
click to toggle source
# File lib/mumbletune/mumble_client.rb, line 27 def connect @ready = false @cli.connect @ready_wait = Thread.new do sleep 0.1 until @ready end end
disconnect()
click to toggle source
# File lib/mumbletune/mumble_client.rb, line 46 def disconnect @audio_stream.stop if @audio_stream @cli.disconnect end
message(users, text)
click to toggle source
# File lib/mumbletune/mumble_client.rb, line 51 def message(users, text) users = Array(users) # force into array users.each { |u| @cli.text_user(u.session, text) } end
stream()
click to toggle source
# File lib/mumbletune/mumble_client.rb, line 36 def stream @ready_wait.join Thread.current.priority = 5 queue = Mumbletune.player.audio_queue @audio_stream = @cli.stream_from_queue(queue) self.volume = Mumbletune.config["player"]["default_volume"] end
volume()
click to toggle source
# File lib/mumbletune/mumble_client.rb, line 60 def volume (@audio_stream.volume * 100).to_i end
volume=(vol)
click to toggle source
# File lib/mumbletune/mumble_client.rb, line 64 def volume=(vol) @audio_stream.volume = vol.to_i end