- Add some temporary streaming code using FFmpeg. FFmpeg itself is not very ideal for streaming; lack of direct control of the sockets and no framedrop handling means that FFmpeg is definitely not something you want to use without wrapper code. I'd prefer writing my own network framework in this particular case just because you give away so much control of the network interface. Wasted an entire day trying to go through FFmpeg issues. There's just no way FFmpeg should be used for real streaming (at least without being patched or submitting some sort of patch, but I'm sort of feeling "meh" on that idea) I had to end up writing multiple threads just to handle both connecting and writing, because av_interleaved_write_frame blocks every call, stalling the main encoder thread, and thus also stalling draw signals. - Add some temporary user interface for streaming settings. This is just temporary for the time being. It's in the outputs section of the basic-mode settings - Make it so that dynamic arrays do not free all their data when the size just happens to be reduced to 0. This prevents constant reallocation when an array keeps going from 1 item to 0 items. Also, it was bad to become dependent upon that functionality. You must now always explicitly call "free" on it to ensure the data is free, and that's how it should be. Implicit functionality can lead to confusion and maintainability issues.
734 lines
23 KiB
XML
734 lines
23 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<ui version="4.0">
|
|
<class>OBSBasicSettings</class>
|
|
<widget class="QDialog" name="OBSBasicSettings">
|
|
<property name="geometry">
|
|
<rect>
|
|
<x>0</x>
|
|
<y>0</y>
|
|
<width>752</width>
|
|
<height>602</height>
|
|
</rect>
|
|
</property>
|
|
<property name="windowTitle">
|
|
<string>Settings</string>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout">
|
|
<item>
|
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
<item alignment="Qt::AlignLeft">
|
|
<widget class="QListWidget" name="listWidget">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="maximumSize">
|
|
<size>
|
|
<width>135</width>
|
|
<height>16777215</height>
|
|
</size>
|
|
</property>
|
|
<property name="iconSize">
|
|
<size>
|
|
<width>48</width>
|
|
<height>48</height>
|
|
</size>
|
|
</property>
|
|
<item>
|
|
<property name="text">
|
|
<string>General</string>
|
|
</property>
|
|
<property name="icon">
|
|
<iconset resource="obs.qrc">
|
|
<normaloff>:/settings/images/settings/system-settings-3.png</normaloff>:/settings/images/settings/system-settings-3.png</iconset>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>Outputs</string>
|
|
</property>
|
|
<property name="icon">
|
|
<iconset resource="obs.qrc">
|
|
<normaloff>:/settings/images/settings/network-bluetooth.png</normaloff>:/settings/images/settings/network-bluetooth.png</iconset>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>Audio</string>
|
|
</property>
|
|
<property name="icon">
|
|
<iconset resource="obs.qrc">
|
|
<normaloff>:/settings/images/settings/decibel_audio_player.png</normaloff>:/settings/images/settings/decibel_audio_player.png</iconset>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>Video</string>
|
|
</property>
|
|
<property name="icon">
|
|
<iconset resource="obs.qrc">
|
|
<normaloff>:/settings/images/settings/video-display-3.png</normaloff>:/settings/images/settings/video-display-3.png</iconset>
|
|
</property>
|
|
</item>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QStackedWidget" name="settingsPages">
|
|
<property name="currentIndex">
|
|
<number>1</number>
|
|
</property>
|
|
<widget class="QWidget" name="generalPage">
|
|
<layout class="QFormLayout" name="formLayout_2">
|
|
<property name="labelAlignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<item row="0" column="0">
|
|
<spacer name="verticalSpacer">
|
|
<property name="orientation">
|
|
<enum>Qt::Vertical</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>20</width>
|
|
<height>40</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
<item row="1" column="1">
|
|
<widget class="QComboBox" name="language"/>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QLabel" name="label">
|
|
<property name="minimumSize">
|
|
<size>
|
|
<width>150</width>
|
|
<height>0</height>
|
|
</size>
|
|
</property>
|
|
<property name="text">
|
|
<string>Language:</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<widget class="QWidget" name="outputsPage">
|
|
<layout class="QFormLayout" name="formLayout_5">
|
|
<property name="fieldGrowthPolicy">
|
|
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
|
|
</property>
|
|
<property name="labelAlignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<item row="0" column="1">
|
|
<widget class="QLabel" name="label_16">
|
|
<property name="text">
|
|
<string>NOTE: This is a test, just some temporary user interface</string>
|
|
</property>
|
|
<property name="wordWrap">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="0">
|
|
<widget class="QLabel" name="label_17">
|
|
<property name="minimumSize">
|
|
<size>
|
|
<width>170</width>
|
|
<height>0</height>
|
|
</size>
|
|
</property>
|
|
<property name="text">
|
|
<string>Video Bitrate:</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="3" column="0">
|
|
<widget class="QLabel" name="label_18">
|
|
<property name="text">
|
|
<string>URL:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="3" column="1">
|
|
<widget class="QLineEdit" name="streamURL"/>
|
|
</item>
|
|
<item row="4" column="0">
|
|
<widget class="QLabel" name="label_19">
|
|
<property name="text">
|
|
<string>Stream Key:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="4" column="1">
|
|
<widget class="QLineEdit" name="streamKey">
|
|
<property name="echoMode">
|
|
<enum>QLineEdit::Password</enum>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="1">
|
|
<widget class="QSpinBox" name="streamVBitrate">
|
|
<property name="minimum">
|
|
<number>100</number>
|
|
</property>
|
|
<property name="maximum">
|
|
<number>60000</number>
|
|
</property>
|
|
<property name="value">
|
|
<number>2500</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="1">
|
|
<widget class="QSpinBox" name="streamABitrate">
|
|
<property name="minimum">
|
|
<number>24</number>
|
|
</property>
|
|
<property name="maximum">
|
|
<number>320</number>
|
|
</property>
|
|
<property name="value">
|
|
<number>128</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QLabel" name="label_20">
|
|
<property name="text">
|
|
<string>Audio Bitrate:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<widget class="QWidget" name="audioPage">
|
|
<layout class="QFormLayout" name="formLayout">
|
|
<property name="labelAlignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<item row="0" column="0">
|
|
<widget class="QLabel" name="label_14">
|
|
<property name="text">
|
|
<string>Sample Rate:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="1">
|
|
<widget class="QComboBox" name="sampleRate">
|
|
<property name="currentText">
|
|
<string notr="true">44.1khz</string>
|
|
</property>
|
|
<property name="currentIndex">
|
|
<number>1</number>
|
|
</property>
|
|
<item>
|
|
<property name="text">
|
|
<string>22.05khz</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>44.1khz</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>48khz</string>
|
|
</property>
|
|
</item>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QLabel" name="label_15">
|
|
<property name="text">
|
|
<string>Channels:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="1">
|
|
<widget class="QComboBox" name="channelSetup">
|
|
<property name="currentText">
|
|
<string>Stereo</string>
|
|
</property>
|
|
<property name="currentIndex">
|
|
<number>1</number>
|
|
</property>
|
|
<item>
|
|
<property name="text">
|
|
<string>Mono</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>Stereo</string>
|
|
</property>
|
|
</item>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="0">
|
|
<widget class="QLabel" name="label_2">
|
|
<property name="minimumSize">
|
|
<size>
|
|
<width>170</width>
|
|
<height>0</height>
|
|
</size>
|
|
</property>
|
|
<property name="text">
|
|
<string>Desktop Audio Device 1:</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="1">
|
|
<widget class="QComboBox" name="desktopAudioDevice1">
|
|
<property name="enabled">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="3" column="0">
|
|
<widget class="QLabel" name="label_3">
|
|
<property name="text">
|
|
<string>Desktop Audio Device 2:</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="3" column="1">
|
|
<widget class="QComboBox" name="desktopAudioDevice2">
|
|
<property name="enabled">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="4" column="0">
|
|
<widget class="QLabel" name="label_4">
|
|
<property name="text">
|
|
<string>Mic/Aux Audio Device 1:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="4" column="1">
|
|
<widget class="QComboBox" name="auxAudioDevice1">
|
|
<property name="enabled">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="5" column="0">
|
|
<widget class="QLabel" name="label_5">
|
|
<property name="text">
|
|
<string>Mic/Aux Audio Device 2:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="5" column="1">
|
|
<widget class="QComboBox" name="auxAudioDevice2">
|
|
<property name="enabled">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="6" column="0">
|
|
<widget class="QLabel" name="label_6">
|
|
<property name="text">
|
|
<string>Mic/Aux Audio Device 3:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="6" column="1">
|
|
<widget class="QComboBox" name="auxAudioDevice3">
|
|
<property name="enabled">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="7" column="1">
|
|
<widget class="QLabel" name="audioMsg">
|
|
<property name="styleSheet">
|
|
<string notr="true">color: rgb(255, 0, 4);</string>
|
|
</property>
|
|
<property name="text">
|
|
<string notr="true"/>
|
|
</property>
|
|
<property name="wordWrap">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<widget class="QWidget" name="videoPage">
|
|
<layout class="QFormLayout" name="formLayout_3">
|
|
<property name="labelAlignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<item row="0" column="0">
|
|
<widget class="QLabel" name="label_9">
|
|
<property name="text">
|
|
<string>Renderer:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="1">
|
|
<widget class="QComboBox" name="renderer">
|
|
<property name="currentText">
|
|
<string notr="true"/>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QLabel" name="label_7">
|
|
<property name="minimumSize">
|
|
<size>
|
|
<width>170</width>
|
|
<height>0</height>
|
|
</size>
|
|
</property>
|
|
<property name="text">
|
|
<string>Video Adapter:</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="1">
|
|
<widget class="QComboBox" name="adapter">
|
|
<property name="enabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="currentText">
|
|
<string notr="true"/>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="0">
|
|
<widget class="QLabel" name="label_8">
|
|
<property name="text">
|
|
<string>Base Resolution:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="1">
|
|
<widget class="QComboBox" name="baseResolution">
|
|
<property name="editable">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="currentText">
|
|
<string notr="true"/>
|
|
</property>
|
|
<property name="duplicatesEnabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="frame">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="3" column="0">
|
|
<widget class="QLabel" name="label_10">
|
|
<property name="text">
|
|
<string>Output Resolution:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="3" column="1">
|
|
<widget class="QComboBox" name="outputResolution">
|
|
<property name="editable">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="currentText">
|
|
<string notr="true"/>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="4" column="1">
|
|
<widget class="QComboBox" name="downscaleFilter">
|
|
<property name="enabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="4" column="0">
|
|
<widget class="QLabel" name="label_11">
|
|
<property name="text">
|
|
<string>Downscale Filter:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="5" column="0">
|
|
<widget class="QComboBox" name="fpsType">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="currentText">
|
|
<string>FPS (Common)</string>
|
|
</property>
|
|
<property name="sizeAdjustPolicy">
|
|
<enum>QComboBox::AdjustToContents</enum>
|
|
</property>
|
|
<item>
|
|
<property name="text">
|
|
<string>FPS (Common)</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>FPS (Integer)</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>FPS (Fractional)</string>
|
|
</property>
|
|
</item>
|
|
</widget>
|
|
</item>
|
|
<item row="5" column="1">
|
|
<widget class="QStackedWidget" name="fpsTypes">
|
|
<property name="currentIndex">
|
|
<number>0</number>
|
|
</property>
|
|
<widget class="QWidget" name="page">
|
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
|
<property name="leftMargin">
|
|
<number>0</number>
|
|
</property>
|
|
<property name="topMargin">
|
|
<number>0</number>
|
|
</property>
|
|
<property name="rightMargin">
|
|
<number>0</number>
|
|
</property>
|
|
<property name="bottomMargin">
|
|
<number>0</number>
|
|
</property>
|
|
<item alignment="Qt::AlignTop">
|
|
<widget class="QComboBox" name="fpsCommon">
|
|
<property name="currentText">
|
|
<string notr="true">30</string>
|
|
</property>
|
|
<property name="currentIndex">
|
|
<number>3</number>
|
|
</property>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">10</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">20</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">29.97</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">30</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">48</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">59.94</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">60</string>
|
|
</property>
|
|
</item>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<widget class="QWidget" name="page_3">
|
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
|
<property name="leftMargin">
|
|
<number>0</number>
|
|
</property>
|
|
<property name="topMargin">
|
|
<number>0</number>
|
|
</property>
|
|
<property name="rightMargin">
|
|
<number>0</number>
|
|
</property>
|
|
<property name="bottomMargin">
|
|
<number>0</number>
|
|
</property>
|
|
<item alignment="Qt::AlignTop">
|
|
<widget class="QSpinBox" name="fpsInteger">
|
|
<property name="minimum">
|
|
<number>1</number>
|
|
</property>
|
|
<property name="maximum">
|
|
<number>120</number>
|
|
</property>
|
|
<property name="value">
|
|
<number>30</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<widget class="QWidget" name="page_2">
|
|
<layout class="QFormLayout" name="formLayout_4">
|
|
<property name="labelAlignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<property name="leftMargin">
|
|
<number>0</number>
|
|
</property>
|
|
<property name="topMargin">
|
|
<number>0</number>
|
|
</property>
|
|
<property name="rightMargin">
|
|
<number>0</number>
|
|
</property>
|
|
<property name="bottomMargin">
|
|
<number>0</number>
|
|
</property>
|
|
<item row="0" column="1">
|
|
<widget class="QSpinBox" name="fpsNumerator">
|
|
<property name="minimum">
|
|
<number>1</number>
|
|
</property>
|
|
<property name="maximum">
|
|
<number>1000000</number>
|
|
</property>
|
|
<property name="value">
|
|
<number>30</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="1">
|
|
<widget class="QSpinBox" name="fpsDenominator">
|
|
<property name="minimum">
|
|
<number>1</number>
|
|
</property>
|
|
<property name="maximum">
|
|
<number>1000000</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="0">
|
|
<widget class="QLabel" name="label_12">
|
|
<property name="text">
|
|
<string>Numerator:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QLabel" name="label_13">
|
|
<property name="text">
|
|
<string>Denomniator:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</widget>
|
|
</item>
|
|
<item row="6" column="1">
|
|
<widget class="QLabel" name="videoMsg">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="styleSheet">
|
|
<string notr="true">color: rgb(255, 0, 4);</string>
|
|
</property>
|
|
<property name="text">
|
|
<string notr="true"/>
|
|
</property>
|
|
<property name="wordWrap">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<widget class="QDialogButtonBox" name="buttonBox">
|
|
<property name="standardButtons">
|
|
<set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<tabstops>
|
|
<tabstop>listWidget</tabstop>
|
|
<tabstop>buttonBox</tabstop>
|
|
<tabstop>language</tabstop>
|
|
</tabstops>
|
|
<resources>
|
|
<include location="obs.qrc"/>
|
|
</resources>
|
|
<connections>
|
|
<connection>
|
|
<sender>listWidget</sender>
|
|
<signal>currentRowChanged(int)</signal>
|
|
<receiver>settingsPages</receiver>
|
|
<slot>setCurrentIndex(int)</slot>
|
|
<hints>
|
|
<hint type="sourcelabel">
|
|
<x>75</x>
|
|
<y>35</y>
|
|
</hint>
|
|
<hint type="destinationlabel">
|
|
<x>199</x>
|
|
<y>50</y>
|
|
</hint>
|
|
</hints>
|
|
</connection>
|
|
<connection>
|
|
<sender>fpsType</sender>
|
|
<signal>currentIndexChanged(int)</signal>
|
|
<receiver>fpsTypes</receiver>
|
|
<slot>setCurrentIndex(int)</slot>
|
|
<hints>
|
|
<hint type="sourcelabel">
|
|
<x>286</x>
|
|
<y>155</y>
|
|
</hint>
|
|
<hint type="destinationlabel">
|
|
<x>340</x>
|
|
<y>154</y>
|
|
</hint>
|
|
</hints>
|
|
</connection>
|
|
</connections>
|
|
</ui>
|