# Path: pyrikura/ipyrikura.py
# class IPyrikuraPlugin(Interface):
# class ITrigger(Interface):
# class IImageProcessor(Interface):
# class IFileOp(Interface):
# class ICamera(Interface):
#     def trigger(self):
#     def process(self):
#     def process(self):
# 
# Path: pyrikura/resources.py

# 
# Path: pyrikura/template.py
# def needed_captures(template):
# 
# Path: pyrikura/config.py
# def reload(path):


import sys
import os
import serial
import traceback
import threading
import pygame
import re
import logging
    import time
from twisted.internet import reactor, defer, task, protocol
from twisted.internet.serialport import SerialPort
from twisted.protocols import basic
from twisted.plugin import getPlugins
from six.moves import configparser
from pyrikura import ipyrikura
from pyrikura import resources
from pyrikura import template
from pyrikura.config import Config
"""
This program is the nuts and bolts of the photo booth.
"""

# make service work without installing pyrikura into python
sys.path.append(
    os.path.realpath(
        os.path.join(__file__, '..')
    )
)


logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger("purikura.booth")

# because i hate typing
jpath = os.path.join

# paths
app_root_path = Config.get('paths', 'root')
app_config_path = jpath(app_root_path, 'config')
app_resources_path = jpath(app_root_path, 'resources')
app_sounds_path = jpath(app_resources_path, 'sounds')
app_images_path = jpath(app_resources_path, 'images')
all_templates_path = jpath(app_resources_path, 'templates')
all_images_path = Config.get('paths', 'images')
shared_path = Config.get('paths', 'shared')
plugins_path = Config.get('paths', 'plugins')

# event paths

# Path: pyrikura/ipyrikura.py
# class IPyrikuraPlugin(Interface):
# class ITrigger(Interface):
# class IImageProcessor(Interface):
# class IFileOp(Interface):
# class ICamera(Interface):
#     def trigger(self):
#     def process(self):
#     def process(self):
# 
# Path: pyrikura/resources.py

# 
# Path: pyrikura/template.py
# def needed_captures(template):
# 
# Path: pyrikura/config.py
# def reload(path):


# Path: pyrikura/apps/service.py
import sys
import os
import serial
import traceback
import threading
import pygame
import re
import logging
    import time
from twisted.internet import reactor, defer, task, protocol
from twisted.internet.serialport import SerialPort
from twisted.protocols import basic
from twisted.plugin import getPlugins
from six.moves import configparser
from pyrikura import ipyrikura
from pyrikura import resources
from pyrikura import template
from pyrikura.config import Config

"""
This program is the nuts and bolts of the photo booth.
"""

# make service work without installing pyrikura into python
sys.path.append(
    os.path.realpath(
        os.path.join(__file__, '..')
    )
)


logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger("purikura.booth")

# because i hate typing
jpath = os.path.join

# paths
app_root_path = Config.get('paths', 'root')
app_config_path = jpath(app_root_path, 'config')
app_resources_path = jpath(app_root_path, 'resources')
app_sounds_path = jpath(app_resources_path, 'sounds')
app_images_path = jpath(app_resources_path, 'images')
all_templates_path = jpath(app_resources_path, 'templates')
all_images_path = Config.get('paths', 'images')
shared_path = Config.get('paths', 'shared')
plugins_path = Config.get('paths', 'plugins')

# event paths

event_name = Config.get('event', 'name')