diff --git a/lib/voicemeeter/meta.rb b/lib/voicemeeter/meta.rb new file mode 100644 index 0000000..27208a5 --- /dev/null +++ b/lib/voicemeeter/meta.rb @@ -0,0 +1,67 @@ +module Voicemeeter + module Meta_Functions + # Accessor methods + def make_accessor_bool(*params) + params.each do |param| + define_singleton_method(param) { self.getter(param).to_i == 1 } + define_singleton_method("#{param}=") do |value| + self.setter(param, value && 1 || 0) + end + end + end + + def make_accessor_string(*params) + params.each do |param| + define_singleton_method(param) { self.getter(param, true) } + + define_singleton_method("#{param}=") do |value| + self.setter(param, value) + end + end + end + + def make_accessor_int(*params) + params.each do |param| + define_singleton_method("#{param}") do + return self.getter("#{param}").to_i + end + + define_singleton_method("#{param}=") do |value| + self.setter("#{param}", value) + end + end + end + + def make_accessor_float(*params) + params.each do |param| + define_singleton_method(param) { self.getter(param) } + + define_singleton_method("#{param}=") do |value| + self.setter(param, value) + end + end + end + + # reader methods + def make_reader_string(*params) + params.each do |param| + define_singleton_method(param) { self.getter(param, true) } + end + end + + def make_reader_int(*params) + params.each do |param| + define_singleton_method(param) { self.getter(param).to_i } + end + end + + # writer methods + def make_writer_string(*params) + params.each do |param| + define_singleton_method("#{param}=") do |value| + self.setter(param, value) + end + end + end + end +end