Module: CW::FileDetails

Included in:
AudioPlayer, Book, BookDetails, Callsign, Cfg, Cl, CommonWords, Dsl, Encoding, ToneGenerator, ToneGenerator::Code, Tx
Defined in:
lib/cw/file_details.rb

Constant Summary collapse

HERE =
File.dirname(__FILE__)
WORK_DIR =
Dir.pwd
ROOT =
File.expand_path File.join(HERE,'..','..')
DATA =
File.join(ROOT,'data')
AUDIO_DIR =
File.join(WORK_DIR,'audio')
TEXT =
File.join(DATA,'text')
CODE =
File.join(DATA,'code')
CALLS =
File.join(DATA,'callsign')
DOT_CW_DIR =
File.join WORK_DIR, ".cw"
DOT_AUDIO_DIR =
File.join DOT_CW_DIR, "audio"
DICT_FILENAME =
"english.txt"
CONFIG_FILENAME =
".cw_config"
DEF_AUDIO_FILENAME =
"audio_output.wav"
CODE_FILENAME =
File.join CODE, "code.yaml"
CALLS_FILENAME =
File.join CALLS, "callsign.yaml"
DOT_FILENAME =
"dot.wav"
DASH_FILENAME =
"dash.wav"
SPACE_FILENAME =
"space.wav"
E_SPACE_FILENAME =
"e_space.wav"
BOOKMARK_FILE =
"bookmark.txt"
DICT_DIR =
TEXT
ABBREVIATIONS =
File.join TEXT, "abbreviations.txt"
Q_CODES =
File.join TEXT, "q_codes.txt"
CONFIG_PATH =
File.join ROOT, CONFIG_FILENAME
USER_CONFIG_PATH =
File.join WORK_DIR, CONFIG_FILENAME

Instance Method Summary collapse

Instance Method Details

#audio_dirObject



87
88
89
# File 'lib/cw/file_details.rb', line 87

def audio_dir
  @audio_dir ||= process_audio_dir
end

#audio_filenameObject



91
92
93
94
95
96
# File 'lib/cw/file_details.rb', line 91

def audio_filename
  @audio_filename ||=
    Cfg.config["audio_filename"] ?
      Cfg.config["audio_filename"] :
      DEF_AUDIO_FILENAME
end

#dash_pathObject



58
59
60
# File 'lib/cw/file_details.rb', line 58

def dash_path
  File.join dot_audio_dir, DASH_FILENAME
end

#default_audio_dirObject



70
71
72
73
# File 'lib/cw/file_details.rb', line 70

def default_audio_dir
  Dir.mkdir(AUDIO_DIR) unless File.exists? AUDIO_DIR
  AUDIO_DIR
end

#dot_audio_dirObject



50
51
52
# File 'lib/cw/file_details.rb', line 50

def dot_audio_dir
  @dot_audio_dir ||= process_dot_audio
end

#dot_cw_dirObject



41
42
43
# File 'lib/cw/file_details.rb', line 41

def dot_cw_dir
  @dot_cw_dir ||= process_dot_cw
end

#dot_pathObject



54
55
56
# File 'lib/cw/file_details.rb', line 54

def dot_path
  File.join dot_audio_dir, DOT_FILENAME
end

#e_space_pathObject



66
67
68
# File 'lib/cw/file_details.rb', line 66

def e_space_path
  File.join dot_audio_dir, E_SPACE_FILENAME
end

#init_filenamesObject



31
32
33
34
# File 'lib/cw/file_details.rb', line 31

def init_filenames
  @repeat_tone     = File.join(AUDIO_DIR, "rpt.mp3")
  @r_tone          = File.join(AUDIO_DIR, "r.mp3")
end

#process_audio_dirObject



75
76
77
# File 'lib/cw/file_details.rb', line 75

def process_audio_dir
  Cfg.config['audio_dir'] ? user_audio_dir : default_audio_dir
end

#process_dot_audioObject



45
46
47
48
# File 'lib/cw/file_details.rb', line 45

def process_dot_audio
  Dir.mkdir(DOT_AUDIO_DIR) unless(dot_cw_dir && File.exists?(DOT_AUDIO_DIR))
  DOT_AUDIO_DIR
end

#process_dot_cwObject



36
37
38
39
# File 'lib/cw/file_details.rb', line 36

def process_dot_cw
  Dir.mkdir(DOT_CW_DIR) unless File.exists? DOT_CW_DIR
  DOT_CW_DIR
end

#progress_fileObject



98
99
100
# File 'lib/cw/file_details.rb', line 98

def progress_file
  File.join(dot_cw_dir, BOOKMARK_FILE)
end

#space_pathObject



62
63
64
# File 'lib/cw/file_details.rb', line 62

def space_path
  File.join dot_audio_dir, SPACE_FILENAME
end

#user_audio_dirObject



79
80
81
82
83
84
85
# File 'lib/cw/file_details.rb', line 79

def user_audio_dir
  @user_audio_dir ||=
    unless File.exists? Cfg.config['audio_dir']
      Dir.mkdir Cfg.config['audio_dir']
    end
  Cfg.config['audio_dir']
end