private int calculateDataLength() { int length = 0; if (extendedHeader) length += extendedHeaderLength; if (footer) length += FOOTER_LENGTH; else if (padding) length += PADDING_LENGTH; Iterator<ID3v2FrameSet> setIterator = frameSets.values().iterator(); while (setIterator.hasNext()) { ID3v2FrameSet frameSet = setIterator.next(); Iterator<ID3v2Frame> frameIterator = frameSet.getFrames().iterator(); while (frameIterator.hasNext()) { ID3v2Frame frame = (ID3v2Frame) frameIterator.next(); length += frame.getLength(); } } return length; }
protected void addFrame(ID3v2Frame frame, boolean replace) { ID3v2FrameSet frameSet = frameSets.get(frame.getId()); if (frameSet == null) { frameSet = new ID3v2FrameSet(frame.getId()); frameSet.addFrame(frame); frameSets.put(frame.getId(), frameSet); } else if (replace) { frameSet.clear(); frameSet.addFrame(frame); } else { frameSet.addFrame(frame); } }
private int packSpecifiedFrames(byte[] bytes, int offset, String onlyId, String notId) throws NotSupportedException { Iterator<ID3v2FrameSet> setIterator = frameSets.values().iterator(); while (setIterator.hasNext()) { ID3v2FrameSet frameSet = setIterator.next(); if ((onlyId == null || onlyId.equals(frameSet.getId())) && (notId == null || !notId.equals(frameSet.getId()))) { Iterator<ID3v2Frame> frameIterator = frameSet.getFrames().iterator(); while (frameIterator.hasNext()) { ID3v2Frame frame = (ID3v2Frame) frameIterator.next(); if (frame.getDataLength() > 0) { byte[] frameData = frame.toBytes(); BufferTools.copyIntoByteBuffer(frameData, 0, frameData.length, bytes, offset); offset += frameData.length; } } } } return offset; }
protected ID3v2TextFrameData extractTextFrameData(String id) { ID3v2FrameSet frameSet = frameSets.get(id); if (frameSet != null) { ID3v2Frame frame = (ID3v2Frame) frameSet.getFrames().get(0); ID3v2TextFrameData frameData; try { frameData = new ID3v2TextFrameData(useFrameUnsynchronisation(), frame.getData()); return frameData; } catch (InvalidDataException e) { // do nothing } } return null; }
@Override public void setGenreDescription(String text) { ID3v2TextFrameData frameData = new ID3v2TextFrameData(useFrameUnsynchronisation(), new EncodedText(text)); ID3v2FrameSet frameSet = getFrameSets().get(ID_GENRE); if (frameSet == null) { getFrameSets().put(ID_GENRE, frameSet = new ID3v2FrameSet(ID_GENRE)); } frameSet.clear(); frameSet.addFrame(createFrame(ID_GENRE, frameData.toBytes())); }
private int packSpecifiedFrames(byte[] bytes, int offset, String onlyId, String notId) throws NotSupportedException { Iterator<ID3v2FrameSet> setIterator = frameSets.values().iterator(); while (setIterator.hasNext()) { ID3v2FrameSet frameSet = setIterator.next(); if ((onlyId == null || onlyId.equals(frameSet.getId())) && (notId == null || !notId.equals(frameSet.getId()))) { Iterator<ID3v2Frame> frameIterator = frameSet.getFrames().iterator(); while (frameIterator.hasNext()) { ID3v2Frame frame = (ID3v2Frame) frameIterator.next(); if (frame.getDataLength() > 0) { byte[] frameData = frame.toBytes(); BufferTools.copyIntoByteBuffer(frameData, 0, frameData.length, bytes, offset); offset += frameData.length; } } } } return offset; }
protected ID3v2CommentFrameData extractLyricsFrameData(String id) { ID3v2FrameSet frameSet = frameSets.get(id); if (frameSet != null) { Iterator<ID3v2Frame> iterator = frameSet.getFrames().iterator(); while (iterator.hasNext()) { ID3v2Frame frame = (ID3v2Frame) iterator.next(); ID3v2CommentFrameData frameData; try { frameData = new ID3v2CommentFrameData(useFrameUnsynchronisation(), frame.getData()); return frameData; } catch (InvalidDataException e) { // Do nothing } } } return null; }
protected void addFrame(ID3v2Frame frame, boolean replace) { ID3v2FrameSet frameSet = frameSets.get(frame.getId()); if (frameSet == null) { frameSet = new ID3v2FrameSet(frame.getId()); frameSet.addFrame(frame); frameSets.put(frame.getId(), frameSet); } else if (replace) { frameSet.clear(); frameSet.addFrame(frame); } else { frameSet.addFrame(frame); } }
private ID3v2WWWFrameData extractWWWFrameData(String id) { ID3v2FrameSet frameSet = frameSets.get(id); if (frameSet != null) { ID3v2Frame frame = (ID3v2Frame) frameSet.getFrames().get(0); ID3v2WWWFrameData frameData; try { frameData = new ID3v2WWWFrameData(useFrameUnsynchronisation(), frame.getData()); return frameData; } catch (InvalidDataException e) { // do nothing } } return null; }
@Override public void setGenreDescription(String text) { ID3v2TextFrameData frameData = new ID3v2TextFrameData(useFrameUnsynchronisation(), new EncodedText(text)); ID3v2FrameSet frameSet = getFrameSets().get(ID_GENRE); if (frameSet == null) { getFrameSets().put(ID_GENRE, frameSet = new ID3v2FrameSet(ID_GENRE)); } frameSet.clear(); frameSet.addFrame(createFrame(ID_GENRE, frameData.toBytes())); }
private ID3v2UrlFrameData extractUrlFrameData(String id) { ID3v2FrameSet frameSet = frameSets.get(id); if (frameSet != null) { ID3v2Frame frame = (ID3v2Frame) frameSet.getFrames().get(0); ID3v2UrlFrameData frameData; try { frameData = new ID3v2UrlFrameData(useFrameUnsynchronisation(), frame.getData()); return frameData; } catch (InvalidDataException e) { // do nothing } } return null; }
private ID3v2PopmFrameData extractPopmFrameData(final String id) { final ID3v2FrameSet frameSet = frameSets.get(id); if (frameSet != null) { final ID3v2Frame frame = frameSet.getFrames().get(0); ID3v2PopmFrameData frameData; try { frameData = new ID3v2PopmFrameData(useFrameUnsynchronisation(), frame.getData()); return frameData; } catch (final InvalidDataException e) { // do nothing } } return null; }
private ArrayList<ID3v2ChapterFrameData> extractChapterFrameData(String id) { ID3v2FrameSet frameSet = frameSets.get(id); if (frameSet != null) { ArrayList<ID3v2ChapterFrameData> chapterData = new ArrayList<>(); List<ID3v2Frame> frames = frameSet.getFrames(); for (ID3v2Frame frame : frames) { ID3v2ChapterFrameData frameData; try { frameData = new ID3v2ChapterFrameData(useFrameUnsynchronisation(), frame.getData()); chapterData.add(frameData); } catch (InvalidDataException e) { // do nothing } } return chapterData; } return null; }
private ArrayList<ID3v2ChapterTOCFrameData> extractChapterTOCFrameData(String id) { ID3v2FrameSet frameSet = frameSets.get(id); if (frameSet != null) { ArrayList<ID3v2ChapterTOCFrameData> chapterData = new ArrayList<>(); List<ID3v2Frame> frames = frameSet.getFrames(); for (ID3v2Frame frame : frames) { ID3v2ChapterTOCFrameData frameData; try { frameData = new ID3v2ChapterTOCFrameData(useFrameUnsynchronisation(), frame.getData()); chapterData.add(frameData); } catch (InvalidDataException e) { // do nothing } } return chapterData; } return null; }
private ID3v2CommentFrameData extractCommentFrameData(String id, boolean itunes) { ID3v2FrameSet frameSet = frameSets.get(id); if (frameSet != null) { Iterator<ID3v2Frame> iterator = frameSet.getFrames().iterator(); while (iterator.hasNext()) { ID3v2Frame frame = (ID3v2Frame) iterator.next(); ID3v2CommentFrameData frameData; try { frameData = new ID3v2CommentFrameData(useFrameUnsynchronisation(), frame.getData()); if (itunes && ITUNES_COMMENT_DESCRIPTION.equals(frameData.getDescription().toString())) { return frameData; } else if (!itunes) { return frameData; } } catch (InvalidDataException e) { // Do nothing } } } return null; }
private ID3v2PictureFrameData createPictureFrameData(String id) { ID3v2FrameSet frameSet = frameSets.get(id); if (frameSet != null) { ID3v2Frame frame = (ID3v2Frame) frameSet.getFrames().get(0); ID3v2PictureFrameData frameData; try { if (obseleteFormat) frameData = new ID3v2ObseletePictureFrameData(useFrameUnsynchronisation(), frame.getData()); else frameData = new ID3v2PictureFrameData(useFrameUnsynchronisation(), frame.getData()); return frameData; } catch (InvalidDataException e) { // do nothing } } return null; }
private int calculateDataLength() { int length = 0; if (extendedHeader) length += extendedHeaderLength; if (footer) length += FOOTER_LENGTH; else if (padding) length += PADDING_LENGTH; Iterator<ID3v2FrameSet> setIterator = frameSets.values().iterator(); while (setIterator.hasNext()) { ID3v2FrameSet frameSet = setIterator.next(); Iterator<ID3v2Frame> frameIterator = frameSet.getFrames().iterator(); while (frameIterator.hasNext()) { ID3v2Frame frame = (ID3v2Frame) frameIterator.next(); length += frame.getLength(); } } return length; }
private ID3v2UrlFrameData extractUrlFrameData(String id) { ID3v2FrameSet frameSet = frameSets.get(id); if (frameSet != null) { ID3v2Frame frame = (ID3v2Frame) frameSet.getFrames().get(0); ID3v2UrlFrameData frameData; try { frameData = new ID3v2UrlFrameData(useFrameUnsynchronisation(), frame.getData()); return frameData; } catch (InvalidDataException e) { // do nothing } } return null; }
protected ID3v2CommentFrameData extractLyricsFrameData(String id) { ID3v2FrameSet frameSet = frameSets.get(id); if (frameSet != null) { Iterator<ID3v2Frame> iterator = frameSet.getFrames().iterator(); while (iterator.hasNext()) { ID3v2Frame frame = (ID3v2Frame) iterator.next(); ID3v2CommentFrameData frameData; try { frameData = new ID3v2CommentFrameData(useFrameUnsynchronisation(), frame.getData()); return frameData; } catch (InvalidDataException e) { // Do nothing } } } return null; }
private ID3v2WWWFrameData extractWWWFrameData(String id) { ID3v2FrameSet frameSet = frameSets.get(id); if (frameSet != null) { ID3v2Frame frame = (ID3v2Frame) frameSet.getFrames().get(0); ID3v2WWWFrameData frameData; try { frameData = new ID3v2WWWFrameData(useFrameUnsynchronisation(), frame.getData()); return frameData; } catch (InvalidDataException e) { // do nothing } } return null; }