1333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com/*
2333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * Copyright 2011 Google Inc. All Rights Reserved.
3333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com *
4333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * Licensed under the Apache License, Version 2.0 (the "License");
5333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * you may not use this file except in compliance with the License.
6333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * You may obtain a copy of the License at
7333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com *
8333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com *      http://www.apache.org/licenses/LICENSE-2.0
9333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com *
10333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * Unless required by applicable law or agreed to in writing, software
11333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * distributed under the License is distributed on an "AS IS" BASIS,
12333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * See the License for the specific language governing permissions and
14333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * limitations under the License.
15333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com */
16333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
17333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com#include "sfntly/table/bitmap/ebsc_table.h"
18333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
19333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comnamespace sfntly {
20333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com/******************************************************************************
21333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * EbscTable class
22333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com ******************************************************************************/
23333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comEbscTable::~EbscTable() {
24333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
25333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
26333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::Version() {
27333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  return data_->ReadFixed(Offset::kVersion);
28333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
29333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
30333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::NumSizes() {
31333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  return data_->ReadULongAsInt(Offset::kNumSizes);
32333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
33333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
34333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comEbscTable::EbscTable(Header* header, ReadableFontData* data)
35333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com    : Table(header, data) {
36333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
37333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
38333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com/******************************************************************************
39333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * EbscTable::BitmapScaleTable class
40333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com ******************************************************************************/
41333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comEbscTable::BitmapScaleTable::~BitmapScaleTable() {
42333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
43333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
44333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comEbscTable::BitmapScaleTable::BitmapScaleTable(ReadableFontData* data)
45333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com    : SubTable(data) {
46333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
47333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
48333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::BitmapScaleTable::PpemX() {
49333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  return data_->ReadByte(Offset::kBitmapScaleTable_ppemX);
50333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
51333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
52333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::BitmapScaleTable::PpemY() {
53333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  return data_->ReadByte(Offset::kBitmapScaleTable_ppemY);
54333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
55333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
56333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::BitmapScaleTable::SubstitutePpemX() {
57333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  return data_->ReadByte(Offset::kBitmapScaleTable_substitutePpemX);
58333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
59333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
60333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::BitmapScaleTable::SubstitutePpemY() {
61333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  return data_->ReadByte(Offset::kBitmapScaleTable_substitutePpemY);
62333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
63333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
64333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com/******************************************************************************
65333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com * EbscTable::Builder class
66333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com ******************************************************************************/
67333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comEbscTable::Builder::~Builder() {
68333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
69333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
70333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comCALLER_ATTACH EbscTable::Builder* EbscTable::Builder::CreateBuilder(
71333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com    Header* header, WritableFontData* data) {
72333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  EbscTableBuilderPtr builder = new EbscTable::Builder(header, data);
73333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  return builder.Detach();
74333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
75333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
76333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comEbscTable::Builder::Builder(Header* header, WritableFontData* data)
77333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com    : Table::Builder(header, data) {
78333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
79333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
80333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comEbscTable::Builder::Builder(Header* header, ReadableFontData* data)
81333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com    : Table::Builder(header, data) {
82333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
83333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
84333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comCALLER_ATTACH
85333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comFontDataTable* EbscTable::Builder::SubBuildTable(ReadableFontData* data) {
86333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  EbscTablePtr output = new EbscTable(header(), data);
87333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  return output.Detach();
88333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
89333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
90333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comvoid EbscTable::Builder::SubDataSet() {
91333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  // NOP
92333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
93333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
94333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::Builder::SubDataSizeToSerialize() {
95333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  return 0;
96333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
97333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
98333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.combool EbscTable::Builder::SubReadyToSerialize() {
99333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  return false;
100333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
101333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
102333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.comint32_t EbscTable::Builder::SubSerialize(WritableFontData* new_data) {
103333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  UNREFERENCED_PARAMETER(new_data);
104333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com  return 0;
105333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}
106333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com
107333edd91cb32d6acfd0307ba2ae8f60baed75ff4arthurhsu@google.com}  // namespace sfntly
108