コード例 #1
0
ファイル: scrolltext.py プロジェクト: slobberchops/rop
    def __init__(self, matrix, config):
        self.config = config
        self._initText()
        self.thisMessage = self._getText()
        self.nextMessage = self._getText()

        self.typeface = OPCText(typeface_bbc)
        self.base = 0
コード例 #2
0
ファイル: scrolltext.py プロジェクト: slobberchops/rop
class ScrollText(ArtBaseClass):

    description = "Scroll text across the display"

    fg = None
    bg = None

    def __init__(self, matrix, config):
        self.config = config
        self._initText()
        self.thisMessage = self._getText()
        self.nextMessage = self._getText()

        self.typeface = OPCText(typeface_bbc)
        self.base = 0

    def _initText(self):
        raise NotImplementedError

    def _getText(self):
        raise NotImplementedError

    def start(self, matrix):
        pass

    def refresh(self, matrix):
        matrix.clear()

        y = matrix.height/2 - 4

        end = self.typeface.drawText(matrix, 0-self.base, y,
                                     self.thisMessage, self.fg, self.bg)

        # drawText returns None if the image ran to the end of the page. If it
        # didn't, then it's time to bring in the new one.
        if end is not None:
            self.typeface.drawText(matrix, end, y,
                                   self.nextMessage, self.fg, self.bg)
            if end == 1:
                # this is the final pixel for the original text. So next time
                # through, next message is the active messge.
                self.thisMessage = self.nextMessage
                self.nextMessage = self._getText()
                self.base = -1

        self.base += 1

    def interval(self):
        return 50
コード例 #3
0
ファイル: scrolltext.py プロジェクト: slobberchops/rop
class ScrollText(ArtBaseClass):

    description = "Scroll text across the display"

    fg = None
    bg = None

    def __init__(self, matrix, config):
        self.config = config
        self._initText()
        self.thisMessage = self._getText()
        self.nextMessage = self._getText()

        self.typeface = OPCText(typeface_bbc)
        self.base = 0

    def _initText(self):
        raise NotImplementedError

    def _getText(self):
        raise NotImplementedError

    def start(self, matrix):
        pass

    def refresh(self, matrix):
        matrix.clear()

        y = matrix.height / 2 - 4

        end = self.typeface.drawText(matrix, 0 - self.base, y,
                                     self.thisMessage, self.fg, self.bg)

        # drawText returns None if the image ran to the end of the page. If it
        # didn't, then it's time to bring in the new one.
        if end is not None:
            self.typeface.drawText(matrix, end, y, self.nextMessage, self.fg,
                                   self.bg)
            if end == 1:
                # this is the final pixel for the original text. So next time
                # through, next message is the active messge.
                self.thisMessage = self.nextMessage
                self.nextMessage = self._getText()
                self.base = -1

        self.base += 1

    def interval(self):
        return 50
コード例 #4
0
ファイル: scrolltext.py プロジェクト: slobberchops/rop
    def __init__(self, matrix, config):
        self.config = config
        self._initText()
        self.thisMessage = self._getText()
        self.nextMessage = self._getText()

        self.typeface = OPCText(typeface_bbc)
        self.base = 0
コード例 #5
0
ファイル: fortune.py プロジェクト: mbbx6spp/rop
    def __init__(self, matrix):
        stats = os.stat(FILE)
        self.length = stats.st_size

        self.file = open(FILE, "U")
        self.thisMessage = self._getFortune()
        self.nextMessage = self._getFortune()

        self.typeface = OPCText(typeface_bbc)
        self.base = 0
コード例 #6
0
ファイル: fortune.py プロジェクト: mbbx6spp/rop
class Art(object):

    description = "Scroll classic fortunes across the display"

    def _seekFortune(self):
        index = randint(0, self.length)
        self.file.seek(index)
        while self.file.readline()[0] != "%":
            pass

    def _readFortune(self):
        buffer = "+++ "
        while True:
            line = self.file.readline()
            if line == "":
                if buffer == "":
                    # we teleported to the end of the file. Try again.
                    return self._getFortune()
                else:
                    # we have a fortune, but reached EOF. We're good.
                    return buffer

            # Replace line termination with a space
            line = line[:-1]+" "

            if line == "% ":
                return buffer

            buffer += line.replace("\t", "  ")

    def _getFortune(self):
        self._seekFortune()
        return self._readFortune()

    def __init__(self, matrix):
        stats = os.stat(FILE)
        self.length = stats.st_size

        self.file = open(FILE, "U")
        self.thisMessage = self._getFortune()
        self.nextMessage = self._getFortune()

        self.typeface = OPCText(typeface_bbc)
        self.base = 0

    def start(self, matrix):
        matrix.setFirmwareConfig(nointerp=True)

    def refresh(self, matrix):
        matrix.clear()

        y = matrix.height/2 - 4

        end = self.typeface.drawText(matrix, 0-self.base, y,
                                     self.thisMessage, (192, 192, 255), BLUE)

        # drawText returns None if the image ran to the end of the page. If it
        # didn't, then it's time to bring in the new one.
        if end is not None:
            self.typeface.drawText(matrix, end, y, self.nextMessage,
                                   (192, 192, 255), BLUE)
            if end == 1:
                # this is the final pixel for the original text. So next time
                # through, next message is the active messge.
                self.thisMessage = self.nextMessage
                self.nextMessage = self._getFortune()
                self.base = -1

        self.base += 1

    def interval(self):
        return 80