jamp3
Version:
mp3, id3v1, id3v2 - reader & writer
28 lines (26 loc) • 843 B
text/typescript
import {IFrameImpl} from '../id3v2.frame';
import {IID3V2} from '../../id3v2.types';
import {ascii} from '../../../common/encodings';
export const FrameIdAscii: IFrameImpl = {
/**
Owner identifier <text string> $00
Identifier <up to 64 bytes binary data>
*/
parse: async (reader) => {
const id = reader.readStringTerminated(ascii);
const text = reader.readStringTerminated(ascii);
const value: IID3V2.FrameValue.IdAscii = {id, text};
return {value, encoding: ascii};
},
write: async (frame, stream) => {
const value = <IID3V2.FrameValue.IdAscii>frame.value;
await stream.writeStringTerminated(value.id, ascii);
await stream.writeString(value.text, ascii);
},
simplify: (value: IID3V2.FrameValue.IdAscii) => {
if (value && value.text && value.text.length > 0) {
return value.text;
}
return null;
}
};