1dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhupackage com.coremedia.iso.boxes.apple;
2dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
3dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport com.coremedia.iso.IsoTypeReader;
4dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport com.coremedia.iso.Utf8;
5dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport com.googlecode.mp4parser.AbstractFullBox;
6dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
7dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhuimport java.nio.ByteBuffer;
8dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
9dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu/**
10dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * Apple Name box. Allowed as subbox of "----" box.
11dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu *
12dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu * @see AppleGenericBox
13dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu */
14dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhupublic final class AppleNameBox extends AbstractFullBox {
15dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public static final String TYPE = "name";
16dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    private String name;
17dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
18dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public AppleNameBox() {
19dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        super(TYPE);
20dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
21dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
22dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    protected long getContentSize() {
23dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        return 4 + Utf8.convert(name).length;
24dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
25dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
26dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public String getName() {
27dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        return name;
28dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
29dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
30dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public void setName(String name) {
31dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        this.name = name;
32dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
33dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
34dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    @Override
35dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    public void _parseDetails(ByteBuffer content) {
36dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        parseVersionAndFlags(content);
37dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        name = IsoTypeReader.readString(content, content.remaining());
38dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
39dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu
40dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    @Override
41dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    protected void getContent(ByteBuffer byteBuffer) {
42dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        writeVersionAndFlags(byteBuffer);
43dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu        byteBuffer.put(Utf8.convert(name));
44dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu    }
45dd9eb897ee7c7b507cbdcf80263bb4b5de6966bfTeng-Hui Zhu}
46