Commit 75a95028 authored by Ryan LeFevre's avatar Ryan LeFevre

Start implementing more file read types

parent cdb4392a
{jspack} = require('jspack')
module.exports = class File
FORMATS =
Int:
code: '>i'
length: 4
UInt:
code: '>I'
length: 4
Short:
code: '>h'
length: 2
UShort:
code: '>H'
length: 2
for own format, info of FORMATS then do (format, info) =>
@::["read#{format}"] = -> @readf(info.code, info.length)[0]
constructor: (@data) ->
@pos = 0
......@@ -8,6 +27,8 @@ module.exports = class File
@pos += length
return data
readf: (format, len = null) -> jspack.Unpack format, @read(len or jspack.CalcLength(format))
seek: (amt, rel = false) -> if rel then @pos += amt else @pos = amt
readString: (length) -> @read(length).toString()
\ No newline at end of file
......@@ -2,6 +2,7 @@ RSVP = require ('rsvp')
module.exports = class Header
constructor: (@file) ->
@sig = null
@version = null
@channels = null
@rows = null
......@@ -11,6 +12,7 @@ module.exports = class Header
parse: ->
new RSVP.Promise (resolve, reject) =>
sig = @file.readString(4)
console.log sig
@sig = @file.readString(4)
@version = @file.readUShort()
resolve(@)
\ No newline at end of file
......@@ -3,7 +3,8 @@
"version": "0.0.1",
"dependencies": {
"coffee-script": "~ 1.7.1",
"rsvp": "~ 3.0.6"
"rsvp": "~ 3.0.6",
"jspack": "~ 0.0.3"
},
"devDependencies": {
"coffeeify": "~ 0.6.0"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment