Continue conversion

This commit is contained in:
Gergely Polonkai 2015-10-30 17:42:05 +01:00
parent 3bda776d90
commit cd5ee8511e
3 changed files with 61 additions and 5 deletions

2
buffer.py Normal file
View File

@ -0,0 +1,2 @@
class Buffer(object):
pass

View File

@ -9,14 +9,16 @@ import gi
gi.require_version('Clutter', '1.0')
from gi.repository import Clutter
from gi.repository import GLib
from resources import ResourcesCollection
from utils import ensureDirExists
win32 = False
apple = False
developer = True
PREFIX = ''
PREFIX = '/usr'
# Clutter.init()
#
# stage = Clutter.Stage()
@ -57,6 +59,9 @@ def loadResources(selfPath):
dirs.append(PREFIX + "/share/einstein/res")
dirs.append(os.environ["HOME"] + "/.einstein/res")
if developer:
dirs.append(os.path.dirname(os.path.dirname(__file__)))
dirs.append("res")
dirs.append(".")
resources = ResourcesCollection(dirs)

View File

@ -1,6 +1,55 @@
from os import listdir
class ResourceFile(object):
def __init__(fileName, buf=None):
# Ooooh, what does this button do?
# name(fileName)
if buf:
buffer = buf
ownBuffer = False
else:
buffer = Buffer()
ownBuffer = true
try:
with open(fileName, 'rb') as f:
try:
sign = f.read(4)
if sign[0] != 'C' \
or sign[1] != 'R' \
or sign[2] != 'F' \
or sign[3]:
raise IOError("Failover")
major = f.unpack('i', 4)
minor = f.unpack('i', 4)
priority = f.unpack('i', 4)
if major != 2 or minor < 0:
raise Exception("Incompatible version of resource file '" + name + "'")
except IOError:
raise Exception("Invalid resource file '" + name + "'")
# How to reproduce this?
# int readed = stream.gcount();
except IOError:
raise Exception("Error loading resource file '" + name + "'")
class ResourcesCollection:
def __init__(self, directories):
loadResourceFiles(directories);
ResFileMoreThen comparator;
std::sort(files.begin(), files.end(), comparator);
processFiles();
self.__files = []
self.__buffer = None
self.loadResourceFiles(directories)
processFiles()
def loadResourceFiles(self, directories):
for directory in directories:
try:
for name in listdir(directory):
if not name.startswith('.') and name.endswith('.res'):
self.__files.append(ResourceFile(directory + '/' + name, self.__buffer));
except OSError:
pass