pulseaudio_simple_fiddle 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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: []
|