Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2007-03-16 17:12:47 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2007-03-16 17:12:47 (GMT)
commitc9f28b7317fab9a6d824cac9ef3eedd39fba4948 (patch)
treed49a28e948d7503169c46fe97ef3dc93d1be4ba7 /sugar
parent8b6af7efa56599fd4edb81471fe92253549edb37 (diff)
Rework the emulator. Move matchbox in the shell.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/Makefile.am1
-rw-r--r--sugar/emulator.py123
-rw-r--r--sugar/env.py3
3 files changed, 0 insertions, 127 deletions
diff --git a/sugar/Makefile.am b/sugar/Makefile.am
index 0642fbd..3e8aee2 100644
--- a/sugar/Makefile.am
+++ b/sugar/Makefile.am
@@ -4,7 +4,6 @@ sugardir = $(pythondir)/sugar
sugar_PYTHON = \
__init__.py \
date.py \
- emulator.py \
env.py \
logger.py \
profile.py \
diff --git a/sugar/emulator.py b/sugar/emulator.py
deleted file mode 100644
index 5373255..0000000
--- a/sugar/emulator.py
+++ /dev/null
@@ -1,123 +0,0 @@
-# Copyright (C) 2006, Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-import os
-import socket
-import sys
-
-import gobject
-
-from sugar import env
-
-def get_display_number():
- """Find a free display number trying to connect to 6000+ ports"""
- retries = 20
- display_number = 1
- display_is_free = False
-
- while not display_is_free and retries > 0:
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- try:
- s.connect(('127.0.0.1', 6000 + display_number))
- s.close()
-
- display_number += 1
- retries -= 1
- except:
- display_is_free = True
-
- if display_is_free:
- return display_number
- else:
- logging.error('Cannot find a free display.')
- sys.exit(0)
-
-class Process:
- """Object representing one of the session processes"""
-
- def __init__(self, command):
- self._command = command
-
- def get_name(self):
- return self._command
-
- def start(self, standard_output=False):
- args = self._command.split()
- flags = gobject.SPAWN_SEARCH_PATH
- result = gobject.spawn_async(args, flags=flags,
- standard_output=standard_output)
- self.pid = result[0]
- self._stdout = result[2]
-
-class MatchboxProcess(Process):
- def __init__(self, kbd_config):
- options = '-use_titlebar no '
- options += '-theme olpc '
-
- if kbd_config:
- options += '-kbdconfig %s ' % kbd_config
-
- command = 'matchbox-window-manager %s ' % options
- Process.__init__(self, command)
-
- def get_name(self):
- return 'Matchbox'
-
-class XephyrProcess(Process):
- def __init__(self, width, height, dpi):
- self._display = get_display_number()
- cmd = 'Xephyr :%d -ac ' % (self._display)
-
- if width > 0 and height > 0:
- cmd += ' -screen %dx%d' % (width, height)
- else:
- cmd += ' -fullscreen '
-
- if dpi > 0:
- cmd += ' -dpi %d' % (dpi)
-
- Process.__init__(self, cmd)
-
- def get_name(self):
- return 'Xephyr'
-
- def start(self, standard_output=False):
- Process.start(self)
- os.environ['DISPLAY'] = ":%d" % (self._display)
- os.environ['SUGAR_EMULATOR_PID'] = '%d' % self.pid
-
-class Emulator(object):
- """The OLPC emulator"""
- def __init__(self, width, height, dpi):
- self._keyboard_config = None
- self._width = width
- self._height = height
- self._dpi = dpi
-
- def set_keyboard_config(self, config):
- self._keyboard_config = config
-
- def start(self):
- try:
- process = XephyrProcess(self._width, self._height, self._dpi)
- process.start()
- except:
- print 'Cannot run the emulator. You need to install Xephyr'
- sys.exit(0)
-
- process = MatchboxProcess(self._keyboard_config)
- process.start()
diff --git a/sugar/env.py b/sugar/env.py
index 4cdaf2c..4938940 100644
--- a/sugar/env.py
+++ b/sugar/env.py
@@ -66,6 +66,3 @@ def get_service_path(name):
def get_shell_path(path=None):
return _get_prefix_path('share/sugar/shell', path)
-
-def get_emulator_path(path=None):
- return _get_prefix_path('share/sugar/emulator', path)