module MultimediaParadise::GUI::Gtk::WidgetIncreaseOrDecreaseAudioModule

Constants

HEIGHT
#

HEIGHT

#
NAMESPACE
#

NAMESPACE

#
REGEX_TO_USE_FOR_THE_CURRENT_VOLUME_PERCENTAGE_VALUE
#

REGEX_TO_USE_FOR_THE_CURRENT_VOLUME_PERCENTAGE_VALUE

See: rubular.com/r/GVsqtxs4eoMgtH

#
USE_THIS_FONT
#

USE_THIS_FONT

#
WIDTH
#

WIDTH

#

Public Class Methods

[](i = '') click to toggle source
#

MultimediaParadise::GUI::Gtk::WidgetIncreaseOrDecreaseAudio.new[]

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 297
def self.[](i = '')
  new(i)
end
new( commandline_arguments = nil, run_already = true ) click to toggle source
#

initialize

#
Calls superclass method
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 50
def initialize(
    commandline_arguments = nil,
    run_already           = true
  )
  super(:horizontal)
  reset
  set_commandline_arguments(
    commandline_arguments
  )
  run if run_already
end
run() click to toggle source
#

MultimediaParadise::GUI::Gtk::WidgetIncreaseOrDecreaseAudio.run

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 285
def self.run
  require 'gtk_paradise/run'
  _ = MultimediaParadise::GUI::Gtk::WidgetIncreaseOrDecreaseAudio.new(ARGV)
  r = ::Gtk.run
  r << _
  r.set_size_request(_.width?, _.height?)
  r.top_left_then_run
end

Public Instance Methods

connect_skeleton() click to toggle source
#

connect_skeleton

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 127
def connect_skeleton
  # ======================================================================= #
  # Pack these two buttons into a horizontal-hbox next:
  # ======================================================================= #
  # middle_pane = gtk_draggable_vpane
  vbox_left = gtk_vbox
  # ======================================================================= #
  # === eventbox_image_audio_volume_high
  # ======================================================================= #
  eventbox_image_audio_volume_high = gtk_eventbox(image_audio_volume_high)
  eventbox_image_audio_volume_high.clear_background
  eventbox_image_audio_volume_high.css_class('fancy_button')
  eventbox_image_audio_volume_high.on_clicked {
    increase_audio_by_n_percent
  }
  vbox_left.minimal(eventbox_image_audio_volume_high)
  vbox_left.minimal(@array_buttons[0])
  # middle_pane.add(hbox_left)
  vbox_right = gtk_vbox
  # ======================================================================= #
  # === eventbox_image_audio_volume_low
  # ======================================================================= #
  eventbox_image_audio_volume_low = gtk_eventbox(image_audio_volume_low)
  eventbox_image_audio_volume_low.clear_background
  eventbox_image_audio_volume_low.css_class('fancy_button')
  eventbox_image_audio_volume_low.on_clicked {
    decrease_audio_by_n_percent
  }
  vbox_right.minimal(eventbox_image_audio_volume_low)
  vbox_right.minimal(@array_buttons[1])
  # middle_pane.add(hbox_right)
  # middle_pane.position = return_inferred_position
  grid = default_grid
  grid.left(vbox_left)
  grid.middle(vbox_right)
  alignment = gtk_alignment(0.5, 1.0, 1, 1)
  alignment.add(@volume_percentage_label)
  grid.middle(alignment)
  minimal(grid, 2)
  determine_the_current_volume_percentage_value
end
create_buttons() click to toggle source
#

create_buttons

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 181
def create_buttons
  # === button_increase_audio
  button_increase_audio = gtk_button("_Increase audio by +#{@n_percent_changes}%")
  button_increase_audio.tooltip_markup =
    'Increase the audio by +<b>'+@n_percent_changes.to_s+'%</b>'+
    "\n\nThe command that will be run here is:\n\n  "\
    "<b>#{return_cmd_to_run_for_the_audio_increase}</b>\n"
  button_increase_audio.on_clicked {
    increase_audio_by_n_percent
  }

  button_decrease_audio = gtk_button("_Decrease audio by -#{@n_percent_changes}%")
  button_decrease_audio.tooltip_markup =
    ' Decrease the audio by -<b>'+@n_percent_changes.to_s+'%</b> '+
    "\n\nThe command that will be run here is:\n\n  "\
    "<b>#{return_cmd_to_run_for_the_audio_decrease}</b>\n"
  
  button_decrease_audio.on_clicked {
    decrease_audio_by_n_percent
  }
  
  # ======================================================================= #
  # Style both buttons uniformly.
  # ======================================================================= #
  @array_buttons = [
    button_increase_audio, button_decrease_audio
  ]
  @array_buttons.each {|this_button|
    # this_button.background_colour = :lightblue
    # this_button.hover_colour      = :paleturquoise
    this_button.set_name('button1') # Old CSS rule was: 'BG_paleturquoise_and_black'
    this_button.set_size_request(120, 40)
    this_button.disallow_resizing
  }
