Compare commits
13 Commits
Author | SHA1 | Date |
---|---|---|
markjfine | eaeed80311 | |
markjfine | dab697f082 | |
Mark J. Fine | 49cf532fdc | |
Mark J. Fine | 76b7348943 | |
Mark J. Fine | a27f2969d4 | |
Mark J. Fine | 47d2c85abd | |
markjfine | aa7eca98ee | |
Andy Lianghua Xu | a3a6ac2a41 | |
Andy Lianghua Xu | 5f2e736d4b | |
Mark J. Fine | fd5ba2796b | |
Mark J. Fine | 31b4d262ed | |
Mark J. Fine | 3f77d35962 | |
Mark J. Fine | 69057f967a |
|
@ -21,7 +21,7 @@ The following programs are required to run NRSC5-DUI
|
|||
It is also assumed you have a fully operational Gtk3 environment installed from [Homebrew](https://brew.sh/), if running on macOS.
|
||||
|
||||
# Setup
|
||||
1. Install the latest version of Python 3.9, PyGObject, Pillow, and other python dependencies.
|
||||
1. Install the latest version of Python 3.9, PyGObject, Pillow, and other python dependencies. Once Python is installed, you may install the dependencies by giving the command `pip install -r <path_to requirements.txt>`
|
||||
2. Compile and install nrsc5. If using an SDRPlay, you must compile and install the version provided by [fventuri](https://github.com/fventuri/nrsc5).
|
||||
3. Install nrsc5-dui files in a directory where you have write permissions.
|
||||
|
||||
|
|
91
nrsc5-dui.py
91
nrsc5-dui.py
|
@ -170,7 +170,7 @@ class NRSC5_DUI(object):
|
|||
263 : "Service Maintenance",
|
||||
264 : "HD Radio System Services",
|
||||
265 : "Audio-Related Objects",
|
||||
511 : "Test_Str_E"
|
||||
511 : "Reserved for Special Tests"
|
||||
}
|
||||
|
||||
self.ProgramType = {
|
||||
|
@ -208,6 +208,25 @@ class NRSC5_DUI(object):
|
|||
76 : "Special Reading Services"
|
||||
}
|
||||
|
||||
self.MIMETypes = {
|
||||
0x1E653E9C : "JPEG",
|
||||
0x2D42AC3E : "NavTeq",
|
||||
0x4F328CA0 : "PNG",
|
||||
0x4DC66C5A : "HDC",
|
||||
0x4EB03469 : "TTN TPEG 2",
|
||||
0x52103469 : "TTN TPEG 3",
|
||||
0x82F03DFC : "HERE TPEG",
|
||||
0xB39EBEB2 : "TTN TPEG 1",
|
||||
0xB7F03DFC : "HERE Image",
|
||||
0xB81FFAA8 : "Unknown Test",
|
||||
0xBB492AAC : "Text",
|
||||
0xBE4B7536 : "Primary Image",
|
||||
0xD9C72536 : "Station Logo",
|
||||
0xEECB55B6 : "HD TMC",
|
||||
0xEF042E96 : "TTN STM Weather",
|
||||
0xFF8422D7 : "TTN STM Traffic"
|
||||
}
|
||||
|
||||
self.pointer_cursor = Gdk.Cursor(Gdk.CursorType.LEFT_PTR)
|
||||
self.hand_cursor = Gdk.Cursor(Gdk.CursorType.HAND2)
|
||||
|
||||
|
@ -264,7 +283,7 @@ class NRSC5_DUI(object):
|
|||
re.compile("^[0-9\:]{8,8} Title: (.*)$"), # 4 match title
|
||||
re.compile("^[0-9\:]{8,8} Artist: (.*)$"), # 5 match artist
|
||||
re.compile("^[0-9\:]{8,8} Album: (.*)$"), # 6 match album
|
||||
re.compile("^[0-9\:]{8,8} LOT file: port=([\d]+) lot=([\d]+) name=(.*\.(?:jpg|jpeg|png|txt)) size=([\d]+) mime=([\w]+)$"), # 7 match file (album art, maps, weather info)
|
||||
re.compile("^[0-9\:]{8,8} LOT file: port=([\d]+) lot=([\d]+) name=(.*\.(?:jpg|jpeg|png|txt)) size=([\d]+) mime=([\w]+) .*$"), # 7 match file (album art, maps, weather info)
|
||||
re.compile("^[0-9\:]{8,8} MER: (-?[\d]+\.[\d]+) dB \(lower\), (-?[\d]+\.[\d]+) dB \(upper\)$"), # 8 match MER
|
||||
re.compile("^[0-9\:]{8,8} BER: (0\.[\d]+), avg: (0\.[\d]+), min: (0\.[\d]+), max: (0\.[\d]+)$"), # 9 match BER
|
||||
re.compile("^[0-9\:]{8,8} Best gain: (.*) dB,.*$"), # 10 match gain
|
||||
|
@ -279,7 +298,9 @@ class NRSC5_DUI(object):
|
|||
re.compile("^[0-9\:]{8,8} Synchronized$"), # 19 synchronized
|
||||
re.compile("^[0-9\:]{8,8} Lost synchronization$"), # 20 lost synch
|
||||
re.compile("^[0-9\:]{8,8} Lost device$"), # 21 lost device
|
||||
re.compile("^[0-9\:]{8,8} Open device failed.$") # 22 No device
|
||||
re.compile("^[0-9\:]{8,8} Open device failed.$"), # 22 No device
|
||||
re.compile("^[0-9\:]{8,8} Stream data: port=([\d]+).* mime=([\w]+) size=([\d]+)$"), # 23 Navteq/HERE stream info
|
||||
re.compile("^[0-9\:]{8,8} Packet data: port=([\d]+).* mime=([\w]+) size=([\d]+)$") # 24 Navteq/HERE packet info
|
||||
]
|
||||
|
||||
self.loadSettings()
|
||||
|
@ -310,6 +331,30 @@ class NRSC5_DUI(object):
|
|||
self.lblExtend.set_sensitive(dlCoversSet)
|
||||
self.cbExtend.set_sensitive(dlCoversSet)
|
||||
|
||||
def restart_program(self):
|
||||
python = sys.executable
|
||||
os.execl(python, python, *sys.argv)
|
||||
|
||||
def confirm_dialog(self, title, message):
|
||||
dialog = Gtk.MessageDialog(parent=self.mainWindow, flags=0, message_type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.YES_NO, text=title)
|
||||
dialog.format_secondary_text(message)
|
||||
dialog.set_default_response(Gtk.ResponseType.YES)
|
||||
response = dialog.run()
|
||||
dialog.destroy()
|
||||
return (response == Gtk.ResponseType.YES)
|
||||
|
||||
def on_cbxAspect_changed(self, btn):
|
||||
screenAspect = self.cbxAspect.get_active_text()
|
||||
if (screenAspect == "narrow") or (screenAspect == "wide"):
|
||||
mainFile = os.path.join(resDir, "mainForm.glade")
|
||||
gladeFile = os.path.join(resDir, "mainForm-"+screenAspect+".glade")
|
||||
if (os.path.isfile(gladeFile)):
|
||||
shutil.copy(gladeFile,mainFile)
|
||||
title = "Aspect Changed"
|
||||
message = "You have change the display layout to "+screenAspect+". This change will not happen until the application is restarted. Would you like to restart it now?"
|
||||
if (self.confirm_dialog(title,message)):
|
||||
self.restart_program()
|
||||
|
||||
def on_cbxSDRRadio_changed(self, btn):
|
||||
useSDRPlay = (self.cbxSDRRadio.get_active_text() == "SDRPlay")
|
||||
self.lblSdrPlaySer.set_visible(useSDRPlay)
|
||||
|
@ -475,6 +520,13 @@ class NRSC5_DUI(object):
|
|||
result = musicbrainzngs.search_recordings(strict=setStrict, artist=searchArtist, recording=newTitle, type=setType, status=setStatus)
|
||||
except:
|
||||
print("MusicBrainz recording search error")
|
||||
print("iteration =",i,".")
|
||||
print("imgSaved =",imgSaved,".")
|
||||
print("strict =",setStrict,".")
|
||||
print("artist =",searchArtist,".")
|
||||
print("recording =",newTitle,".")
|
||||
print("type =",setType,".")
|
||||
print("status =",setStatus,".")
|
||||
|
||||
if (result is not None) and ('recording-list' in result) and (len(result['recording-list']) != 0):
|
||||
# loop through the list until you get a match
|
||||
|
@ -654,6 +706,7 @@ class NRSC5_DUI(object):
|
|||
|
||||
# disable the controls
|
||||
self.spinFreq.set_sensitive(False)
|
||||
self.cbxAspect.set_sensitive(False)
|
||||
self.cbxSDRRadio.set_sensitive(False)
|
||||
self.spinGain.set_sensitive(False)
|
||||
self.spinPPM.set_sensitive(False)
|
||||
|
@ -718,6 +771,7 @@ class NRSC5_DUI(object):
|
|||
if (not self.cbAutoGain.get_active()):
|
||||
self.spinGain.set_sensitive(True)
|
||||
self.spinFreq.set_sensitive(True)
|
||||
self.cbxAspect.set_sensitive(True)
|
||||
self.cbxSDRRadio.set_sensitive(True)
|
||||
self.spinPPM.set_sensitive(True)
|
||||
self.spinRTL.set_sensitive(True)
|
||||
|
@ -795,7 +849,7 @@ class NRSC5_DUI(object):
|
|||
authors = [
|
||||
"Cody Nybo <cmnybo@gmail.com>",
|
||||
"Clayton Smith <argilo@gmail.com>",
|
||||
"nefie <zefie@zefie.net>",
|
||||
"zefie <zefie@zefie.net>",
|
||||
"Mark J. Fine <mark.fine@fineware-swl.com>"
|
||||
]
|
||||
|
||||
|
@ -1076,8 +1130,14 @@ class NRSC5_DUI(object):
|
|||
self.lblSlogan.set_tooltip_text(self.streamInfo["Slogan"])
|
||||
self.lblMessage.set_label(self.streamInfo["Message"])
|
||||
self.lblMessage.set_tooltip_text(self.streamInfo["Message"])
|
||||
if (self.txtMessage2):
|
||||
self.txtMessage2.set_label(self.streamInfo["Message"])
|
||||
self.txtMessage2.set_tooltip_text(self.streamInfo["Message"])
|
||||
self.lblAlert.set_label(self.streamInfo["Alert"])
|
||||
self.lblAlert.set_tooltip_text(self.streamInfo["Alert"])
|
||||
if (self.txtAlert2):
|
||||
self.txtAlert2.set_label(self.streamInfo["Alert"])
|
||||
self.txtAlert2.set_tooltip_text(self.streamInfo["Alert"])
|
||||
self.set_button_name(self.btnAudioPrgs0,self.btnAudioLbl0,0)
|
||||
self.set_button_name(self.btnAudioPrgs1,self.btnAudioLbl1,1)
|
||||
self.set_button_name(self.btnAudioPrgs2,self.btnAudioLbl2,2)
|
||||
|
@ -1457,6 +1517,16 @@ class NRSC5_DUI(object):
|
|||
self.lastLOT = lot
|
||||
self.xhdrChanged = True
|
||||
self.debugLog("XHDR Changed: {:s} (lot {:s})".format(xhdr,lot))
|
||||
elif (self.regex[23].match(line)):
|
||||
# match HERE Images
|
||||
m = self.regex[23].match(line)
|
||||
if (m):
|
||||
p = int(m.group(1),16)
|
||||
mime = m.group(2)
|
||||
fileSize = int(m.group(3))
|
||||
fileName = "HERE_Image.jpg"
|
||||
# if (mime == "B7F03DFC"):
|
||||
# print (line)
|
||||
elif (self.regex[7].match(line)):
|
||||
# match album art
|
||||
m = self.regex[7].match(line)
|
||||
|
@ -1565,7 +1635,7 @@ class NRSC5_DUI(object):
|
|||
# match Open device failed
|
||||
self.on_btnStop_clicked(None)
|
||||
self.set_synchronization(-1)
|
||||
|
||||
|
||||
def getControls(self):
|
||||
global resDir
|
||||
# setup gui
|
||||
|
@ -1589,6 +1659,7 @@ class NRSC5_DUI(object):
|
|||
self.alignmentMap = builder.get_object("alignment_map")
|
||||
self.imgMap = builder.get_object("imgMap")
|
||||
self.spinFreq = builder.get_object("spinFreq")
|
||||
self.cbxAspect = builder.get_object("cbxAspect")
|
||||
self.cbxSDRRadio = builder.get_object("cbxSDRRadio")
|
||||
self.spinGain = builder.get_object("spinGain")
|
||||
self.cbAutoGain = builder.get_object("cbAutoGain")
|
||||
|
@ -1626,6 +1697,8 @@ class NRSC5_DUI(object):
|
|||
self.lblSlogan = builder.get_object("lblSlogan")
|
||||
self.lblMessage = builder.get_object("lblMessage")
|
||||
self.lblAlert = builder.get_object("lblAlert")
|
||||
self.txtMessage2 = builder.get_object("txtMessage2")
|
||||
self.txtAlert2 = builder.get_object("txtAlert2")
|
||||
self.btnAudioPrgs0 = builder.get_object("btn_audio_prgs0")
|
||||
self.btnAudioPrgs1 = builder.get_object("btn_audio_prgs1")
|
||||
self.btnAudioPrgs2 = builder.get_object("btn_audio_prgs2")
|
||||
|
@ -1752,6 +1825,14 @@ class NRSC5_DUI(object):
|
|||
self.lblSlogan.set_tooltip_text("")
|
||||
self.lblMessage.set_label("")
|
||||
self.lblMessage.set_tooltip_text("")
|
||||
if (self.txtMessage2):
|
||||
self.txtMessage2.set_label("")
|
||||
self.txtMessage2.set_tooltip_text("")
|
||||
self.lblAlert.set_label("")
|
||||
self.lblAlert.set_tooltip_text("")
|
||||
if (self.txtAlert2):
|
||||
self.txtAlert2.set_label("")
|
||||
self.txtAlert2.set_tooltip_text("")
|
||||
self.btnAudioPrgs0.set_sensitive(False)
|
||||
self.btnAudioPrgs1.set_sensitive(False)
|
||||
self.btnAudioPrgs2.set_sensitive(False)
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
pygobject==3.44.1
|
||||
musicbrainzngs==0.7.1
|
||||
numpy==1.25.1
|
||||
Pillow==10.0.0
|
||||
pyOpenSSL==23.0.0
|
||||
python-dateutil==2.8.2
|
||||
urllib3==1.26.14
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1341,7 +1341,7 @@
|
|||
<object class="GtkTable" id="tableSettings">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="n_rows">11</property>
|
||||
<property name="n_rows">12</property>
|
||||
<property name="n_columns">3</property>
|
||||
<property name="column_spacing">10</property>
|
||||
<property name="row_spacing">3</property>
|
||||
|
@ -1354,6 +1354,57 @@
|
|||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="lblAspect">
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xpad">10</property>
|
||||
<property name="label" translatable="yes">Aspect ratio:</property>
|
||||
<property name="justify">right</property>
|
||||
<property name="single_line_mode">True</property>
|
||||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="cbxAspect">
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="tooltip_text" translatable="yes">Choose display style</property>
|
||||
<property name="has_entry">False</property>
|
||||
<property name="active">0</property>
|
||||
<signal name="changed" handler="on_cbxAspect_changed" swapped="no"/>
|
||||
<items>
|
||||
<item translatable="yes" id="aspectnull">no change</item>
|
||||
<item translatable="yes" id="aspectnarrow">narrow</item>
|
||||
<item translatable="yes" id="aspectwidw">wide</item>
|
||||
</items>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label14e">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="single_line_mode">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="lblSDRRadio">
|
||||
<property name="visible">True</property>
|
||||
|
@ -1368,25 +1419,29 @@
|
|||
<packing>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="cbxSDRRadio">
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="tooltip_text" translatable="yes">Choose SDR device</property>
|
||||
<property name="has_entry">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="tooltip_text" translatable="yes">Choose SDR device</property>
|
||||
<property name="has_entry">False</property>
|
||||
<property name="active">0</property>
|
||||
<signal name="changed" handler="on_cbxSDRRadio_changed" swapped="no"/>
|
||||
<items>
|
||||
<item translatable="yes" id="rcvrRTL-SDR">RTL-SDR</item>
|
||||
<item translatable="yes" id="rcvrRTL-SDR">RTL-SDR</item>
|
||||
<item translatable="yes" id="rcvrSDRPlay">SDRPlay</item>
|
||||
</items>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1400,6 +1455,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1415,8 +1472,8 @@
|
|||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1438,8 +1495,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1459,8 +1516,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1476,8 +1533,8 @@
|
|||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1498,8 +1555,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1516,8 +1573,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1534,8 +1591,8 @@
|
|||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1557,8 +1614,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1572,8 +1629,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1590,8 +1647,8 @@
|
|||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1608,8 +1665,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1628,8 +1685,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1646,8 +1703,8 @@
|
|||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
<property name="top_attach">6</property>
|
||||
<property name="bottom_attach">7</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1664,8 +1721,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
<property name="top_attach">6</property>
|
||||
<property name="bottom_attach">7</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1679,8 +1736,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
<property name="top_attach">6</property>
|
||||
<property name="bottom_attach">7</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1697,8 +1754,8 @@
|
|||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">6</property>
|
||||
<property name="bottom_attach">7</property>
|
||||
<property name="top_attach">7</property>
|
||||
<property name="bottom_attach">8</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1707,13 +1764,13 @@
|
|||
<object class="GtkComboBoxText" id="cbxSDRPlayAnt">
|
||||
<property name="visible">False</property>
|
||||
<property name="sensitive">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="tooltip_text" translatable="yes">Choose SDRPlay antenna</property>
|
||||
<property name="has_entry">False</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="tooltip_text" translatable="yes">Choose SDRPlay antenna</property>
|
||||
<property name="has_entry">False</property>
|
||||
<property name="active">0</property>
|
||||
<items>
|
||||
<item translatable="yes" id="antAuto">Auto</item>
|
||||
<item translatable="yes" id="antA">A</item>
|
||||
<item translatable="yes" id="antAuto">Auto</item>
|
||||
<item translatable="yes" id="antA">A</item>
|
||||
<item translatable="yes" id="antB">B</item>
|
||||
<item translatable="yes" id="antC">C</item>
|
||||
</items>
|
||||
|
@ -1721,8 +1778,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">6</property>
|
||||
<property name="bottom_attach">7</property>
|
||||
<property name="top_attach">7</property>
|
||||
<property name="bottom_attach">8</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1736,8 +1793,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">6</property>
|
||||
<property name="bottom_attach">7</property>
|
||||
<property name="top_attach">7</property>
|
||||
<property name="bottom_attach">8</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1753,8 +1810,8 @@
|
|||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">7</property>
|
||||
<property name="bottom_attach">8</property>
|
||||
<property name="top_attach">8</property>
|
||||
<property name="bottom_attach">9</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1772,8 +1829,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">7</property>
|
||||
<property name="bottom_attach">8</property>
|
||||
<property name="top_attach">8</property>
|
||||
<property name="bottom_attach">9</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
@ -1786,8 +1843,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">7</property>
|
||||
<property name="bottom_attach">8</property>
|
||||
<property name="top_attach">8</property>
|
||||
<property name="bottom_attach">9</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1803,8 +1860,8 @@
|
|||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">8</property>
|
||||
<property name="bottom_attach">9</property>
|
||||
<property name="top_attach">9</property>
|
||||
<property name="bottom_attach">10</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1823,8 +1880,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">8</property>
|
||||
<property name="bottom_attach">9</property>
|
||||
<property name="top_attach">9</property>
|
||||
<property name="bottom_attach">10</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
@ -1837,8 +1894,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">8</property>
|
||||
<property name="bottom_attach">9</property>
|
||||
<property name="top_attach">9</property>
|
||||
<property name="bottom_attach">10</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1855,8 +1912,8 @@
|
|||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">9</property>
|
||||
<property name="bottom_attach">10</property>
|
||||
<property name="top_attach">10</property>
|
||||
<property name="bottom_attach">11</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1875,8 +1932,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">9</property>
|
||||
<property name="bottom_attach">10</property>
|
||||
<property name="top_attach">10</property>
|
||||
<property name="bottom_attach">11</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
@ -1889,8 +1946,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">9</property>
|
||||
<property name="bottom_attach">10</property>
|
||||
<property name="top_attach">10</property>
|
||||
<property name="bottom_attach">11</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1907,8 +1964,8 @@
|
|||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">10</property>
|
||||
<property name="bottom_attach">11</property>
|
||||
<property name="top_attach">11</property>
|
||||
<property name="bottom_attach">12</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
@ -1927,8 +1984,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">10</property>
|
||||
<property name="bottom_attach">11</property>
|
||||
<property name="top_attach">11</property>
|
||||
<property name="bottom_attach">12</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
@ -1941,8 +1998,8 @@
|
|||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">10</property>
|
||||
<property name="bottom_attach">11</property>
|
||||
<property name="top_attach">11</property>
|
||||
<property name="bottom_attach">12</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
|
|
Loading…
Reference in New Issue