Module: NuWav

Defined in:
lib/nu_wav.rb,
lib/nu_wav/chunk.rb,
lib/nu_wav/version.rb,
lib/nu_wav/wave_file.rb

Defined Under Namespace

Classes: BextChunk, CartChunk, Chunk, DataChunk, FactChunk, FmtChunk, MextChunk, NotRIFFFormat, NotWAVEFormat, RiffChunk, WaveFile

Constant Summary collapse

DEBUG =
ENV['NU_WAV_DEBUG']
TMP_FILE_DIR =
ENV['NU_WAV_TMP_DIR'] || '/tmp/'
PCM_INTEGER_COMPRESSION =

1 is standard integer based, 3 is the floating point PCM

1
PCM_FLOATING_COMPRESSION =
3
PCM_COMPRESSION =
[PCM_INTEGER_COMPRESSION, PCM_FLOATING_COMPRESSION]
MPEG_COMPRESSION =
80
ACM_MPEG_LAYER1 =
1
ACM_MPEG_LAYER2 =
2
ACM_MPEG_LAYER3 =
4
ACM_LAYERS =
[ACM_MPEG_LAYER1, ACM_MPEG_LAYER2, ACM_MPEG_LAYER3]
ACM_MPEG_STEREO =
1
ACM_MPEG_JOINTSTEREO =
2
ACM_MPEG_DUALCHANNEL =
4
ACM_MPEG_SINGLECHANNEL =
8
CHANNEL_MODES =
{'Stereo'=>ACM_MPEG_STEREO, 'JStereo'=>ACM_MPEG_JOINTSTEREO, 'Dual Channel'=>ACM_MPEG_DUALCHANNEL, 'Single Channel'=>ACM_MPEG_SINGLECHANNEL}
CODING_HISTORY_MODE =
{'Single Channel'=>'mono', 'Stereo'=>'stereo', 'Dual Channel'=>'dual-mono', 'JStereo'=>'joint-stereo'}
VERSION =
"0.5.2"

Class Method Summary collapse

Class Method Details

.temp_file(base_file_name = nil, keep_open = false, keep_textmode = false) ⇒ Object



48
49
50
51
52
53
54
# File 'lib/nu_wav.rb', line 48

def self.temp_file(base_file_name=nil, keep_open=false, keep_textmode=false)
  FileUtils.mkdir_p(NuWav::TMP_FILE_DIR) unless File.exists?(NuWav::TMP_FILE_DIR)
  Tempfile.new(base_file_name, NuWav::TMP_FILE_DIR).tap do |tmp|
    tmp.binmode unless keep_textmode
    tmp.close   unless keep_open
  end
end