Skip to content

Commit 0b9178f

Browse files
committed
Make everything a CommonJS module for browserify
1 parent ed91d80 commit 0b9178f

35 files changed

+258
-173
lines changed

browser.coffee

+6-9
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
do ->
2-
global = this
1+
for key, val of require './src/aurora'
2+
exports[key] = val
33

4-
#import "src/aurora.coffee"
5-
#import "src/sources/browser/http.coffee"
6-
#import "src/sources/browser/file.coffee"
7-
#import "src/devices/webaudio.coffee"
8-
#import "src/devices/mozilla.coffee"
9-
10-
global.AV = AV
4+
require './src/sources/browser/http'
5+
require './src/sources/browser/file'
6+
require './src/devices/webaudio'
7+
require './src/devices/mozilla'

node.coffee

+3-28
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,4 @@
1-
#import "src/aurora.coffee"
2-
#import "src/sources/node/http.coffee"
3-
#import "src/sources/node/file.coffee"
4-
#import "src/devices/node-speaker.coffee"
5-
6-
AV.isNode = true
7-
AV.require = (modules...) ->
8-
Module = require 'module'
1+
for key, val of require './src/aurora'
2+
exports[key] = val
93

10-
# create a temporary reference to the AV namespace
11-
# that we can access from within the required modules
12-
key = "__AV__#{Date.now()}"
13-
Module::[key] = AV
14-
15-
# temporarily override the module wrapper
16-
wrapper = Module.wrapper[0]
17-
Module.wrapper[0] += "var AV = module['#{key}'];"
18-
19-
# require the modules
20-
for module in modules
21-
require module
22-
23-
# replace the wrapper and delete the temporary AV reference
24-
Module.wrapper[0] = wrapper
25-
delete Module::[key]
26-
27-
return
28-
29-
module.exports = AV
4+
require './src/devices/node-speaker'

src/asset.coffee

+16-7
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,14 @@
66
# file to linear PCM raw audio data.
77
#
88

9-
class AV.Asset extends AV.EventEmitter
9+
EventEmitter = require './core/events'
10+
HTTPSource = require './sources/node/http'
11+
FileSource = require './sources/node/file'
12+
BufferSource = require './sources/buffer'
13+
Demuxer = require './demuxer'
14+
Decoder = require './decoder'
15+
16+
class Asset extends EventEmitter
1017
constructor: (@source) ->
1118
@buffered = 0
1219
@duration = null
@@ -25,13 +32,13 @@ class AV.Asset extends AV.EventEmitter
2532
@emit 'buffer', @buffered
2633

2734
@fromURL: (url) ->
28-
return new AV.Asset new AV.HTTPSource(url)
35+
return new Asset new HTTPSource(url)
2936

3037
@fromFile: (file) ->
31-
return new AV.Asset new AV.FileSource(file)
38+
return new Asset new FileSource(file)
3239

3340
@fromBuffer: (buffer) ->
34-
return new AV.Asset new AV.BufferSource(buffer)
41+
return new Asset new BufferSource(buffer)
3542

3643
start: (decode) ->
3744
return if @active
@@ -89,7 +96,7 @@ class AV.Asset extends AV.EventEmitter
8996
probe: (chunk) =>
9097
return unless @active
9198

92-
demuxer = AV.Demuxer.find(chunk)
99+
demuxer = Demuxer.find(chunk)
93100
if not demuxer
94101
return @emit 'error', 'A demuxer for this container was not found.'
95102

@@ -111,7 +118,7 @@ class AV.Asset extends AV.EventEmitter
111118

112119
@emit 'format', @format
113120

114-
decoder = AV.Decoder.find(@format.formatID)
121+
decoder = Decoder.find(@format.formatID)
115122
if not decoder
116123
return @emit 'error', "A decoder for #{@format.formatID} was not found."
117124

@@ -141,4 +148,6 @@ class AV.Asset extends AV.EventEmitter
141148

142149
_decode: =>
143150
continue while @decoder.decode() and @active
144-
@decoder.once 'data', @_decode if @active
151+
@decoder.once 'data', @_decode if @active
152+
153+
module.exports = Asset

src/aurora.coffee

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
#import "aurora_base.coffee"
1+
for key, val of require './aurora_base'
2+
exports[key] = val
23

3-
#import "demuxers/caf.coffee"
4-
#import "demuxers/m4a.coffee"
5-
#import "demuxers/aiff.coffee"
6-
#import "demuxers/wave.coffee"
7-
#import "demuxers/au.coffee"
4+
require './demuxers/caf'
5+
require './demuxers/m4a'
6+
require './demuxers/aiff'
7+
require './demuxers/wave'
8+
require './demuxers/au'
89

9-
#import "decoders/lpcm.coffee"
10-
#import "decoders/xlaw.coffee"
10+
require './decoders/lpcm'
11+
require './decoders/xlaw'

src/aurora_base.coffee

+15-18
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
1-
AV = {}
1+
exports.Base = require './core/base'
2+
exports.Buffer = require './core/buffer'
3+
exports.BufferList = require './core/bufferlist'
4+
exports.Stream = require './core/stream'
5+
exports.Bitstream = require './core/bitstream'
6+
exports.EventEmitter = require './core/events'
27

3-
#import "core/base.coffee"
4-
#import "core/buffer.coffee"
5-
#import "core/bufferlist.coffee"
6-
#import "core/stream.coffee"
7-
#import "core/bitstream.coffee"
8-
#import "core/events.coffee"
8+
exports.BufferSource = require './sources/buffer'
99

