fest 1.1.10 → 1.2.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a9237e21fc231d0ba30b76d23b80d12496ab47ae
4
- data.tar.gz: 2ada0f7803419ef8be89927e9944b3bc5bc63df6
3
+ metadata.gz: 7d50c7542a471b18e485824b82e1b2bb9167a731
4
+ data.tar.gz: dba013463a29ac9cc600d8a5409cbb31ae9b2a41
5
5
  SHA512:
6
- metadata.gz: d3eaf3e2d54049daefc46eff64c1207248784dc53ea30d365762f6e798695f301285136310a25149ac42618659aaaa6493f4ee239f3dd0598f76fd849ab44d3b
7
- data.tar.gz: 95b7e5c453789a106c7094e0445e83e2ef405b66eb08180abf03e028e950d006194b33ab2dc6289368b6678d3d86086e66fd76f48d503ed3ba48a66578037a93
6
+ metadata.gz: a5b23bba2ab84449c1d0f39fc860e42ebdc6cd44d07b6e970ee404e953a012e803af17448e4325b3e1ac8def3ab080b57aa816d61a2b3602e038f4ad2f3b7fb4
7
+ data.tar.gz: f986e9e00655b709cf5cb7fba4c82599be713bfba578c80ed4729f54a4bdc8dc86c2d2532c43d7e0dc3a8230f5a0938799b123e88f3446927c7025b3b98b37e3
data/.gitignore CHANGED
@@ -216,3 +216,5 @@ pip-log.txt
216
216
 
217
217
  # my
218
218
  *.*~
219
+ Gemfile.lock
220
+ coverage/
data/.travis.yml ADDED
@@ -0,0 +1,12 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1.3
6
+ - 2.1.4
7
+ - ruby-head
8
+ before_install:
9
+ - 'echo ''gem: --no-ri --no-rdoc'' > ~/.gemrc'
10
+ install: bundle install
11
+ after_success:
12
+ - coveralls
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in fest.gemspec
4
3
  gemspec
