pulseaudio_simple_fiddle 0.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/pulseaudio_simple_fiddle.rb +57 -0
- metadata +56 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f8e9574c69aca85e111e3ba10fb34be6f04eaa84a36ac85cea78a93e349ac75f
|
4
|
+
data.tar.gz: 6686c626cccbe18baf98de58fc2b1af00508741cffc1470678dca4228e5c6ff2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 84492e6e6e29b2ef7e404380250a9a05ecb10943e365431bc68a86172db76f253d2cf484c0ea3fefc13b3b2b1c92e7cec321b2f64c2efadd79b815898467fa33
|
7
|
+
data.tar.gz: 962bea9664b940dd3acbbf8abb59519cf850ab28322cb67b8e037db2377f29467906e2a42353f342b70c298ef256f3d2e96e9ae409ff0b922ac22be75c7c8394
|
@@ -0,0 +1,57 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'fiddle'
|
3
|
+
require 'fiddle/import'
|
4
|
+
|
5
|
+
module PulseAudio
|
6
|
+
module SampleFormat
|
7
|
+
INVALID,U8,ALAW,ULAW,S16LE,S16BE,F32LE,F32BE,S32LE,S32BE,S24LE,S24BE,S2432LE,S2432BE,MAX=(-1..12).to_a
|
8
|
+
end
|
9
|
+
module StreamDirection
|
10
|
+
NODIRECTION,PLAYBACK,RECORD,UPLOAD=(0..3).to_a
|
11
|
+
end
|
12
|
+
module Simple
|
13
|
+
extend Fiddle::Importer
|
14
|
+
dlload 'libpulse-simple.so'
|
15
|
+
|
16
|
+
SampleSpec = struct [
|
17
|
+
'int sample_format',
|
18
|
+
'uint32_t rate',
|
19
|
+
'uint8_t channels'
|
20
|
+
]
|
21
|
+
extern 'void * pa_simple_new ( const char * server, const char * name, int dir,const char * dev, const char * stream_name, const int * ss, const pa_channel_map * map, const pa_buffer_attr * attr,int * error );'
|
22
|
+
extern 'int pa_simple_write ( void * s, const void * data, size_t bytes, int * error )'
|
23
|
+
extern 'void pa_simple_free ( void * s )'
|
24
|
+
extern 'uint64_t pa_simple_get_latency ( void * s, int * error )'
|
25
|
+
end
|
26
|
+
|
27
|
+
class SimpleO
|
28
|
+
def handle_error code
|
29
|
+
throw [code,"Error #{code} in #{caller[0]}"] unless 0 == code
|
30
|
+
end
|
31
|
+
def initialize name,desc,server:nil,device:nil,map:nil,buffer:nil,format:SampleFormat::F32LE,rate:44100,channels:2
|
32
|
+
ps=Simple::SampleSpec.malloc
|
33
|
+
ps.sample_format=format
|
34
|
+
ps.rate=rate
|
35
|
+
ps.channels=channels
|
36
|
+
@err = 0
|
37
|
+
@handle=Simple::pa_simple_new(server,name,StreamDirection::PLAYBACK,device,desc,ps,nil,nil,@err)
|
38
|
+
handle_error @err
|
39
|
+
end
|
40
|
+
def write buf
|
41
|
+
@err=0
|
42
|
+
Simple::pa_simple_write @handle,buf,buf.length,@err
|
43
|
+
handle_error @err
|
44
|
+
end
|
45
|
+
def free
|
46
|
+
Simple::pa_simple_free @handle
|
47
|
+
@handle=nil
|
48
|
+
end
|
49
|
+
def latency
|
50
|
+
@err=0
|
51
|
+
val=Simple::pa_simple_get_latency @handle,@err
|
52
|
+
handle_error @err
|
53
|
+
val
|
54
|
+
end
|
55
|
+
alias :close :free
|
56
|
+
end
|
57
|
+
end
|
metadata
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: pulseaudio_simple_fiddle
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Benjamin Cook
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-06-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: fiddle
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.0'
|
27
|
+
description: A Ruby-Fiddle implementation of the PulseAudio Simple API.
|
28
|
+
email: root@baryon.it
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- lib/pulseaudio_simple_fiddle.rb
|
34
|
+
homepage: https://github.com/Canar/pulseaudio_simple_fiddle
|
35
|
+
licenses: []
|
36
|
+
metadata: {}
|
37
|
+
post_install_message:
|
38
|
+
rdoc_options: []
|
39
|
+
require_paths:
|
40
|
+
- lib
|
41
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '2.5'
|
46
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '0'
|
51
|
+
requirements: []
|
52
|
+
rubygems_version: 3.3.15
|
53
|
+
signing_key:
|
54
|
+
specification_version: 4
|
55
|
+
summary: A Ruby-Fiddle implementation of the PulseAudio Simple API.
|
56
|
+
test_files: []
|