10-
#import "sources/buffer.coffee"
10+
exports.Demuxer = require './demuxer'
11+
exports.Decoder = require './decoder'
12+
exports.AudioDevice = require './device'
13+
exports.Asset = require './asset'
14+
exports.Player = require './player'
1115

12-
#import "demuxer.coffee"
13-
#import "decoder.coffee"
14-
#import "queue.coffee"
15-
#import "device.coffee"
16-
#import "asset.coffee"
17-
#import "player.coffee"
18-
19-
#import "filter.coffee"
20-
#import "filters/volume.coffee"
21-
#import "filters/balance.coffee"
16+
exports.Filter = require './filter'
17+
exports.VolumeFilter = require './filters/volume'
18+
exports.BalanceFilter = require './filters/balance'

src/core/base.coffee

+4-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# plain JavaScript. Based on http://ejohn.org/blog/simple-javascript-inheritance/.
55
#
66

7-
class AV.Base
7+
class Base
88
fnTest = /\b_super\b/
99

1010
@extend: (prop) ->
@@ -36,4 +36,6 @@ class AV.Base
3636
else
3737
Class::[key] = fn
3838

39-
return Class
39+
return Class
40+
41+
module.exports = Base

src/core/bitstream.coffee

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
class AV.Bitstream
1+
class Bitstream
22
constructor: (@stream) ->
33
@bitPosition = 0
44

55
copy: ->
6-
result = new AV.Bitstream @stream.copy()
6+
result = new Bitstream @stream.copy()
77
result.bitPosition = @bitPosition
88
return result
99

@@ -179,4 +179,6 @@ class AV.Bitstream
179179
if a / Math.pow(2, bits - 1) | 0
180180
a = (Math.pow(2, bits) - a) * -1
181181

182-
return a
182+
return a
183+
184+
module.exports = Bitstream

src/core/buffer.coffee

+11-9
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
class AV.Buffer
1+
class AVBuffer
22
constructor: (input) ->
33
if input instanceof Uint8Array # Uint8Array
44
@data = input
55

66
else if input instanceof ArrayBuffer or # ArrayBuffer
77
Array.isArray(input) or # normal JS Array
88
typeof input is 'number' or # number (i.e. length)
9-
AV.isNode and global.Buffer?.isBuffer(input) # Node Buffer
9+
global.Buffer?.isBuffer(input) # Node Buffer
1010
@data = new Uint8Array(input)
1111

1212
else if input.buffer instanceof ArrayBuffer # typed arrays other than Uint8Array
1313
@data = new Uint8Array(input.buffer, input.byteOffset, input.length * input.BYTES_PER_ELEMENT)
1414

15-
else if input instanceof AV.Buffer # AV.Buffer, make a shallow copy
15+
else if input instanceof AVBuffer # AVBuffer, make a shallow copy
1616
@data = input.data
1717

1818
else
@@ -25,16 +25,16 @@ class AV.Buffer
2525
@prev = null
2626

2727
@allocate: (size) ->
28-
return new AV.Buffer(size)
28+
return new AVBuffer(size)
2929

3030
copy: ->
31-
return new AV.Buffer(new Uint8Array(@data))
31+
return new AVBuffer(new Uint8Array(@data))
3232

3333
slice: (position, length = @length) ->
3434
if position is 0 and length >= @length
35-
return new AV.Buffer(@data)
35+
return new AVBuffer(@data)
3636
else
37-
return new AV.Buffer(@data.subarray(position, position + length))
37+
return new AVBuffer(@data.subarray(position, position + length))
3838

3939
# prefix-free
4040
BlobBuilder = global.BlobBuilder or global.MozBlobBuilder or global.WebKitBlobBuilder
@@ -61,7 +61,9 @@ class AV.Buffer
6161
URL?.revokeObjectURL url
6262

6363
toBlob: ->
64-
return Buffer.makeBlob @data.buffer
64+
return AVBuffer.makeBlob @data.buffer
6565

6666
toBlobURL: ->
67-
return Buffer.makeBlobURL @data.buffer
67+
return AVBuffer.makeBlobURL @data.buffer
68+
69+
module.exports = AVBuffer

src/core/bufferlist.coffee

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
class AV.BufferList
1+
class BufferList
22
constructor: ->
33
@first = null
44
@last = null
@@ -7,7 +7,7 @@ class AV.BufferList
77
@availableBuffers = 0
88

99
copy: ->
10-
result = new AV.BufferList
10+
result = new BufferList
1111

1212
result.first = @first
1313
result.last = @last
@@ -48,4 +48,6 @@ class AV.BufferList
4848
return @first?
4949

5050
reset: ->
51-
continue while @rewind()
51+
continue while @rewind()
52+
53+
module.exports = BufferList

src/core/events.coffee

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
class AV.EventEmitter extends AV.Base
1+
Base = require './base'
2+
3+
class EventEmitter extends Base
24
on: (event, fn) ->
35
@events ?= {}
46
@events[event] ?= []
@@ -22,4 +24,6 @@ class AV.EventEmitter extends AV.Base
2224
for fn in @events[event].slice()
2325
fn.apply(this, args)
2426

25-
return
27+
return
28+
29+
module.exports = EventEmitter

0 commit comments

Comments
 (0)