Commit f1a96c2e authored by François Degros's avatar François Degros Committed by Commit Bot

[Files app] ES6 class for id3_parser.js

Bug: 778674
Change-Id: I210459cd62fca98836ad40f66bd011da4c412b5e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646796
Auto-Submit: François Degros <fdegros@chromium.org>
Commit-Queue: Luciano Pacheco <lucmult@chromium.org>
Reviewed-by: default avatarLuciano Pacheco <lucmult@chromium.org>
Cr-Commit-Position: refs/heads/master@{#666557}
parent d382d893
......@@ -25,19 +25,17 @@ importScripts(
/**
* ID3 parser.
*
* @param {MetadataParserLogger} parent A metadata dispatcher.
* @constructor
* @struct
* @extends {MetadataParser}
* @final
*/
function Id3Parser(parent) {
MetadataParser.call(this, parent, 'id3', /\.(mp3)$/i);
}
Id3Parser.prototype.__proto__ = MetadataParser.prototype;
class Id3Parser extends MetadataParser {
/**
* @param {!MetadataParserLogger} parent A metadata dispatcher.
*/
constructor(parent) {
super(parent, 'id3', /\.(mp3)$/i);
}
/**
/**
* Reads synchsafe integer.
* 'SynchSafe' term is taken from id3 documentation.
*
......@@ -46,7 +44,7 @@ Id3Parser.prototype.__proto__ = MetadataParser.prototype;
* @return {number} Synchsafe value.
* @private
*/
Id3Parser.readSynchSafe_ = (reader, length) => {
static readSynchSafe_(reader, length) {
let rv = 0;
switch (length) {
......@@ -61,20 +59,20 @@ Id3Parser.readSynchSafe_ = (reader, length) => {
}
return rv;
};
}
/**
/**
* Reads 3bytes integer.
*
* @param {ByteReader} reader Reader to use.
* @return {number} Uint24 value.
* @private
*/
Id3Parser.readUInt24_ = reader => {
static readUInt24_(reader) {
return reader.readScalar(2, false) << 16 | reader.readScalar(1, false);
};
}
/**
/**
* Reads string from reader with specified encoding
*
* @param {ByteReader} reader Reader to use.
......@@ -83,7 +81,7 @@ Id3Parser.readUInt24_ = reader => {
* @return {string} String value.
* @private
*/
Id3Parser.prototype.readString_ = function(reader, encoding, size) {
readString_(reader, encoding, size) {
switch (encoding) {
case Id3Parser.v2.ENCODING.ISO_8859_1:
return reader.readNullTerminatedString(size);
......@@ -104,9 +102,9 @@ Id3Parser.prototype.readString_ = function(reader, encoding, size) {
return '';
}
}
};
}
/**
/**
* Reads text frame from reader.
*
* @param {ByteReader} reader Reader to use.
......@@ -115,13 +113,12 @@ Id3Parser.prototype.readString_ = function(reader, encoding, size) {
* @param {number} end Frame end position in reader.
* @private
*/
Id3Parser.prototype.readTextFrame_ = function(
reader, majorVersion, frame, end) {
readTextFrame_(reader, majorVersion, frame, end) {
frame.encoding = reader.readScalar(1, false, end);
frame.value = this.readString_(reader, frame.encoding, end - reader.tell());
};
}
/**
/**
* Reads user defined text frame from reader.
*
* @param {ByteReader} reader Reader to use.
......@@ -130,24 +127,23 @@ Id3Parser.prototype.readTextFrame_ = function(
* @param {number} end Frame end position in reader.
* @private
*/
Id3Parser.prototype.readUserDefinedTextFrame_ = function(
reader, majorVersion, frame, end) {
readUserDefinedTextFrame_(reader, majorVersion, frame, end) {
frame.encoding = reader.readScalar(1, false, end);
frame.description =
this.readString_(reader, frame.encoding, end - reader.tell());
frame.value = this.readString_(reader, frame.encoding, end - reader.tell());
};
}
/**
/**
* @param {ByteReader} reader Reader to use.
* @param {number} majorVersion Major id3 version to use.
* @param {Object} frame Frame so store data at.
* @param {number} end Frame end position in reader.
* @private
*/
Id3Parser.prototype.readPIC_ = function(reader, majorVersion, frame, end) {
readPIC_(reader, majorVersion, frame, end) {
frame.encoding = reader.readScalar(1, false, end);
frame.format = reader.readNullTerminatedString(3, end - reader.tell());
frame.pictureType = reader.readScalar(1, false, end);
......@@ -160,16 +156,16 @@ Id3Parser.prototype.readPIC_ = function(reader, majorVersion, frame, end) {
} else {
frame.imageUrl = reader.readImage(end - reader.tell());
}
};
}
/**
/**
* @param {ByteReader} reader Reader to use.
* @param {number} majorVersion Major id3 version to use.
* @param {Object} frame Frame so store data at.
* @param {number} end Frame end position in reader.
* @private
*/
Id3Parser.prototype.readAPIC_ = function(reader, majorVersion, frame, end) {
readAPIC_(reader, majorVersion, frame, end) {
this.vlog('Extracting picture');
frame.encoding = reader.readScalar(1, false, end);
frame.mime = reader.readNullTerminatedString(end - reader.tell());
......@@ -182,9 +178,9 @@ Id3Parser.prototype.readAPIC_ = function(reader, majorVersion, frame, end) {
} else {
frame.imageUrl = reader.readImage(end - reader.tell());
}
};
}
/**
/**
* Reads string from reader with specified encoding
*
* @param {ByteReader} reader Reader to use.
......@@ -192,7 +188,7 @@ Id3Parser.prototype.readAPIC_ = function(reader, majorVersion, frame, end) {
* @return {Object} Frame read.
* @private
*/
Id3Parser.prototype.readFrame_ = function(reader, majorVersion) {
readFrame_(reader, majorVersion) {
if (reader.eof()) {
return null;
}
......@@ -229,7 +225,8 @@ Id3Parser.prototype.readFrame_ = function(reader, majorVersion) {
break;
}
this.vlog('Found frame [' + frame.name + '] with size [' + frame.size + ']');
this.vlog(
'Found frame [' + frame.name + '] with size [' + frame.size + ']');
if (Id3Parser.v2.HANDLERS[frame.name]) {
Id3Parser.v2.HANDLERS[frame.name].call(
......@@ -244,15 +241,15 @@ Id3Parser.prototype.readFrame_ = function(reader, majorVersion) {
reader.seek(frame.size + frame.headerSize, ByteReader.SEEK_CUR);
return frame;
};
}
/**
/**
* @param {File} file File object to parse.
* @param {Object} metadata Metadata object of the file.
* @param {function(Object)} callback Success callback.
* @param {function(string)} onError Error callback.
*/
Id3Parser.prototype.parse = function(file, metadata, callback, onError) {
parse(file, metadata, callback, onError) {
const self = this;
this.log('Starting id3 parser for ' + file.name);
......@@ -272,8 +269,8 @@ Id3Parser.prototype.parse = function(file, metadata, callback, onError) {
/**
* Attempts to extract ID3v1 tag from 128 bytes long ByteBuffer
* @param {File} file File which tags are being extracted. Could be used
* for logging purposes.
* @param {File} file File which tags are being extracted. Could be
* used for logging purposes.
* @param {ByteReader} reader ByteReader of 128 bytes.
*/
function extractId3v1(file, reader) {
......@@ -431,8 +428,8 @@ Id3Parser.prototype.parse = function(file, metadata, callback, onError) {
this.vlog('Passed argument : ' + file);
metadataParser.start(file);
};
}
}
/**
* Metadata order to use for metadata generation
......
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