content: /*
   * Copyright 2002-2019 Drew Noakes and contributors
   *
   *    Licensed under the Apache License, Version 2.0 (the "License");
   *    you may not use this file except in compliance with the License.
   *    You may obtain a copy of the License at
   *
   *        https://www.apache.org/licenses/LICENSE-2.0
   *
   *    Unless required by applicable law or agreed to in writing, software
   *    distributed under the License is distributed on an "AS IS" BASIS,
   *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *    See the License for the specific language governing permissions and
   *    limitations under the License.
   *
   * More information about this project is available at:
   *
   *    https://drewnoakes.com/code/exif/
   *    https://github.com/drewnoakes/metadata-extractor
   */
  package com.drew.metadata.mov.atoms;
  
  import com.drew.lang.SequentialReader;
  import com.drew.metadata.mov.media.QuickTimeTimecodeDirectory;
  
  import java.io.IOException;
  
  /**
   * https://developer.apple.com/library/content/documentation/QuickTime/QTFF/QTFFChap3/qtff3.html#//apple_ref/doc/uid/TP40000939-CH205-BBCBEAGJ
   *
   * @author Payton Garland
   */
  public class TimecodeInformationMediaAtom extends FullAtom
  {
      int textFont;
      int textFace;
      int textSize;
      int[] textColor;
      int[] backgroundColor;
      String fontName;
  
      public TimecodeInformationMediaAtom(SequentialReader reader, Atom atom) throws IOException
      {
          super(reader, atom);
  
          textFont = reader.getInt16();
          textFace = reader.getInt16();
          textSize = reader.getInt16();
          reader.skip(2); // Reserved
          textColor = new int[]{reader.getUInt16(), reader.getUInt16(), reader.getUInt16()};
          backgroundColor = new int[]{reader.getUInt16(), reader.getUInt16(), reader.getUInt16()};
          fontName = reader.getString(reader.getUInt8());
      }
  
      public void addMetadata(QuickTimeTimecodeDirectory directory)
      {
          directory.setInt(QuickTimeTimecodeDirectory.TAG_TEXT_FONT, textFont);
          switch (textFace) {
              case (0x0001):
                  directory.setString(QuickTimeTimecodeDirectory.TAG_TEXT_FACE, "Bold");
                  break;
              case (0x0002):
                  directory.setString(QuickTimeTimecodeDirectory.TAG_TEXT_FACE, "Italic");
                  break;
              case (0x0004):
                  directory.setString(QuickTimeTimecodeDirectory.TAG_TEXT_FACE, "Underline");
                  break;
              case (0x0008):
                  directory.setString(QuickTimeTimecodeDirectory.TAG_TEXT_FACE, "Outline");
                  break;
              case (0x0010):
                  directory.setString(QuickTimeTimecodeDirectory.TAG_TEXT_FACE, "Shadow");
                  break;
              case (0x0020):
                  directory.setString(QuickTimeTimecodeDirectory.TAG_TEXT_FACE, "Condense");
                  break;
              case (0x0040):
                  directory.setString(QuickTimeTimecodeDirectory.TAG_TEXT_FACE, "Extend");
          }
  
          directory.setInt(QuickTimeTimecodeDirectory.TAG_TEXT_SIZE, textSize);
          directory.setIntArray(QuickTimeTimecodeDirectory.TAG_TEXT_COLOR, textColor);
          directory.setIntArray(QuickTimeTimecodeDirectory.TAG_BACKGROUND_COLOR, backgroundColor);
          directory.setString(QuickTimeTimecodeDirectory.TAG_FONT_NAME, fontName);
      }
  }
  