1package com.googlecode.mp4parser.boxes.apple;
2
3import com.coremedia.iso.IsoTypeReader;
4import com.coremedia.iso.IsoTypeWriter;
5import com.googlecode.mp4parser.AbstractFullBox;
6
7import java.nio.ByteBuffer;
8
9public class BaseMediaInfoAtom extends AbstractFullBox {
10    public static final String TYPE = "gmin";
11
12    short graphicsMode = 64;
13    int opColorR = 32768;
14    int opColorG = 32768;
15    int opColorB = 32768;
16    short balance;
17    short reserved;
18
19    public BaseMediaInfoAtom() {
20        super(TYPE);
21    }
22
23    @Override
24    protected long getContentSize() {
25        return 16;
26    }
27
28    @Override
29    protected void getContent(ByteBuffer byteBuffer) {
30        writeVersionAndFlags(byteBuffer);
31        byteBuffer.putShort(graphicsMode);
32        IsoTypeWriter.writeUInt16(byteBuffer, opColorR);
33        IsoTypeWriter.writeUInt16(byteBuffer,opColorG );
34        IsoTypeWriter.writeUInt16(byteBuffer,opColorB );
35        byteBuffer.putShort(balance);
36        byteBuffer.putShort(reserved);
37    }
38
39    @Override
40    protected void _parseDetails(ByteBuffer content) {
41        parseVersionAndFlags(content);
42        graphicsMode = content.getShort();
43        opColorR = IsoTypeReader.readUInt16(content);
44        opColorG = IsoTypeReader.readUInt16(content);
45        opColorB = IsoTypeReader.readUInt16(content);
46        balance = content.getShort();
47        reserved = content.getShort();
48
49    }
50
51    public short getGraphicsMode() {
52        return graphicsMode;
53    }
54
55    public void setGraphicsMode(short graphicsMode) {
56        this.graphicsMode = graphicsMode;
57    }
58
59    public int getOpColorR() {
60        return opColorR;
61    }
62
63    public void setOpColorR(int opColorR) {
64        this.opColorR = opColorR;
65    }
66
67    public int getOpColorG() {
68        return opColorG;
69    }
70
71    public void setOpColorG(int opColorG) {
72        this.opColorG = opColorG;
73    }
74
75    public int getOpColorB() {
76        return opColorB;
77    }
78
79    public void setOpColorB(int opColorB) {
80        this.opColorB = opColorB;
81    }
82
83    public short getBalance() {
84        return balance;
85    }
86
87    public void setBalance(short balance) {
88        this.balance = balance;
89    }
90
91    public short getReserved() {
92        return reserved;
93    }
94
95    public void setReserved(short reserved) {
96        this.reserved = reserved;
97    }
98
99    @Override
100    public String toString() {
101        return "BaseMediaInfoAtom{" +
102                "graphicsMode=" + graphicsMode +
103                ", opColorR=" + opColorR +
104                ", opColorG=" + opColorG +
105                ", opColorB=" + opColorB +
106                ", balance=" + balance +
107                ", reserved=" + reserved +
108                '}';
109    }
110}
111