11ae29591efbb29492ce05378909ccf4028d7c1eeBehdad Esfahbodfrom __future__ import print_function, division, absolute_import
230e691edd056ba22fa8970280e986747817bec3dBehdad Esfahbodfrom fontTools.misc.py23 import *
330e691edd056ba22fa8970280e986747817bec3dBehdad Esfahbodfrom fontTools.misc.textTools import safeEval
42b06aaa2a6bcd363c25fb0c43f6bb906906594bdBehdad Esfahbodfrom . import DefaultTable
530e691edd056ba22fa8970280e986747817bec3dBehdad Esfahbodimport sys
67842e56b97ce677b83bdab09cda48bc2d89ac75aJustimport array
77842e56b97ce677b83bdab09cda48bc2d89ac75aJust
87842e56b97ce677b83bdab09cda48bc2d89ac75aJustclass table__c_v_t(DefaultTable.DefaultTable):
97842e56b97ce677b83bdab09cda48bc2d89ac75aJust
107842e56b97ce677b83bdab09cda48bc2d89ac75aJust	def decompile(self, data, ttFont):
117842e56b97ce677b83bdab09cda48bc2d89ac75aJust		values = array.array("h")
127842e56b97ce677b83bdab09cda48bc2d89ac75aJust		values.fromstring(data)
13180ace6a5ff1399ec53bc696e8bef7cce6eef39aBehdad Esfahbod		if sys.byteorder != "big":
147842e56b97ce677b83bdab09cda48bc2d89ac75aJust			values.byteswap()
157842e56b97ce677b83bdab09cda48bc2d89ac75aJust		self.values = values
167842e56b97ce677b83bdab09cda48bc2d89ac75aJust
177842e56b97ce677b83bdab09cda48bc2d89ac75aJust	def compile(self, ttFont):
187842e56b97ce677b83bdab09cda48bc2d89ac75aJust		values = self.values[:]
19180ace6a5ff1399ec53bc696e8bef7cce6eef39aBehdad Esfahbod		if sys.byteorder != "big":
207842e56b97ce677b83bdab09cda48bc2d89ac75aJust			values.byteswap()
217842e56b97ce677b83bdab09cda48bc2d89ac75aJust		return values.tostring()
227842e56b97ce677b83bdab09cda48bc2d89ac75aJust
237842e56b97ce677b83bdab09cda48bc2d89ac75aJust	def toXML(self, writer, ttFont):
247842e56b97ce677b83bdab09cda48bc2d89ac75aJust		for i in range(len(self.values)):
257842e56b97ce677b83bdab09cda48bc2d89ac75aJust			value = self.values[i]
267842e56b97ce677b83bdab09cda48bc2d89ac75aJust			writer.simpletag("cv", value=value, index=i)
277842e56b97ce677b83bdab09cda48bc2d89ac75aJust			writer.newline()
287842e56b97ce677b83bdab09cda48bc2d89ac75aJust
293a9fd301808f5a8991ca9ac44028d1ecb22d307fBehdad Esfahbod	def fromXML(self, name, attrs, content, ttFont):
307842e56b97ce677b83bdab09cda48bc2d89ac75aJust		if not hasattr(self, "values"):
317842e56b97ce677b83bdab09cda48bc2d89ac75aJust			self.values = array.array("h")
327842e56b97ce677b83bdab09cda48bc2d89ac75aJust		if name == "cv":
337842e56b97ce677b83bdab09cda48bc2d89ac75aJust			index = safeEval(attrs["index"])
347842e56b97ce677b83bdab09cda48bc2d89ac75aJust			value = safeEval(attrs["value"])
357842e56b97ce677b83bdab09cda48bc2d89ac75aJust			for i in range(1 + index - len(self.values)):
367842e56b97ce677b83bdab09cda48bc2d89ac75aJust				self.values.append(0)
377842e56b97ce677b83bdab09cda48bc2d89ac75aJust			self.values[index] = value
387842e56b97ce677b83bdab09cda48bc2d89ac75aJust
397842e56b97ce677b83bdab09cda48bc2d89ac75aJust	def __len__(self):
407842e56b97ce677b83bdab09cda48bc2d89ac75aJust		return len(self.values)
417842e56b97ce677b83bdab09cda48bc2d89ac75aJust
427842e56b97ce677b83bdab09cda48bc2d89ac75aJust	def __getitem__(self, index):
437842e56b97ce677b83bdab09cda48bc2d89ac75aJust		return self.values[index]
447842e56b97ce677b83bdab09cda48bc2d89ac75aJust
457842e56b97ce677b83bdab09cda48bc2d89ac75aJust	def __setitem__(self, index, value):
467842e56b97ce677b83bdab09cda48bc2d89ac75aJust		self.values[index] = value
477842e56b97ce677b83bdab09cda48bc2d89ac75aJust
487842e56b97ce677b83bdab09cda48bc2d89ac75aJust	def __delitem__(self, index):
497842e56b97ce677b83bdab09cda48bc2d89ac75aJust		del self.values[index]
507842e56b97ce677b83bdab09cda48bc2d89ac75aJust
51