LCOV - code coverage report
Current view: top level - gfx/sfntly/cpp/src/sfntly/table/core - os2_table.cc (source / functions) Hit Total Coverage
Test: output.info Lines: 0 306 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 126 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright 2011 Google Inc. All Rights Reserved.
       3             :  *
       4             :  * Licensed under the Apache License, Version 2.0 (the "License");
       5             :  * you may not use this file except in compliance with the License.
       6             :  * You may obtain a copy of the License at
       7             :  *
       8             :  *      http://www.apache.org/licenses/LICENSE-2.0
       9             :  *
      10             :  * Unless required by applicable law or agreed to in writing, software
      11             :  * distributed under the License is distributed on an "AS IS" BASIS,
      12             :  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      13             :  * See the License for the specific language governing permissions and
      14             :  * limitations under the License.
      15             :  */
      16             : 
      17             : #include "sfntly/table/core/os2_table.h"
      18             : 
      19             : #include <algorithm>
      20             : 
      21             : namespace sfntly {
      22             : /******************************************************************************
      23             :  * Constants
      24             :  ******************************************************************************/
      25             : const int64_t CodePageRange::kLatin1_1252 = (int64_t)1 << 0;
      26             : const int64_t CodePageRange::kLatin2_1250 = (int64_t)1 << (int64_t)1;
      27             : const int64_t CodePageRange::kCyrillic_1251 = (int64_t)1 << 2;
      28             : const int64_t CodePageRange::kGreek_1253 = (int64_t)1 << 3;
      29             : const int64_t CodePageRange::kTurkish_1254 = (int64_t)1 << 4;
      30             : const int64_t CodePageRange::kHebrew_1255 = (int64_t)1 << 5;
      31             : const int64_t CodePageRange::kArabic_1256 = (int64_t)1 << 6;
      32             : const int64_t CodePageRange::kWindowsBaltic_1257 = (int64_t)1 << 7;
      33             : const int64_t CodePageRange::kVietnamese_1258 = (int64_t)1 << 8;
      34             : const int64_t CodePageRange::kAlternateANSI9 = (int64_t)1 << 9;
      35             : const int64_t CodePageRange::kAlternateANSI10 = (int64_t)1 << 10;
      36             : const int64_t CodePageRange::kAlternateANSI11 = (int64_t)1 << 11;
      37             : const int64_t CodePageRange::kAlternateANSI12 = (int64_t)1 << 12;
      38             : const int64_t CodePageRange::kAlternateANSI13 = (int64_t)1 << 13;
      39             : const int64_t CodePageRange::kAlternateANSI14 = (int64_t)1 << 14;
      40             : const int64_t CodePageRange::kAlternateANSI15 = (int64_t)1 << 15;
      41             : const int64_t CodePageRange::kThai_874 = (int64_t)1 << 16;
      42             : const int64_t CodePageRange::kJapanJIS_932 = (int64_t)1 << 17;
      43             : const int64_t CodePageRange::kChineseSimplified_936 = (int64_t)1 << 18;
      44             : const int64_t CodePageRange::kKoreanWansung_949 = (int64_t)1 << 19;
      45             : const int64_t CodePageRange::kChineseTraditional_950 = (int64_t)1 << 20;
      46             : const int64_t CodePageRange::kKoreanJohab_1361 = (int64_t)1 << 21;
      47             : const int64_t CodePageRange::kAlternateANSI22 = (int64_t)1 << 22;
      48             : const int64_t CodePageRange::kAlternateANSI23 = (int64_t)1 << 23;
      49             : const int64_t CodePageRange::kAlternateANSI24 = (int64_t)1 << 24;
      50             : const int64_t CodePageRange::kAlternateANSI25 = (int64_t)1 << 25;
      51             : const int64_t CodePageRange::kAlternateANSI26 = (int64_t)1 << 26;
      52             : const int64_t CodePageRange::kAlternateANSI27 = (int64_t)1 << 27;
      53             : const int64_t CodePageRange::kAlternateANSI28 = (int64_t)1 << 28;
      54             : const int64_t CodePageRange::kMacintoshCharacterSet = (int64_t)1 << 29;
      55             : const int64_t CodePageRange::kOEMCharacterSet = (int64_t)1 << 30;
      56             : const int64_t CodePageRange::kSymbolCharacterSet = (int64_t)1 << 31;
      57             : const int64_t CodePageRange::kReservedForOEM32 = (int64_t)1 << 32;
      58             : const int64_t CodePageRange::kReservedForOEM33 = (int64_t)1 << 33;
      59             : const int64_t CodePageRange::kReservedForOEM34 = (int64_t)1 << 34;
      60             : const int64_t CodePageRange::kReservedForOEM35 = (int64_t)1 << 35;
      61             : const int64_t CodePageRange::kReservedForOEM36 = (int64_t)1 << 36;
      62             : const int64_t CodePageRange::kReservedForOEM37 = (int64_t)1 << 37;
      63             : const int64_t CodePageRange::kReservedForOEM38 = (int64_t)1 << 38;
      64             : const int64_t CodePageRange::kReservedForOEM39 = (int64_t)1 << 39;
      65             : const int64_t CodePageRange::kReservedForOEM40 = (int64_t)1 << 40;
      66             : const int64_t CodePageRange::kReservedForOEM41 = (int64_t)1 << 41;
      67             : const int64_t CodePageRange::kReservedForOEM42 = (int64_t)1 << 42;
      68             : const int64_t CodePageRange::kReservedForOEM43 = (int64_t)1 << 43;
      69             : const int64_t CodePageRange::kReservedForOEM44 = (int64_t)1 << 44;
      70             : const int64_t CodePageRange::kReservedForOEM45 = (int64_t)1 << 45;
      71             : const int64_t CodePageRange::kReservedForOEM46 = (int64_t)1 << 46;
      72             : const int64_t CodePageRange::kReservedForOEM47 = (int64_t)1 << 47;
      73             : const int64_t CodePageRange::kIBMGreek_869 = (int64_t)1 << 48;
      74             : const int64_t CodePageRange::kMSDOSRussion_866 = (int64_t)1 << 49;
      75             : const int64_t CodePageRange::kMSDOSNordic_865 = (int64_t)1 << 50;
      76             : const int64_t CodePageRange::kArabic_864 = (int64_t)1 << 51;
      77             : const int64_t CodePageRange::kMSDOSCanadianFrench_863 = (int64_t)1 << 52;
      78             : const int64_t CodePageRange::kHebrew_862 = (int64_t)1 << 53;
      79             : const int64_t CodePageRange::kMSDOSIcelandic_861 = (int64_t)1 << 54;
      80             : const int64_t CodePageRange::kMSDOSPortugese_860 = (int64_t)1 << 55;
      81             : const int64_t CodePageRange::kIBMTurkish_857 = (int64_t)1 << 56;
      82             : const int64_t CodePageRange::kIBMCyrillic_855 = (int64_t)1 << 57;
      83             : const int64_t CodePageRange::kLatin2_852 = (int64_t)1 << 58;
      84             : const int64_t CodePageRange::kMSDOSBaltic_775 = (int64_t)1 << 59;
      85             : const int64_t CodePageRange::kGreek_737 = (int64_t)1 << 60;
      86             : const int64_t CodePageRange::kArabic_708 = (int64_t)1 << 61;
      87             : const int64_t CodePageRange::kLatin1_850 = (int64_t)1 << 62;
      88             : const int64_t CodePageRange::kUS_437 = (int64_t)1 << 63;
      89             : 
      90             : /******************************************************************************
      91             :  * struct UnicodeRange
      92             :  ******************************************************************************/
      93           0 : int32_t UnicodeRange::range(int32_t bit) {
      94           0 :   if (bit < 0 || bit > kLast) {
      95           0 :     return -1;
      96             :   }
      97           0 :   return bit;
      98             : }
      99             : 
     100             : /******************************************************************************
     101             :  * class OS2Table
     102             :  ******************************************************************************/
     103           0 : OS2Table::~OS2Table() {}
     104             : 
     105           0 : int32_t OS2Table::TableVersion() {
     106           0 :   return data_->ReadUShort(Offset::kVersion);
     107             : }
     108             : 
     109           0 : int32_t OS2Table::XAvgCharWidth() {
     110           0 :   return data_->ReadShort(Offset::kXAvgCharWidth);
     111             : }
     112             : 
     113           0 : int32_t OS2Table::UsWeightClass() {
     114           0 :   return data_->ReadUShort(Offset::kUsWeightClass);
     115             : }
     116             : 
     117           0 : int32_t OS2Table::UsWidthClass() {
     118           0 :   return data_->ReadUShort(Offset::kUsWidthClass);
     119             : }
     120             : 
     121           0 : int32_t OS2Table::FsType() {
     122           0 :   return data_->ReadUShort(Offset::kFsType);
     123             : }
     124             : 
     125           0 : int32_t OS2Table::YSubscriptXSize() {
     126           0 :   return data_->ReadShort(Offset::kYSubscriptXSize);
     127             : }
     128             : 
     129           0 : int32_t OS2Table::YSubscriptYSize() {
     130           0 :   return data_->ReadShort(Offset::kYSubscriptYSize);
     131             : }
     132             : 
     133           0 : int32_t OS2Table::YSubscriptXOffset() {
     134           0 :   return data_->ReadShort(Offset::kYSubscriptXOffset);
     135             : }
     136             : 
     137           0 : int32_t OS2Table::YSubscriptYOffset() {
     138           0 :   return data_->ReadShort(Offset::kYSubscriptYOffset);
     139             : }
     140             : 
     141           0 : int32_t OS2Table::YSuperscriptXSize() {
     142           0 :   return data_->ReadShort(Offset::kYSuperscriptXSize);
     143             : }
     144             : 
     145           0 : int32_t OS2Table::YSuperscriptYSize() {
     146           0 :   return data_->ReadShort(Offset::kYSuperscriptYSize);
     147             : }
     148             : 
     149           0 : int32_t OS2Table::YSuperscriptXOffset() {
     150           0 :   return data_->ReadShort(Offset::kYSuperscriptXOffset);
     151             : }
     152             : 
     153           0 : int32_t OS2Table::YSuperscriptYOffset() {
     154           0 :   return data_->ReadShort(Offset::kYSuperscriptYOffset);
     155             : }
     156             : 
     157           0 : int32_t OS2Table::YStrikeoutSize() {
     158           0 :   return data_->ReadShort(Offset::kYStrikeoutSize);
     159             : }
     160             : 
     161           0 : int32_t OS2Table::YStrikeoutPosition() {
     162           0 :   return data_->ReadShort(Offset::kYStrikeoutPosition);
     163             : }
     164             : 
     165           0 : int32_t OS2Table::SFamilyClass() {
     166           0 :   return data_->ReadShort(Offset::kSFamilyClass);
     167             : }
     168             : 
     169           0 : void OS2Table::Panose(ByteVector* value) {
     170           0 :   assert(value);
     171           0 :   value->clear();
     172           0 :   value->resize(10);
     173           0 :   data_->ReadBytes(Offset::kPanose, &((*value)[0]), 0, 10);
     174           0 : }
     175             : 
     176           0 : int64_t OS2Table::UlUnicodeRange1() {
     177           0 :   return data_->ReadULong(Offset::kUlUnicodeRange1);
     178             : }
     179             : 
     180           0 : int64_t OS2Table::UlUnicodeRange2() {
     181           0 :   return data_->ReadULong(Offset::kUlUnicodeRange2);
     182             : }
     183             : 
     184           0 : int64_t OS2Table::UlUnicodeRange3() {
     185           0 :   return data_->ReadULong(Offset::kUlUnicodeRange3);
     186             : }
     187             : 
     188           0 : int64_t OS2Table::UlUnicodeRange4() {
     189           0 :   return data_->ReadULong(Offset::kUlUnicodeRange4);
     190             : }
     191             : 
     192           0 : void OS2Table::AchVendId(ByteVector* b) {
     193           0 :   assert(b);
     194           0 :   b->clear();
     195           0 :   b->resize(4);
     196           0 :   data_->ReadBytes(Offset::kAchVendId, &((*b)[0]), 0, 4);
     197           0 : }
     198             : 
     199           0 : int32_t OS2Table::FsSelection() {
     200           0 :   return data_->ReadUShort(Offset::kFsSelection);
     201             : }
     202             : 
     203           0 : int32_t OS2Table::UsFirstCharIndex() {
     204           0 :   return data_->ReadUShort(Offset::kUsFirstCharIndex);
     205             : }
     206             : 
     207           0 : int32_t OS2Table::UsLastCharIndex() {
     208           0 :   return data_->ReadUShort(Offset::kUsLastCharIndex);
     209             : }
     210             : 
     211           0 : int32_t OS2Table::STypoAscender() {
     212           0 :   return data_->ReadShort(Offset::kSTypoAscender);
     213             : }
     214             : 
     215           0 : int32_t OS2Table::STypoDescender() {
     216           0 :   return data_->ReadShort(Offset::kSTypoDescender);
     217             : }
     218             : 
     219           0 : int32_t OS2Table::STypoLineGap() {
     220           0 :   return data_->ReadShort(Offset::kSTypoLineGap);
     221             : }
     222             : 
     223           0 : int32_t OS2Table::UsWinAscent() {
     224           0 :   return data_->ReadUShort(Offset::kUsWinAscent);
     225             : }
     226             : 
     227           0 : int32_t OS2Table::UsWinDescent() {
     228           0 :   return data_->ReadUShort(Offset::kUsWinDescent);
     229             : }
     230             : 
     231           0 : int64_t OS2Table::UlCodePageRange1() {
     232           0 :   return data_->ReadULong(Offset::kUlCodePageRange1);
     233             : }
     234             : 
     235           0 : int64_t OS2Table::UlCodePageRange2() {
     236           0 :   return data_->ReadULong(Offset::kUlCodePageRange2);
     237             : }
     238             : 
     239           0 : int32_t OS2Table::SxHeight() {
     240           0 :   return data_->ReadShort(Offset::kSxHeight);
     241             : }
     242             : 
     243           0 : int32_t OS2Table::SCapHeight() {
     244           0 :   return data_->ReadShort(Offset::kSCapHeight);
     245             : }
     246             : 
     247           0 : int32_t OS2Table::UsDefaultChar() {
     248           0 :   return data_->ReadUShort(Offset::kUsDefaultChar);
     249             : }
     250             : 
     251           0 : int32_t OS2Table::UsBreakChar() {
     252           0 :   return data_->ReadUShort(Offset::kUsBreakChar);
     253             : }
     254             : 
     255           0 : int32_t OS2Table::UsMaxContext() {
     256           0 :   return data_->ReadUShort(Offset::kUsMaxContext);
     257             : }
     258             : 
     259           0 : OS2Table::OS2Table(Header* header, ReadableFontData* data)
     260           0 :     : Table(header, data) {
     261           0 : }
     262             : 
     263             : /******************************************************************************
     264             :  * class OS2Table::Builder
     265             :  ******************************************************************************/
     266           0 : OS2Table::Builder::Builder(Header* header, WritableFontData* data)
     267           0 :     : TableBasedTableBuilder(header, data) {
     268           0 : }
     269             : 
     270           0 : OS2Table::Builder::Builder(Header* header, ReadableFontData* data)
     271           0 :     : TableBasedTableBuilder(header, data) {
     272           0 : }
     273             : 
     274           0 : OS2Table::Builder::~Builder() {}
     275             : 
     276           0 : CALLER_ATTACH FontDataTable* OS2Table::Builder::SubBuildTable(
     277             :     ReadableFontData* data) {
     278           0 :   FontDataTablePtr table = new OS2Table(header(), data);
     279           0 :   return table.Detach();
     280             : }
     281             : 
     282             : CALLER_ATTACH OS2Table::Builder*
     283           0 :     OS2Table::Builder::CreateBuilder(Header* header,
     284             :                                      WritableFontData* data) {
     285           0 :   Ptr<OS2Table::Builder> builder;
     286           0 :   builder = new OS2Table::Builder(header, data);
     287           0 :   return builder.Detach();
     288             : }
     289             : 
     290           0 : int32_t OS2Table::Builder::TableVersion() {
     291           0 :   return InternalReadData()->ReadUShort(Offset::kVersion);
     292             : }
     293             : 
     294           0 : void OS2Table::Builder::SetTableVersion(int32_t version) {
     295           0 :   InternalWriteData()->WriteUShort(Offset::kVersion, version);
     296           0 : }
     297             : 
     298           0 : int32_t OS2Table::Builder::XAvgCharWidth() {
     299           0 :   return InternalReadData()->ReadShort(Offset::kXAvgCharWidth);
     300             : }
     301             : 
     302           0 : void OS2Table::Builder::SetXAvgCharWidth(int32_t width) {
     303           0 :   InternalWriteData()->WriteShort(Offset::kXAvgCharWidth, width);
     304           0 : }
     305             : 
     306           0 : int32_t OS2Table::Builder::UsWeightClass() {
     307           0 :   return InternalReadData()->ReadUShort(Offset::kUsWeightClass);
     308             : }
     309             : 
     310           0 : void OS2Table::Builder::SetUsWeightClass(int32_t weight) {
     311           0 :   InternalWriteData()->WriteUShort(Offset::kUsWeightClass, weight);
     312           0 : }
     313             : 
     314           0 : int32_t OS2Table::Builder::UsWidthClass() {
     315           0 :   return InternalReadData()->ReadUShort(Offset::kUsWidthClass);
     316             : }
     317             : 
     318           0 : void OS2Table::Builder::SetUsWidthClass(int32_t width) {
     319           0 :   InternalWriteData()->WriteUShort(Offset::kUsWidthClass, width);
     320           0 : }
     321             : 
     322           0 : int32_t OS2Table::Builder::FsType() {
     323           0 :   return InternalReadData()->ReadUShort(Offset::kFsType);
     324             : }
     325             : 
     326           0 : void OS2Table::Builder::SetFsType(int32_t fs_type) {
     327           0 :   InternalWriteData()->WriteUShort(Offset::kFsType, fs_type);
     328           0 : }
     329             : 
     330           0 : int32_t OS2Table::Builder::YSubscriptXSize() {
     331           0 :   return InternalReadData()->ReadShort(Offset::kYSubscriptXSize);
     332             : }
     333             : 
     334           0 : void OS2Table::Builder::SetYSubscriptXSize(int32_t size) {
     335           0 :   InternalWriteData()->WriteShort(Offset::kYSubscriptXSize, size);
     336           0 : }
     337             : 
     338           0 : int32_t OS2Table::Builder::YSubscriptYSize() {
     339           0 :   return InternalReadData()->ReadShort(Offset::kYSubscriptYSize);
     340             : }
     341             : 
     342           0 : void OS2Table::Builder::SetYSubscriptYSize(int32_t size) {
     343           0 :   InternalWriteData()->WriteShort(Offset::kYSubscriptYSize, size);
     344           0 : }
     345             : 
     346           0 : int32_t OS2Table::Builder::YSubscriptXOffset() {
     347           0 :   return InternalReadData()->ReadShort(Offset::kYSubscriptXOffset);
     348             : }
     349             : 
     350           0 : void OS2Table::Builder::SetYSubscriptXOffset(int32_t offset) {
     351           0 :   InternalWriteData()->WriteShort(Offset::kYSubscriptXOffset, offset);
     352           0 : }
     353             : 
     354           0 : int32_t OS2Table::Builder::YSubscriptYOffset() {
     355           0 :   return InternalReadData()->ReadShort(Offset::kYSubscriptYOffset);
     356             : }
     357             : 
     358           0 : void OS2Table::Builder::SetYSubscriptYOffset(int32_t offset) {
     359           0 :   InternalWriteData()->WriteShort(Offset::kYSubscriptYOffset, offset);
     360           0 : }
     361             : 
     362           0 : int32_t OS2Table::Builder::YSuperscriptXSize() {
     363           0 :   return InternalReadData()->ReadShort(Offset::kYSuperscriptXSize);
     364             : }
     365             : 
     366           0 : void OS2Table::Builder::SetYSuperscriptXSize(int32_t size) {
     367           0 :   InternalWriteData()->WriteShort(Offset::kYSuperscriptXSize, size);
     368           0 : }
     369             : 
     370           0 : int32_t OS2Table::Builder::YSuperscriptYSize() {
     371           0 :   return InternalReadData()->ReadShort(Offset::kYSuperscriptYSize);
     372             : }
     373             : 
     374           0 : void OS2Table::Builder::SetYSuperscriptYSize(int32_t size) {
     375           0 :   InternalWriteData()->WriteShort(Offset::kYSuperscriptYSize, size);
     376           0 : }
     377             : 
     378           0 : int32_t OS2Table::Builder::YSuperscriptXOffset() {
     379           0 :   return InternalReadData()->ReadShort(Offset::kYSuperscriptXOffset);
     380             : }
     381             : 
     382           0 : void OS2Table::Builder::SetYSuperscriptXOffset(int32_t offset) {
     383           0 :   InternalWriteData()->WriteShort(Offset::kYSuperscriptXOffset, offset);
     384           0 : }
     385             : 
     386           0 : int32_t OS2Table::Builder::YSuperscriptYOffset() {
     387           0 :   return InternalReadData()->ReadShort(Offset::kYSuperscriptYOffset);
     388             : }
     389             : 
     390           0 : void OS2Table::Builder::SetYSuperscriptYOffset(int32_t offset) {
     391           0 :   InternalWriteData()->WriteShort(Offset::kYSuperscriptYOffset, offset);
     392           0 : }
     393             : 
     394           0 : int32_t OS2Table::Builder::YStrikeoutSize() {
     395           0 :   return InternalReadData()->ReadShort(Offset::kYStrikeoutSize);
     396             : }
     397             : 
     398           0 : void OS2Table::Builder::SetYStrikeoutSize(int32_t size) {
     399           0 :   InternalWriteData()->WriteShort(Offset::kYStrikeoutSize, size);
     400           0 : }
     401             : 
     402           0 : int32_t OS2Table::Builder::YStrikeoutPosition() {
     403           0 :   return InternalReadData()->ReadShort(Offset::kYStrikeoutPosition);
     404             : }
     405             : 
     406           0 : void OS2Table::Builder::SetYStrikeoutPosition(int32_t position) {
     407           0 :   InternalWriteData()->WriteShort(Offset::kYStrikeoutPosition, position);
     408           0 : }
     409             : 
     410           0 : int32_t OS2Table::Builder::SFamilyClass() {
     411           0 :   return InternalReadData()->ReadShort(Offset::kSFamilyClass);
     412             : }
     413             : 
     414           0 : void OS2Table::Builder::SetSFamilyClass(int32_t family) {
     415           0 :   InternalWriteData()->WriteShort(Offset::kSFamilyClass, family);
     416           0 : }
     417             : 
     418           0 : void OS2Table::Builder::Panose(ByteVector* value) {
     419           0 :   assert(value);
     420           0 :   value->clear();
     421           0 :   value->resize(Offset::kPanoseLength);
     422           0 :   InternalReadData()->ReadBytes(Offset::kPanose,
     423           0 :                                 &((*value)[0]),
     424             :                                 0,
     425           0 :                                 Offset::kPanoseLength);
     426           0 : }
     427             : 
     428           0 : void OS2Table::Builder::SetPanose(ByteVector* panose) {
     429           0 :   assert(panose);
     430           0 :   if (panose->size() != Offset::kPanoseLength) {
     431             : #if !defined (SFNTLY_NO_EXCEPTION)
     432             :     throw IllegalArgumentException("Panose bytes must be exactly 10 in length");
     433             : #endif
     434           0 :     return;
     435             :   }
     436           0 :   InternalWriteData()->WriteBytes(Offset::kPanose, panose);
     437             : }
     438             : 
     439           0 : int64_t OS2Table::Builder::UlUnicodeRange1() {
     440           0 :   return InternalReadData()->ReadULong(Offset::kUlUnicodeRange1);
     441             : }
     442             : 
     443           0 : void OS2Table::Builder::SetUlUnicodeRange1(int64_t range) {
     444           0 :   InternalWriteData()->WriteULong(Offset::kUlUnicodeRange1, range);
     445           0 : }
     446             : 
     447           0 : int64_t OS2Table::Builder::UlUnicodeRange2() {
     448           0 :   return InternalReadData()->ReadULong(Offset::kUlUnicodeRange2);
     449             : }
     450             : 
     451           0 : void OS2Table::Builder::SetUlUnicodeRange2(int64_t range) {
     452           0 :   InternalWriteData()->WriteULong(Offset::kUlUnicodeRange2, range);
     453           0 : }
     454             : 
     455           0 : int64_t OS2Table::Builder::UlUnicodeRange3() {
     456           0 :   return InternalReadData()->ReadULong(Offset::kUlUnicodeRange3);
     457             : }
     458             : 
     459           0 : void OS2Table::Builder::SetUlUnicodeRange3(int64_t range) {
     460           0 :   InternalWriteData()->WriteULong(Offset::kUlUnicodeRange3, range);
     461           0 : }
     462             : 
     463           0 : int64_t OS2Table::Builder::UlUnicodeRange4() {
     464           0 :   return InternalReadData()->ReadULong(Offset::kUlUnicodeRange4);
     465             : }
     466             : 
     467           0 : void OS2Table::Builder::SetUlUnicodeRange4(int64_t range) {
     468           0 :   InternalWriteData()->WriteULong(Offset::kUlUnicodeRange4, range);
     469           0 : }
     470             : 
     471           0 : void OS2Table::Builder::AchVendId(ByteVector* b) {
     472           0 :   assert(b);
     473           0 :   b->clear();
     474           0 :   b->resize(4);
     475           0 :   InternalReadData()->ReadBytes(Offset::kAchVendId, &((*b)[0]), 0, 4);
     476           0 : }
     477             : 
     478           0 : void OS2Table::Builder::SetAchVendId(ByteVector* b) {
     479           0 :   assert(b);
     480           0 :   assert(b->size());
     481           0 :   InternalWriteData()->WriteBytesPad(Offset::kAchVendId,
     482             :                                      b,
     483             :                                      0,
     484           0 :                                      std::min<size_t>(
     485             :                                          (size_t)Offset::kAchVendIdLength,
     486           0 :                                          b->size()),
     487           0 :                                      static_cast<byte_t>(' '));
     488           0 : }
     489             : 
     490           0 : int32_t OS2Table::Builder::FsSelection() {
     491           0 :   return InternalReadData()->ReadUShort(Offset::kFsSelection);
     492             : }
     493             : 
     494           0 : void OS2Table::Builder::SetFsSelection(int32_t fs_selection) {
     495           0 :   InternalWriteData()->WriteUShort(Offset::kFsSelection, fs_selection);
     496           0 : }
     497             : 
     498           0 : int32_t OS2Table::Builder::UsFirstCharIndex() {
     499           0 :   return InternalReadData()->ReadUShort(Offset::kUsFirstCharIndex);
     500             : }
     501             : 
     502           0 : void OS2Table::Builder::SetUsFirstCharIndex(int32_t first_index) {
     503           0 :   InternalWriteData()->WriteUShort(Offset::kUsFirstCharIndex, first_index);
     504           0 : }
     505             : 
     506           0 : int32_t OS2Table::Builder::UsLastCharIndex() {
     507           0 :   return InternalReadData()->ReadUShort(Offset::kUsLastCharIndex);
     508             : }
     509             : 
     510           0 : void OS2Table::Builder::SetUsLastCharIndex(int32_t last_index) {
     511           0 :   InternalWriteData()->WriteUShort(Offset::kUsLastCharIndex, last_index);
     512           0 : }
     513             : 
     514           0 : int32_t OS2Table::Builder::STypoAscender() {
     515           0 :   return InternalReadData()->ReadShort(Offset::kSTypoAscender);
     516             : }
     517             : 
     518           0 : void OS2Table::Builder::SetSTypoAscender(int32_t ascender) {
     519           0 :   InternalWriteData()->WriteShort(Offset::kSTypoAscender, ascender);
     520           0 : }
     521             : 
     522           0 : int32_t OS2Table::Builder::STypoDescender() {
     523           0 :   return InternalReadData()->ReadShort(Offset::kSTypoDescender);
     524             : }
     525             : 
     526           0 : void OS2Table::Builder::SetSTypoDescender(int32_t descender) {
     527           0 :   InternalWriteData()->WriteShort(Offset::kSTypoDescender, descender);
     528           0 : }
     529             : 
     530           0 : int32_t OS2Table::Builder::STypoLineGap() {
     531           0 :   return InternalReadData()->ReadShort(Offset::kSTypoLineGap);
     532             : }
     533             : 
     534           0 : void OS2Table::Builder::SetSTypoLineGap(int32_t line_gap) {
     535           0 :   InternalWriteData()->WriteShort(Offset::kSTypoLineGap, line_gap);
     536           0 : }
     537             : 
     538           0 : int32_t OS2Table::Builder::UsWinAscent() {
     539           0 :   return InternalReadData()->ReadUShort(Offset::kUsWinAscent);
     540             : }
     541             : 
     542           0 : void OS2Table::Builder::SetUsWinAscent(int32_t ascent) {
     543           0 :   InternalWriteData()->WriteUShort(Offset::kUsWinAscent, ascent);
     544           0 : }
     545             : 
     546           0 : int32_t OS2Table::Builder::UsWinDescent() {
     547           0 :   return InternalReadData()->ReadUShort(Offset::kUsWinDescent);
     548             : }
     549             : 
     550           0 : void OS2Table::Builder::SetUsWinDescent(int32_t descent) {
     551           0 :   InternalWriteData()->WriteUShort(Offset::kUsWinDescent, descent);
     552           0 : }
     553             : 
     554           0 : int64_t OS2Table::Builder::UlCodePageRange1() {
     555           0 :   return InternalReadData()->ReadULong(Offset::kUlCodePageRange1);
     556             : }
     557             : 
     558           0 : void OS2Table::Builder::SetUlCodePageRange1(int64_t range) {
     559           0 :   InternalWriteData()->WriteULong(Offset::kUlCodePageRange1, range);
     560           0 : }
     561             : 
     562           0 : int64_t OS2Table::Builder::UlCodePageRange2() {
     563           0 :   return InternalReadData()->ReadULong(Offset::kUlCodePageRange2);
     564             : }
     565             : 
     566           0 : void OS2Table::Builder::SetUlCodePageRange2(int64_t range) {
     567           0 :   InternalWriteData()->WriteULong(Offset::kUlCodePageRange2, range);
     568           0 : }
     569             : 
     570           0 : int32_t OS2Table::Builder::SxHeight() {
     571           0 :   return InternalReadData()->ReadShort(Offset::kSxHeight);
     572             : }
     573             : 
     574           0 : void OS2Table::Builder::SetSxHeight(int32_t height) {
     575           0 :   InternalWriteData()->WriteShort(Offset::kSxHeight, height);
     576           0 : }
     577             : 
     578           0 : int32_t OS2Table::Builder::SCapHeight() {
     579           0 :   return InternalReadData()->ReadShort(Offset::kSCapHeight);
     580             : }
     581             : 
     582           0 : void OS2Table::Builder::SetSCapHeight(int32_t height) {
     583           0 :   InternalWriteData()->WriteShort(Offset::kSCapHeight, height);
     584           0 : }
     585             : 
     586           0 : int32_t OS2Table::Builder::UsDefaultChar() {
     587           0 :   return InternalReadData()->ReadUShort(Offset::kUsDefaultChar);
     588             : }
     589             : 
     590           0 : void OS2Table::Builder::SetUsDefaultChar(int32_t default_char) {
     591           0 :   InternalWriteData()->WriteUShort(Offset::kUsDefaultChar, default_char);
     592           0 : }
     593             : 
     594           0 : int32_t OS2Table::Builder::UsBreakChar() {
     595           0 :   return InternalReadData()->ReadUShort(Offset::kUsBreakChar);
     596             : }
     597             : 
     598           0 : void OS2Table::Builder::SetUsBreakChar(int32_t break_char) {
     599           0 :   InternalWriteData()->WriteUShort(Offset::kUsBreakChar, break_char);
     600           0 : }
     601             : 
     602           0 : int32_t OS2Table::Builder::UsMaxContext() {
     603           0 :   return InternalReadData()->ReadUShort(Offset::kUsMaxContext);
     604             : }
     605             : 
     606           0 : void OS2Table::Builder::SetUsMaxContext(int32_t max_context) {
     607           0 :   InternalWriteData()->WriteUShort(Offset::kUsMaxContext, max_context);
     608           0 : }
     609             : 
     610             : }  // namespace sfntly

Generated by: LCOV version 1.13