import logging
import ConfigParser
+import gobject
import gtk
try:
- import hildon
-except ImportError:
- hildon = None
-
-try:
import osso
except ImportError:
osso = None
import imagestore
import player
+import index
import windows
def __init__(self):
super(MormonChannelProgram, self).__init__()
- self._player = player.Player()
self._store = imagestore.ImageStore("../data", "../data")
+ self._index = index.AudioIndex()
+ self._player = player.Player()
+
+ self._index.start()
if not hildonize.IS_HILDON_SUPPORTED:
_moduleLogger.info("No hildonization support")
self._osso_c = None
self._deviceState = None
- self._sourceSelector = windows.SourceSelector(self._player, self._store)
+ self._sourceSelector = windows.SourceSelector(self._player, self._store, self._index)
self._sourceSelector.window.connect("destroy", self._on_destroy)
self._load_settings()
@misc_utils.log_exception(_moduleLogger)
def _on_destroy(self, widget = None, data = None):
+ self.quit()
+
+ def quit(self):
try:
self._save_settings()
+ self._index.stop()
+
try:
self._deviceState.close()
except AttributeError:
def run():
+ gobject.threads_init()
+ gtk.gdk.threads_init()
+
hildonize.set_application_title(constants.__pretty_app_name__)
app = MormonChannelProgram()
if not PROFILE_STARTUP:
- gtk.main()
+ try:
+ gtk.main()
+ except KeyboardInterrupt:
+ app.quit()
+ raise
if __name__ == "__main__":