end
create_skeleton() click to toggle source
#

create_skeleton

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 220
def create_skeleton
  create_buttons
  create_volume_percentage_label
end
create_volume_percentage_label() click to toggle source
#

create_volume_percentage_label

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 228
def create_volume_percentage_label
  # ======================================================================= #
  # === @volume_percentage_label
  # ======================================================================= #
  @volume_percentage_label = gtk_label
  @volume_percentage_label.justify = ::Gtk::Justification::CENTER
end
decrease_audio_by_n_percent() click to toggle source
#

decrease_audio_by_n_percent

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 270
def decrease_audio_by_n_percent
  system return_cmd_to_run_for_the_audio_decrease
  determine_the_current_volume_percentage_value
end
determine_the_current_volume_percentage_value() click to toggle source
#

determine_the_current_volume_percentage_value

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 239
def determine_the_current_volume_percentage_value
  result = `amixer sget Master`
  if result.include? "\n"
    result = result.split("\n").last.strip
  end
  # ======================================================================= #
  # result may look like this now:
  #
  #   Mono: Playback 56 [88%] [-8.00dB] [on]
  #
  # ======================================================================= #
  percentage_value = result.scan(
    REGEX_TO_USE_FOR_THE_CURRENT_VOLUME_PERCENTAGE_VALUE
  ).flatten.first
  @volume_percentage_label.set_text(
    percentage_value.to_s.
    rjust(5, ' ')
  )
end
handle_CSS_rules() click to toggle source
#

handle_CSS_rules (CSS tag)

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 86
  def handle_CSS_rules
    use_the_gtk_paradise_css_file
    more_CSS_then_apply_it '
#BG_paleturquoise_and_black {
  color:      black;
  background: paleturquoise;
}

.fancy_button:hover {
  transition: 2000ms linear;
  background-color: tomato;
}


'
  end
increase_audio_by_n_percent() click to toggle source
#

increase_audio_by_n_percent

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 262
def increase_audio_by_n_percent
  system return_cmd_to_run_for_the_audio_increase
  determine_the_current_volume_percentage_value
end
n_percent?()
Alias for: n_percent_changes?
n_percent_changes?() click to toggle source
#

n_percent_changes?

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 106
def n_percent_changes?
  @n_percent_changes
end
Also aliased as: n_percent?
reset() click to toggle source
#

reset (reset tag)

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 65
def reset
  reset_the_internal_variables
  # ======================================================================= #
  # === @configuration
  # ======================================================================= #
  @configuration = [true, __dir__, NAMESPACE]
  width_height_font(WIDTH, HEIGHT, USE_THIS_FONT)
  # ======================================================================= #
  # === @n_percent_changes
  #
  # This variable denotes how many steps we may take "up" or "down" when
  # changing the audio-volume.
  # ======================================================================= #
  @n_percent_changes = 3
  handle_CSS_rules
  infer_the_size_automatically
end
return_cmd_to_run_for_the_audio_decrease() click to toggle source
#

return_cmd_to_run_for_the_audio_decrease

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 120
def return_cmd_to_run_for_the_audio_decrease
  "amixer set Master #{n_percent?}%-"
end
return_cmd_to_run_for_the_audio_increase() click to toggle source
#

return_cmd_to_run_for_the_audio_increase

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 113
def return_cmd_to_run_for_the_audio_increase
  'amixer set Master '+n_percent?.to_s+'%+'
end
return_inferred_position( use_this_offset = 200 ) click to toggle source
#

return_inferred_position

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 172
def return_inferred_position(
    use_this_offset = 200
  )
  (width? / 2)+use_this_offset
end
run() click to toggle source
#

run (run tag)

#
# File lib/multimedia_paradise/gui/shared_code/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio_module.rb, line 278
def run
  create_skeleton_then_connect_skeleton
end