4
+ gem 'coveralls', require: false
data/README.md ADDED
@@ -0,0 +1,96 @@
1
+ ## FEST
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/fest.svg)](http://badge.fury.io/rb/fest)
4
+ [![Build Status](https://travis-ci.org/AfsmNGhr/fest.svg)](https://travis-ci.org/AfsmNGhr/fest)
5
+ [![Coverage Status](https://coveralls.io/repos/AfsmNGhr/fest/badge.svg?branch=master)](https://coveralls.io/r/AfsmNGhr/fest?branch=master)
6
+ [![License](https://img.shields.io/packagist/l/doctrine/orm.svg)](https://github.com/AfsmNGhr/fest)
7
+
8
+ Ruby wrapper use [Festival](https://wiki.archlinux.org/index.php/Festival_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29) for speak of the text and scripts ...
9
+
10
+ ## Requirements
11
+
12
+ - *nix* or OS X ...
13
+ - [Festival](https://wiki.archlinux.org/index.php/Festival_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29) and necessary languages ...
14
+ - [Pulseaudio](https://wiki.archlinux.org/index.php/PulseAudio_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29)
15
+ - xbacklight ([backlight](https://wiki.archlinux.org/index.php/Backlight_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29))
16
+
17
+ ## Install
18
+
19
+ ```.ruby
20
+ # Gemfile
21
+ gem 'fest'
22
+ ```
23
+ or
24
+ ```.ruby
25
+ $ gem install fest
26
+ ```
27
+
28
+ ## Used
29
+ ### Call methods
30
+ ```.ruby
31
+ require 'fest'
32
+
33
+ @fest = Fest.new
34
+ @fest.say("Пример")
35
+ # => Say "Пример"
36
+
37
+ # Expanded option
38
+ @fest.params = {:language => "cmu_us_slt_arctic_hts"}
39
+ @fest.say("This is an example")
40
+ # => Say "This is an example"
41
+
42
+ # All options
43
+ # params || default value
44
+ params[:path] || "/tmp"
45
+ params[:min_volume] || 20
46
+ params[:max_volume] || 60
47
+ params[:step] || 4
48
+ params[:backlight] || nil # disable check backlight
49
+ params[:language] || "voice_msu_ru_nsh_clunits"
50
+
51
+ # Declension
52
+ text = @fest.pluraform(2, %w(Сообщение Сообщения Сообщений))
53
+ puts text
54
+ # => "Сообщения"
55
+ ```
56
+
57
+ ## Сustomization
58
+
59
+ ```.ruby
60
+ @fest.init(params)
61
+ # check @current_volume
62
+ # @path, @index, @min_volume, @max_volume ...
63
+
64
+ @fest.check_conditions
65
+ # @fest.check_say_wav
66
+ # check_light и check_home_theater
67
+
68
+ @fest.check_light # (with xbacklight)
69
+ # exit if backlight equal 0
70
+
71
+ @fest.check_home_theater
72
+ # exit if run (vlc, kodi(xbmc))
73
+
74
+ @fest.make_wav(text)
75
+
76
+ @fest.expect_if_paplay_now
77
+ # wait if paplay active ...
78
+
79
+ @fest.play_wav
80
+ # @fest.check_optimal_volume (optimize min_volume and max_volume)
81
+ # @fest.turn_down_volume (with @step)
82
+ # @volume = @current_volume - @current_volume / 10 * @step
83
+ # play wav ... with @optimize_volume
84
+ # @fest.return_current_volume (with @step)
85
+ # delete_wav
86
+ ```
87
+
88
+ ## Issues
89
+ ### Level of loudness doesn't dump after an exit
90
+
91
+ ```.bash
92
+ #!/bin/bash
93
+
94
+ vlc.run --play-and-exit $*
95
+ amixer set Master 30% > /dev/null 2>&1
96
+ ```
data/Rakefile ADDED
@@ -0,0 +1,14 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+
4
+ begin
5
+ Bundler.setup(:default, :development)
6
+ rescue Bundler::BundlerError => e
7
+ $stderr.puts e.message
8
+ $stderr.puts "Run `bundle install` to install missing gems"
9
+ exit e.status_code
10
+ end
11
+
12
+ require 'rspec/core/rake_task'
13
+ RSpec::Core::RakeTask.new(:spec)
14
+ task :default => :spec
data/changelog.org CHANGED
@@ -1,3 +1,7 @@
1
+ ** 1.2.10 (2015-03-11 Ср)
2
+ - say without params
3
+ - attr_accessor params
4
+ - add specs and modules
1
5
  ** 1.1.10 (2015-02-21 Сб)
2
6
  - fix expect_if_paplay_now
3
7
  - translation
data/fest.gemspec CHANGED
@@ -1,16 +1,21 @@
1
- Gem::Specification.new do |s|
2
- s.name = "fest"
3
- s.version = "1.1.10"
4
- s.authors = ["Alexsey Ermolaev"]
5
- s.email = %q{afay.zangetsu@gmail.com}
6
- s.homepage = %q{https://github.com/AfsmNGhr/fest}
7
- s.description = %q{Ruby wrapper for festival scripts}
8
- s.summary = %q{Ruby wrapper for festival speech engine}
9
- s.license = 'MIT'
1
+ Gem::Specification.new do |gem|
2
+ gem.name = 'fest'
3
+ gem.version = '1.2.10'
4
+ gem.authors = 'Alexsey Ermolaev'
5
+ gem.email = 'afay.zangetsu@gmail.com'
6
+ gem.homepage = 'https://github.com/AfsmNGhr/fest'
7
+ gem.description = 'Ruby wrapper for festival scripts'
8
+ gem.summary = 'Ruby wrapper for festival speech engine'
9
+ gem.license = 'MIT'
10
10
 
11
- s.files = `git ls-files`.split("\n")
12
- s.require_paths = ["lib"]
11
+ gem.add_development_dependency 'rake', '~> 0'
12
+ gem.add_development_dependency 'rspec', '3.2.0'
13
13
 
14
- s.requirements = ['*nix* or OS X', 'Pulseaudio sound server',
15
- 'Festival speech engine', 'xbacklight']
14
+ gem.files = `git ls-files`.split("\n")
15
+ gem.require_paths = ['lib']
16
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
+
18
+ gem.extra_rdoc_files = ['License.org', 'README.md']
19
+ gem.requirements = ['*nix* or OS X', 'Pulseaudio sound server',
20
+ 'Festival snpeech engine', 'xbacklight']
16
21
  end
@@ -0,0 +1,19 @@
1
+ # coding: utf-8
2
+ #
3
+ module Conditions
4
+ def check_conditions
5
+ check_light
6
+ check_home_theater
7
+ end
8
+
9
+ def check_light
10
+ exit if @params[:backlight].nil? && `xbacklight`.to_i == 0
11
+ end
12
+
13
+ def check_home_theater
14
+ xbmc = `ps -el | grep xbmc | wc -l`.to_i
15
+ vlc = `ps -el | grep vlc | wc -l`.to_i
16
+ kodi = `ps -el | grep kodi | wc -l`.to_i
17
+ exit if xbmc > 0 || vlc > 0 || kodi > 0
18
+ end
19
+ end
@@ -0,0 +1,32 @@
1
+ # coding: utf-8
2
+ #
3
+ module Params
4
+ def path
5
+ @path = @params[:path] || '/tmp'
6
+ end
7
+
8
+ def current_volume
9
+ @current_volume = `amixer | grep -o '[0-9]*' | sed "5 ! d"`.to_i
10
+ end
11
+
12
+ def index
13
+ @index = `ls -r #{@path} | grep -o '[0-9]*' | sed "1 ! d"`.to_i
14
+ @index > 0 ? @index += 1 : @index = 1
15
+ end
16
+
17
+ def min_volume
18
+ @min_volume = @params[:min_volume] || 20
19
+ end
20
+
21
+ def max_volume
22
+ @max_volume = @params[:max_volume] || 60
23
+ end
24
+
25
+ def step
26
+ @step = @params[:step] || 4
27
+ end
28
+
29
+ def language
30
+ @language = @params[:language] || 'voice_msu_ru_nsh_clunits'
31
+ end
32
+ end
@@ -0,0 +1,45 @@
1
+ # coding: utf-8
2
+ #
3
+ module Volume
4
+ def check_optimal_volume
5
+ @volume = @current_volume - @current_volume / 10 * @step
6
+ end
7
+
8
+ def optimize_volume
9
+ @optimize_volume = (
10
+ if @current_volume > @max_volume
11
+ @max_volume
12
+ elsif @current_volume < @min_volume
13
+ @min_volume
14
+ else
15
+ @current_volume
16
+ end
17
+ )
18
+ end
19
+
20
+ def inputs
21
+ @inputs = `pactl list sink-inputs | grep № | grep -o '[0-9]*'`.split("\n")
22
+ end
23
+
24
+ def turn_down_volume
25
+ @inputs.each do |input|
26
+ volume = @current_volume
27
+ loop do
28
+ system("pactl set-sink-input-volume #{input} '#{volume * 655}'")
29
+ volume -= @step
30
+ break if volume < @volume
31
+ end
32
+ end
33
+ end
34
+
35
+ def return_current_volume
36
+ @inputs.each do |input|
37
+ volume = @volume
38
+ loop do
39
+ system("pactl set-sink-input-volume #{input} '#{volume * 655}'")
40
+ volume += @step
41
+ break if volume > @current_volume
42
+ end
43
+ end
44
+ end
45
+ end
data/lib/fest.rb CHANGED
@@ -1,71 +1,39 @@
1
1
  # coding: utf-8
2
+ # Ruby wrapper for Festival speech engine
3
+ # author Alexsey Ermolaev afay.zangetsu@gmail.com
4
+
5
+ require_relative './fest/params'
6
+ require_relative './fest/volume'
7
+ require_relative './fest/conditions'
2
8
  #
3
9
  class Fest
4
- def say(string, params = {})
5
- init(params)
10
+ include Params
11
+ include Volume
12
+ include Conditions
13
+ attr_accessor :params
14
+
15
+ def say(string)
16
+ init
6
17
  check_conditions
7
18
  make_wav(string)
8
19
  expect_if_paplay_now
9
- check_optimal_volume
10
20
  play_wav
11
21
  end
12
22
 
13
- def init(params)
14
- @params = params
15
- @path = @params[:path] || '/tmp'
16
- @current_volume = `amixer | grep -o '[0-9]*' | sed "5 ! d"`.to_i
17
- @index = `ls -r #{@path} | grep -o '[0-9]*' | sed "1 ! d"`.to_i
18
- @min_volume = @params[:down_volume[0]] || 20
19
- @max_volume = @params[:down_volume[1]] || 60
20
- @step = @params[:down_volume[2]] || 4
21
- end
22
-
23
- def check_optimal_volume
24
- @volume = @current_volume - @current_volume / 10 * @step
25
- optimize_min_and_max_volume
26
- end
27
-
28
- def optimize_min_and_max_volume
29
- @optimize_volume = (
30
- if @current_volume > @max_volume
31
- @max_volume
32
- elsif @current_volume < @min_volume
33
- @min_volume
34
- else
35
- @current_volume
36
- end
37
- )
38
- end
39
-
40
- def check_conditions
41
- check_light
42
- check_home_theater
43
- check_say_wav
44
- end
45
-
46
- def check_light
47
- exit if @params[:backlight].nil? && `xbacklight`.to_i == 0
48
- end
49
-
50
- def check_home_theater
51
- xbmc = `ps -el | grep xbmc | wc -l`.to_i
52
- vlc = `ps -el | grep vlc | wc -l`.to_i
53
- kodi = `ps -el | grep kodi | wc -l`.to_i
54
- exit if xbmc > 0 || vlc > 0 || kodi > 0
55
- end
56
-
57
- def check_say_wav
58
- @index > 0 ? @index += 1 : @index = 1
23
+ def init
24
+ @params ||= {}
25
+ current_volume
26
+ min_volume
27
+ max_volume
28
+ language
29
+ index
30
+ path
31
+ step
59
32
  end
60
33
 
61
34
  def make_wav(string)
62
35
  system("echo '#{string}' | text2wave -o #{@path}/say_#{@index}.wav \
63
- -eval '(#{@params[:language] || 'voice_msu_ru_nsh_clunits'})' \
64
- > /dev/null 2>&1")
65
- end
66
-
67
- def change_volume(volume)
68
- system("amixer set Master #{volume}% > /dev/null 2>&1")
36
+ -eval '(#{@language})' > /dev/null 2>&1")
69
37
  end
70
38
 
71
39
  def expect_if_paplay_now
@@ -75,38 +43,14 @@ class Fest
75
43
  end
76
44
  end
77
45
 
78
- def turn_down_volume
79
- @inputs = `pactl list sink-inputs | grep № | grep -o '[0-9]*'`.split("\n")
80
- @inputs.each do |input|
81
- volume = @current_volume
82
- loop do
83
- system("pactl set-sink-input-volume #{input} '#{volume * 655}'")
84
- volume -= @step
85
- break if volume < @volume
86
- end
87
- end
88
- end
89
-
90
46
  def play_wav
47
+ check_optimal_volume
48
+ optimize_volume
49
+ inputs
91
50
  turn_down_volume
92
51
  system("paplay #{@path}/say_#{@index}.wav \
93
52
  --volume='#{@optimize_volume * 655}' > /dev/null 2>&1")
94
53
  return_current_volume
95
- delete_wav
96
- end
97
-
98
- def return_current_volume
99
- @inputs.each do |input|
100
- volume = @volume
101
- loop do
102
- system("pactl set-sink-input-volume #{input} '#{volume * 655}'")
103
- volume += @step
104
- break if volume > @current_volume
105
- end
106
- end
107
- end
108
-
109
- def delete_wav
110
54
  system("rm -f #{@path}/say_#{@index}.wav")
111
55
  end
112
56
 
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Fest do
4
+ before(:each) do
5
+ @fest = Fest.new
6
+ @fest.params = {:language => 'cmu_us_slt_arctic_hts',
7
+ :min_volume => 30,
8
+ :max_volume => 70,
9
+ :step => 3,
10
+ :path => '~/'}
11
+ end
12
+
13
+ it 'check custom params' do
14
+ params = {:language => 'cmu_us_slt_arctic_hts',
15
+ :min_volume => 30,
16
+ :max_volume => 70,
17
+ :step => 3,
18
+ :path => '~/'}
19
+ expect(@fest.params).to eq(params)
20
+ end
21
+
22
+ it 'check custom path in params' do
23
+ expect(@fest.path).to eq('~/')
24
+ end
25
+
26
+ it 'check custom min volume' do
27
+ expect(@fest.min_volume).to eq(30)
28
+ end
29
+
30
+ it 'check custom max volume' do
31
+ expect(@fest.max_volume).to eq(70)
32
+ end
33
+
34
+ it 'check custom step' do
35
+ expect(@fest.step).to eq(3)
36
+ end
37
+
38
+ it 'check custom language' do
39
+ expect(@fest.language).to eq('cmu_us_slt_arctic_hts')
40
+ end
41
+ end
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Fest do
4
+ before(:each) do
5
+ @fest = Fest.new
6
+ @fest.params = {}
7
+ end
8
+
9
+ it 'check default params' do
10
+ expect(@fest.params).to eq({})
11
+ end
12
+
13
+ it 'check default path' do
14
+ expect(@fest.path).to eq('/tmp')
15
+ end
16
+
17
+ it 'check current volume' do
18
+ vol = `amixer | grep -o '[0-9]*' | sed "5 ! d"`.to_i
19
+ expect(@fest.current_volume).to eq(vol)
20
+ end
21
+
22
+ it 'check index' do
23
+ i = `ls -r #{@path} | grep -o '[0-9]*' | sed "1 ! d"`.to_i
24
+ expect(@fest.index).not_to eq(i)
25
+ end
26
+
27
+ it 'check default min volume' do
28
+ expect(@fest.min_volume).to eq(20)
29
+ end
30
+
31
+ it 'check default max volume' do
32
+ expect(@fest.max_volume).to eq(60)
33
+ end
34
+
35
+ it 'check default step' do
36
+ expect(@fest.step).to eq(4)
37
+ end
38
+
39
+ it 'check default language' do
40
+ expect(@fest.language).to eq('voice_msu_ru_nsh_clunits')
41
+ end
42
+ end
@@ -0,0 +1,6 @@
1
+ # coding: utf-8
2
+ require_relative '../lib/fest'
3
+ require 'coveralls'
4
+ require 'rspec'
5
+
6
+ Coveralls.wear!
metadata CHANGED
@@ -1,28 +1,66 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fest
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.10
4
+ version: 1.2.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexsey Ermolaev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-21 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2015-03-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 3.2.0
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 3.2.0
13
41
  description: Ruby wrapper for festival scripts
14
42
  email: afay.zangetsu@gmail.com
15
43
  executables: []
16
44
  extensions: []
17
- extra_rdoc_files: []
45
+ extra_rdoc_files:
46
+ - License.org
47
+ - README.md
18
48
  files:
19
49
  - ".gitignore"
50
+ - ".travis.yml"
20
51
  - Gemfile
21
- - MIT-license.org
22
- - README.org
52
+ - License.org
53
+ - README.md
54
+ - Rakefile
23
55
  - changelog.org
24
56
  - fest.gemspec
25
57
  - lib/fest.rb
58
+ - lib/fest/conditions.rb
59
+ - lib/fest/params.rb
60
+ - lib/fest/volume.rb
61
+ - spec/custom_params_spec.rb
62
+ - spec/default_params_spec.rb
63
+ - spec/spec_helper.rb
26
64
  homepage: https://github.com/AfsmNGhr/fest
27
65
  licenses:
28
66
  - MIT
@@ -44,12 +82,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
44
82
  requirements:
45
83
  - "*nix* or OS X"
46
84
  - Pulseaudio sound server
47
- - Festival speech engine
85
+ - Festival snpeech engine
48
86
  - xbacklight
49
87
  rubyforge_project:
50
- rubygems_version: 2.4.5
88
+ rubygems_version: 2.4.6
51
89
  signing_key:
52
90
  specification_version: 4
53
91
  summary: Ruby wrapper for festival speech engine
54
- test_files: []
92
+ test_files:
93
+ - spec/custom_params_spec.rb
94
+ - spec/default_params_spec.rb
95
+ - spec/spec_helper.rb
55
96
  has_rdoc:
data/README.org DELETED
@@ -1,88 +0,0 @@
1
- ** FEST
2
- Ruby wrapper use [[https://wiki.archlinux.org/index.php/Festival_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29][Festival]] for speak of the text and scripts ...
3
- ** Requirements
4
- - *nix* or OS X ...
5
- - [[https://wiki.archlinux.org/index.php/Festival_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29][Festival]] and necessary languages ...
6
- - [[https://wiki.archlinux.org/index.php/PulseAudio_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29][Pulseaudio]]
7
- - xbacklight ([[https://wiki.archlinux.org/index.php/Backlight_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29][backlight]])
8
- ** Установка
9
- #+begin_src ruby
10
- # Gemfile
11
- gem 'fest'
12
- #+end_src
13
- or
14
- #+begin_src ruby
15
- $ gem install fest
16
- #+end_src
17
- ** Used
18
- ***** Call methods
19
- #+begin_src ruby
20
- require 'fest'
21
-
22
- @fest = Fest.new
23
- text = "Пример"
24
- @fest.say(text)
25
- # => Say "Пример"
26
-
27
- # Expanded option
28
- params = {:language => "cmu_us_slt_arctic_hts"}
29
- text = "This is an example"
30
- @fest.say(text, params)
31
- # => Say "This is an example" ...
32
-
33
- # All options
34
- # params || default value
35
- params[:path] || "/tmp"
36
- params[:down_volume] || [20,60,4] # [min, max, step]
37
- params[:backlight] || nil # disable check backlight
38
- params[:language] || "voice_msu_ru_nsh_clunits"
39
-
40
- # Declension
41
- text = @fest.pluraform(2, %w(Сообщение Сообщения Сообщений))
42
- puts text
43
- # => "Сообщения"
44
- #+end_src
45
-
46
- ** Сustomization
47
- #+begin_src ruby
48
- @fest.init(params)
49
- # check @current_volume
50
- # @path, @index, @min_volume, @max_volume ...
51
-
52
- @fest.check_optimal_volume
53
- # @volume = @current_volume - @down_volume
54
-
55
- @fest.optimize_min_and_max_volume(min_volume, max_volume)
56
-
57
- @fest.check_conditions
58
- # @fest.check_say_wav
59
- # check_light и check_home_theater
60
-
61
- @fest.check_light # (with xbacklight)
62
- # exit if backlight equal 0
63
-
64
- @fest.check_home_theater
65
- # exit if run (vlc, kodi(xbmc))
66
-
67
- @fest.make_wav(text)
68
-
69
- @fest.change_volume(volume)
70
-
71
- @fest.expect_if_paplay_now
72
- # wait if paplay active ...
73
-
74
- @fest.play_wav
75
- # @fest.turn_down_volume (with @step)
76
- # @volume = @current_volume - @current_volume / 10 * @step
77
- # play wav ... with @optimize_volume
78
- # @fest.return_current_volume (with @step)
79
- # @fest.delete_wav
80
- #+end_src
81
- ** Issues
82
- ***** Level of loudness doesn't dump after an exit
83
- #+begin_src bash
84
- #!/bin/bash
85
-
86
- vlc.run --play-and-exit $*
87
- amixer set Master 30% > /dev/null 2>&1
88
- #+end_src
File without changes