From 2907cc6dd0b0d2d80d44ae292a157651d6e05ee7 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 26 Aug 2013 05:25:22 +0000 Subject: player: flesh out multi-source in protocol/sourceedit We should be fully-capable of managing any number of options to try sources in. --- lib/dtas/source/file.rb | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'lib/dtas/source/file.rb') diff --git a/lib/dtas/source/file.rb b/lib/dtas/source/file.rb index a66308b..3663d8d 100644 --- a/lib/dtas/source/file.rb +++ b/lib/dtas/source/file.rb @@ -10,6 +10,7 @@ require_relative '../process' module DTAS::Source::File # :nodoc: attr_reader :infile attr_reader :offset + attr_accessor :tryorder require_relative 'common' # dtas/source/common require_relative 'mp3gain' include DTAS::Command @@ -17,9 +18,17 @@ module DTAS::Source::File # :nodoc: include DTAS::Source::Common include DTAS::Source::Mp3gain - FILE_SIVS = %w(infile comments command env) + FILE_SIVS = %w(infile comments command env) # for the "current" command + SRC_SIVS = %w(command env tryorder) - def source_file_init(infile, offset) + def source_file_dup(infile, offset) + rv = dup + rv.__file_init(infile, offset) + rv + end + + def __file_init(infile, offset) + @env = @env.dup @format = nil @infile = infile @offset = offset @@ -68,4 +77,18 @@ module DTAS::Source::File # :nodoc: DTAS::ReplayGain.new(mp3gain_comments) end + def to_source_cat + ivars_to_hash(SRC_SIVS) + end + + def load!(src_hsh) + SRC_SIVS.each do |field| + val = src_hsh[field] and instance_variable_set("@#{field}", val) + end + end + + def to_state_hash + defaults = source_defaults # see dtas/source/{av,sox}.rb + to_source_cat.delete_if { |k,v| v == defaults[k] } + end end -- cgit v1.2.3-24-ge0c7