* adding resque to websocket-gateway
This commit is contained in:
parent
783a7c3adf
commit
0b723362ae
|
|
@ -7,24 +7,49 @@ module JamRuby
|
|||
|
||||
class AudioMixer
|
||||
|
||||
@@log = Logging.logger[AudioMixer]
|
||||
|
||||
def self.perform(manifest)
|
||||
audiomixer = AudioMixer.new
|
||||
audiomixer.run(manifest)
|
||||
|
||||
end
|
||||
|
||||
def initialize
|
||||
|
||||
end
|
||||
|
||||
def validate
|
||||
raise "no files specified" if !@manifest[:files] || @manifest[:files].length == 0
|
||||
end
|
||||
|
||||
def fetch_audio_files
|
||||
@manifest[:files].each do |file|
|
||||
filename = file[:filename]
|
||||
end
|
||||
end
|
||||
|
||||
def run(manifest)
|
||||
manifest_file = Dir::Tmpname.make_tmpname "/var/tmp/audiomixer/manifest-#{manifest['recordingId']}", nil
|
||||
|
||||
@manifest = manifest.symbolize_keys
|
||||
|
||||
validate
|
||||
|
||||
fetch_audio_files
|
||||
|
||||
manifest_file = Dir::Tmpname.make_tmpname "/var/tmp/audiomixer/manifest-#{@manifest['recordingId']}", nil
|
||||
File.open(manifest_file,"w") do |f|
|
||||
f.write(manifest.to_json)
|
||||
f.write(@manifest.to_json)
|
||||
end
|
||||
|
||||
#{"files": [{"codec": "vorbis", "offset": 0, "filename": "TPD - bass.flac-stereo.ogg"}, {"codec": "vorbis", "offset": 0, "filename": "TPD - bg vox.flac-stereo.ogg"}, {"codec": "vorbis", "offset": 0, "filename": "TPD - drums.flac-stereo.ogg"}, {"codec": "vorbis", "offset": 0, "filename": "TPD - guitars.flac-stereo.ogg"}, {"codec": "vorbis", "offset": 0, "filename": "TPD - lead vox.flac-stereo.ogg"}], "output": {"codec": "vorbis", "filename": "mix.ogg"}, "timeline": [{"timestamp": 0, "mix": [{"balance": 0, "level": 100}, {"balance": 0, "level": 100}, {"balance": 0, "level": 100}, {"balance": 0, "level": 100}, {"balance": 0, "level": 100}]}]}
|
||||
|
||||
path = "/var/lib/audiomixer/audiomixer/audiomixerapp"
|
||||
|
||||
system("tar zxvf some_big_tarball.tar.gz")
|
||||
audiomixer_cmd = "#{APP_CONFIG.audiomixer_path} #{manifest_file}"
|
||||
|
||||
@@log.debug("executing #{audiomixer_cmd}")
|
||||
|
||||
system(audiomixer_cmd)
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
require 'spec_helper'
|
||||
|
||||
# these tests avoid the use of ActiveRecord and FactoryGirl to do blackbox, non test-instrumented tests
|
||||
describe AudioMixer do
|
||||
|
||||
let(:audiomixer) { AudioMixer.new }
|
||||
|
||||
describe "validate" do
|
||||
it "no files specified" do
|
||||
expect{ audiomixer.run({}) }.to raise_error("no files specified")
|
||||
end
|
||||
|
||||
it "no codec specified" do
|
||||
expect{ audiomixer.run({ "files" => [ "offset" => 0, "filename" => "/some/path"] }) }
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
@ -37,6 +37,7 @@ gem 'aws-sdk', '1.29.1'
|
|||
gem 'bugsnag'
|
||||
gem 'geokit-rails'
|
||||
gem 'postgres_ext'
|
||||
gem 'resque'
|
||||
|
||||
group :development do
|
||||
gem 'pry'
|
||||
|
|
|
|||
Loading…
Reference in New Issue