Class: PulseAudio::SimpleO

Inherits:
Object
  • Object
show all
Defined in:
lib/pulseaudio_simple_fiddle.rb

Instance Method Summary collapse

Constructor Details

#initialize(name, desc, server: nil, device: nil, map: nil, buffer: nil, format: SampleFormat::F32LE, rate: 44100, channels: 2) ⇒ SimpleO

Returns a new instance of SimpleO.



31
32
33
34
35
36
37
38
39
# File 'lib/pulseaudio_simple_fiddle.rb', line 31

def initialize name,desc,server:nil,device:nil,map:nil,buffer:nil,format:SampleFormat::F32LE,rate:44100,channels:2
  ps=Simple::SampleSpec.malloc
  ps.sample_format=format
  ps.rate=rate
  ps.channels=channels
  @err = 0
  @handle=Simple::pa_simple_new(server,name,StreamDirection::PLAYBACK,device,desc,ps,nil,nil,@err)
  handle_error @err
end

Instance Method Details

#freeObject Also known as: close



45
46
47
48
# File 'lib/pulseaudio_simple_fiddle.rb', line 45

def free
  Simple::pa_simple_free @handle
  @handle=nil
end

#handle_error(code) ⇒ Object



28
29
30
# File 'lib/pulseaudio_simple_fiddle.rb', line 28

def handle_error code
  throw [code,"Error #{code} in #{caller[0]}"] unless 0 == code
end

#latencyObject



49
50
51
52
53
54
# File 'lib/pulseaudio_simple_fiddle.rb', line 49

def latency
  @err=0
  val=Simple::pa_simple_get_latency @handle,@err
  handle_error @err
  val
end

#write(buf) ⇒ Object



40
41
42
43
44
# File 'lib/pulseaudio_simple_fiddle.rb', line 40

def write buf
  @err=0
  Simple::pa_simple_write @handle,buf,buf.length,@err
  handle_error @err
end