aboutsummaryrefslogtreecommitdiff
path: root/main.py
blob: 140392ca2ba4a026b98c023d9aad063525f26cbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
from PyQt4 import QtGui, uic
import sys
import os
import atexit
import signal

import core
import preview_thread
import video_thread


def LoadDefaultSettings(self):
    self.resolutions = [
        '1920x1080',
        '1280x720',
        '854x480'
    ]

    default = {
        "outputWidth": 1280,
        "outputHeight": 720,
        "outputFrameRate": 30,
        "outputAudioCodec": "AAC",
        "outputAudioBitrate": "192",
        "outputVideoCodec": "H264",
        "outputVideoBitrate": "2500",
        "outputVideoFormat": "yuv420p",
        "outputPreset": "medium",
        "outputFormat": "mp4",
        "outputContainer": "MP4",
        "projectDir": os.path.join(self.dataDir, 'projects'),
    }

    for parm, value in default.items():
        print(parm, self.settings.value(parm))
        if self.settings.value(parm) is None:
            self.settings.setValue(parm, value)

if __name__ == "__main__":
    mode = 'gui'
    if len(sys.argv) > 2:
        mode = 'cmd'

    elif len(sys.argv) == 2:
        if sys.argv[1].startswith('-'):
            mode = 'cmd'
        else:
            # opening a project file with gui
            proj = sys.argv[1]
    else:
        # normal gui launch
        proj = None

    app = QtGui.QApplication(sys.argv)
    app.setApplicationName("audio-visualizer")
    app.setOrganizationName("audio-visualizer")

    if mode == 'cmd':
        from command import *

        main = Command()

    elif mode == 'gui':
        from mainwindow import *

        window = uic.loadUi(os.path.join(
            os.path.dirname(os.path.realpath(__file__)), "mainwindow.ui"))
        # window.adjustSize()
        desc = QtGui.QDesktopWidget()
        dpi = desc.physicalDpiX()

        topMargin = 0 if (dpi == 96) else int(10 * (dpi / 96))
        window.resize(window.width() * (dpi / 96), window.height() * (dpi / 96))
        # window.verticalLayout_2.setContentsMargins(0, topMargin, 0, 0)

        main = MainWindow(window, proj)

    # applicable to both modes
    signal.signal(signal.SIGINT, main.cleanUp)
    atexit.register(main.cleanUp)

    sys.exit(app.exec_())