org.jpedal.objects.raw.SoundObject Maven / Gradle / Ivy
/*
* ===========================================
* Java Pdf Extraction Decoding Access Library
* ===========================================
*
* Project Info: http://www.idrsolutions.com
* Help section for developers at http://www.idrsolutions.com/support/
*
* (C) Copyright 1997-2017 IDRsolutions and Contributors.
*
* This file is part of JPedal/JPDF2HTML5
*
@LICENSE@
*
* ---------------
* SoundObject.java
* ---------------
*/
package org.jpedal.objects.raw;
import org.jpedal.utils.StringUtils;
public class SoundObject extends PdfObject {
byte[] rawE;
String E;
int B = -1, Cint = -1, R = -1;
public SoundObject(final String ref) {
super(ref);
}
public SoundObject(final int ref, final int gen) {
super(ref, gen);
}
@Override
public void setIntNumber(final int id, final int value) {
switch (id) {
case PdfDictionary.B:
B = value;
break;
case PdfDictionary.C:
Cint = value;
break;
case PdfDictionary.R:
R = value;
break;
default:
super.setIntNumber(id, value);
}
}
@Override
public int getInt(final int id) {
switch (id) {
case PdfDictionary.B:
return B;
case PdfDictionary.C:
return Cint;
case PdfDictionary.R:
return R;
default:
return super.getInt(id);
}
}
@Override
public void setName(final int id, final byte[] value) {
switch (id) {
case PdfDictionary.E:
rawE = value;
break;
default:
super.setName(id, value);
}
}
@Override
public void setTextStreamValue(final int id, final byte[] value) {
switch (id) {
case PdfDictionary.E:
rawE = value;
break;
default:
super.setTextStreamValue(id, value);
}
}
@Override
public String getName(final int id) {
switch (id) {
case PdfDictionary.E:
//setup first time
if (E == null && rawE != null) {
E = StringUtils.getTextString(rawE, false);
}
return E;
default:
return super.getName(id);
}
}
@Override
public boolean decompressStreamWhenRead() {
return true;
}
@Override
public int getNameAsConstant(final int id) {
final byte[] raw;
switch (id) {
case PdfDictionary.E:
raw = rawE;
break;
default:
return super.getNameAsConstant(id);
}
if (raw == null) {
return super.getNameAsConstant(id);
} else {
return PdfDictionary.generateChecksum(0, raw.length, raw);
}
}
@Override
public int getObjectType() {
return PdfDictionary.Sound;
}
}