#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# Carla plugin host
# Copyright (C) 2011-2018 Filipe Coelho <falktx@falktx.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or any later version.
#
# This program 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 General Public License for more details.
#
# For a full copy of the GNU General Public License see the doc/GPL.txt file.

# ----------------------------------------------------------------------------------------------------------------------
# Imports (Custom Stuff)

from carla_backend_qtweb import CarlaHostQtWeb
from carla_host import (
    CarlaApplication,
    HostWindow,
    setUpSignals,
    initHost,
    loadHostSettings,
)

# ----------------------------------------------------------------------------------------------------------------------
# Main

if __name__ == '__main__':
    # ------------------------------------------------------------------------------------------------------------------
    # App initialization

    app = CarlaApplication("Carla2-REST")

    # ------------------------------------------------------------------------------------------------------------------
    # Set-up custom signal handling

    setUpSignals()

    # ------------------------------------------------------------------------------------------------------------------
    # Init host backend

    host = initHost("Carla-REST", None, False, False, False, CarlaHostQtWeb)
    loadHostSettings(host)

    # ------------------------------------------------------------------------------------------------------------------
    # Create GUI

    gui = HostWindow(host, True)

    # ------------------------------------------------------------------------------------------------------------------
    # Show GUI

    gui.show()

    # ------------------------------------------------------------------------------------------------------------------
    # App-Loop

    app.exit_exec()
