Skip to content
Snippets Groups Projects
sourceview.py 1.96 KiB
#!/usr/bin/env python2

import sys
import os

# set to location of libgstkaldionline2.so
os.environ['GST_PLUGIN_PATH'] = './asr/'
os.environ['GTK_THEME'] = 'light'

# import gtk stuff
from threading import Thread
import gi
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst, Gtk, Gdk, GtkSource
GObject.threads_init()
Gdk.threads_init()
Gst.init(None)

# make sure ctrl-c works
import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)

# import local stuff
import asr

class SourceView(Gtk.Window):
    def __init__(self, asr_config_file):
        super(SourceView, self).__init__()

        self.connect("destroy", self.quit)
        self.set_default_size(800,600)
        self.set_border_width(10)
        self.set_title('SourceView')
        vbox = Gtk.VBox()

        self.source_buffer = GtkSource.Buffer()
        lang_manager = GtkSource.LanguageManager()
        self.source_buffer.set_language(lang_manager.get_language('python'))
        self.source_buffer.set_text(open(__file__).read())
        self.source_view = GtkSource.View.new_with_buffer(self.source_buffer)
        self.source_view.set_show_line_numbers(True)
        self.source_view.set_tab_width(4)
        self.scrolled = Gtk.ScrolledWindow()
        self.scrolled.add(self.source_view)
        vbox.pack_start(self.scrolled, True, True, 5)

        self.asr = asr.ASR(asr_config_file, self.hyp_changed)
        vbox.pack_start(self.asr, False, True, 5)

        self.add(vbox)
        self.show_all()

        # load css style
        style_provider = Gtk.CssProvider()
        style_provider.load_from_data(open('data/style.css', 'rb').read())
        Gtk.StyleContext.add_provider_for_screen( Gdk.Screen.get_default(), style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

    def hyp_changed(self, hyp):
        pass

    def quit(self, window):
        Gtk.main_quit()


if __name__ == '__main__':
    asr_config_file = 'asr/fisher-benoit-1.cfg'
    app = SourceView(asr_config_file)
    Gtk.main()