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