not1mm 23.4.21__py3-none-any.whl → 23.4.21.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. not1mm/__main__.py +2 -0
  2. not1mm/data/configuration.ui +246 -168
  3. not1mm/data/phonetics/0.wav +0 -0
  4. not1mm/data/phonetics/1.wav +0 -0
  5. not1mm/data/phonetics/2.wav +0 -0
  6. not1mm/data/phonetics/3.wav +0 -0
  7. not1mm/data/phonetics/4.wav +0 -0
  8. not1mm/data/phonetics/5.wav +0 -0
  9. not1mm/data/phonetics/6.wav +0 -0
  10. not1mm/data/phonetics/7.wav +0 -0
  11. not1mm/data/phonetics/73.wav +0 -0
  12. not1mm/data/phonetics/8.wav +0 -0
  13. not1mm/data/phonetics/9.wav +0 -0
  14. not1mm/data/phonetics/a.wav +0 -0
  15. not1mm/data/phonetics/again.wav +0 -0
  16. not1mm/data/phonetics/b.wav +0 -0
  17. not1mm/data/phonetics/c.wav +0 -0
  18. not1mm/data/phonetics/cq.wav +0 -0
  19. not1mm/data/phonetics/d.wav +0 -0
  20. not1mm/data/phonetics/e.wav +0 -0
  21. not1mm/data/phonetics/f.wav +0 -0
  22. not1mm/data/phonetics/g.wav +0 -0
  23. not1mm/data/phonetics/h.wav +0 -0
  24. not1mm/data/phonetics/i.wav +0 -0
  25. not1mm/data/phonetics/j.wav +0 -0
  26. not1mm/data/phonetics/k.wav +0 -0
  27. not1mm/data/phonetics/k6gte.wav +0 -0
  28. not1mm/data/phonetics/l.wav +0 -0
  29. not1mm/data/phonetics/m.wav +0 -0
  30. not1mm/data/phonetics/mynumber.wav +0 -0
  31. not1mm/data/phonetics/n.wav +0 -0
  32. not1mm/data/phonetics/nil.wav +0 -0
  33. not1mm/data/phonetics/o.wav +0 -0
  34. not1mm/data/phonetics/p.wav +0 -0
  35. not1mm/data/phonetics/q.wav +0 -0
  36. not1mm/data/phonetics/r.wav +0 -0
  37. not1mm/data/phonetics/roger.wav +0 -0
  38. not1mm/data/phonetics/s.wav +0 -0
  39. not1mm/data/phonetics/t.wav +0 -0
  40. not1mm/data/phonetics/thankyou.wav +0 -0
  41. not1mm/data/phonetics/thankyouqrz.wav +0 -0
  42. not1mm/data/phonetics/u.wav +0 -0
  43. not1mm/data/phonetics/v.wav +0 -0
  44. not1mm/data/phonetics/w.wav +0 -0
  45. not1mm/data/phonetics/x.wav +0 -0
  46. not1mm/data/phonetics/y.wav +0 -0
  47. not1mm/data/phonetics/yourcall.wav +0 -0
  48. not1mm/data/phonetics/z.wav +0 -0
  49. not1mm/lib/cat_interface.py +25 -13
  50. not1mm/lib/settings.py +2 -2
  51. not1mm/lib/version.py +1 -1
  52. {not1mm-23.4.21.dist-info → not1mm-23.4.21.2.dist-info}/METADATA +26 -9
  53. {not1mm-23.4.21.dist-info → not1mm-23.4.21.2.dist-info}/RECORD +58 -57
  54. testing/text2.py +6 -6
  55. {not1mm-23.4.21.dist-info → not1mm-23.4.21.2.dist-info}/LICENSE +0 -0
  56. {not1mm-23.4.21.dist-info → not1mm-23.4.21.2.dist-info}/WHEEL +0 -0
  57. {not1mm-23.4.21.dist-info → not1mm-23.4.21.2.dist-info}/entry_points.txt +0 -0
  58. {not1mm-23.4.21.dist-info → not1mm-23.4.21.2.dist-info}/top_level.txt +0 -0
not1mm/__main__.py CHANGED
@@ -362,6 +362,8 @@ class MainWindow(QtWidgets.QMainWindow):
362
362
  def edit_configuration_settings(self):
363
363
  """Configuration Settings was clicked"""
364
364
  self.configuration_dialog = Settings(WORKING_PATH, CONFIG_PATH, self.pref)
365
+ self.configuration_dialog.usehamdb_radioButton.hide()
366
+ # self.configuration_dialog.n1mm_tab.hide()
365
367
  self.configuration_dialog.show()
366
368
  self.configuration_dialog.accepted.connect(self.edit_configuration_return)
367
369
 
@@ -6,8 +6,8 @@
6
6
  <rect>
7
7
  <x>0</x>
8
8
  <y>0</y>
9
- <width>665</width>
10
- <height>449</height>
9
+ <width>610</width>
10
+ <height>437</height>
11
11
  </rect>
12
12
  </property>
13
13
  <property name="font">
@@ -23,36 +23,7 @@
23
23
  color: rgb(211, 215, 207);</string>
24
24
  </property>
25
25
  <layout class="QGridLayout" name="gridLayout">
26
- <item row="1" column="0" alignment="Qt::AlignHCenter">
27
- <widget class="QDialogButtonBox" name="buttonBox">
28
- <property name="sizePolicy">
29
- <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
30
- <horstretch>0</horstretch>
31
- <verstretch>0</verstretch>
32
- </sizepolicy>
33
- </property>
34
- <property name="font">
35
- <font>
36
- <family>JetBrains Mono</family>
37
- <pointsize>12</pointsize>
38
- <bold>false</bold>
39
- </font>
40
- </property>
41
- <property name="layoutDirection">
42
- <enum>Qt::LeftToRight</enum>
43
- </property>
44
- <property name="orientation">
45
- <enum>Qt::Horizontal</enum>
46
- </property>
47
- <property name="standardButtons">
48
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Save</set>
49
- </property>
50
- <property name="centerButtons">
51
- <bool>true</bool>
52
- </property>
53
- </widget>
54
- </item>
55
- <item row="0" column="0">
26
+ <item row="0" column="1">
56
27
  <widget class="QTabWidget" name="tabWidget">
57
28
  <property name="enabled">
58
29
  <bool>true</bool>
@@ -71,7 +42,7 @@ color: rgb(211, 215, 207);</string>
71
42
  <enum>QTabWidget::Rounded</enum>
72
43
  </property>
73
44
  <property name="currentIndex">
74
- <number>2</number>
45
+ <number>0</number>
75
46
  </property>
76
47
  <property name="elideMode">
77
48
  <enum>Qt::ElideNone</enum>
@@ -98,25 +69,27 @@ color: rgb(211, 215, 207);</string>
98
69
  <string>Lookup</string>
99
70
  </attribute>
100
71
  <layout class="QGridLayout" name="gridLayout_2">
101
- <item row="0" column="0">
102
- <widget class="QLabel" name="label">
72
+ <item row="2" column="4">
73
+ <widget class="QRadioButton" name="usehamqth_radioButton">
103
74
  <property name="font">
104
75
  <font>
105
76
  <family>JetBrains Mono</family>
106
77
  <pointsize>12</pointsize>
107
- <bold>false</bold>
108
78
  </font>
109
79
  </property>
110
- <property name="text">
111
- <string>User Name:</string>
80
+ <property name="styleSheet">
81
+ <string notr="true"/>
112
82
  </property>
113
- <property name="alignment">
114
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
83
+ <property name="text">
84
+ <string>Use HamQTH</string>
115
85
  </property>
86
+ <attribute name="buttonGroup">
87
+ <string notr="true">buttonGroup_2</string>
88
+ </attribute>
116
89
  </widget>
117
90
  </item>
118
- <item row="0" column="1" colspan="3">
119
- <widget class="QLineEdit" name="lookup_user_name_field">
91
+ <item row="2" column="1">
92
+ <widget class="QRadioButton" name="useqrz_radioButton">
120
93
  <property name="font">
121
94
  <font>
122
95
  <family>JetBrains Mono</family>
@@ -124,33 +97,38 @@ color: rgb(211, 215, 207);</string>
124
97
  <bold>false</bold>
125
98
  </font>
126
99
  </property>
127
- <property name="text">
128
- <string/>
100
+ <property name="autoFillBackground">
101
+ <bool>false</bool>
129
102
  </property>
130
- <property name="placeholderText">
131
- <string>W1AW</string>
103
+ <property name="styleSheet">
104
+ <string notr="true"/>
105
+ </property>
106
+ <property name="text">
107
+ <string>Use QRZ</string>
132
108
  </property>
109
+ <attribute name="buttonGroup">
110
+ <string notr="true">buttonGroup_2</string>
111
+ </attribute>
133
112
  </widget>
134
113
  </item>
135
- <item row="1" column="0">
136
- <widget class="QLabel" name="label_2">
114
+ <item row="2" column="5">
115
+ <widget class="QRadioButton" name="radioButton_3">
137
116
  <property name="font">
138
117
  <font>
139
118
  <family>JetBrains Mono</family>
140
119
  <pointsize>12</pointsize>
141
- <bold>false</bold>
142
120
  </font>
143
121
  </property>
144
122
  <property name="text">
145
- <string>Password:</string>
146
- </property>
147
- <property name="alignment">
148
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
123
+ <string>None</string>
149
124
  </property>
125
+ <attribute name="buttonGroup">
126
+ <string notr="true">buttonGroup_2</string>
127
+ </attribute>
150
128
  </widget>
151
129
  </item>
152
- <item row="1" column="1" colspan="3">
153
- <widget class="QLineEdit" name="lookup_password_field">
130
+ <item row="0" column="3" colspan="3">
131
+ <widget class="QLineEdit" name="lookup_user_name_field">
154
132
  <property name="font">
155
133
  <font>
156
134
  <family>JetBrains Mono</family>
@@ -162,90 +140,109 @@ color: rgb(211, 215, 207);</string>
162
140
  <string/>
163
141
  </property>
164
142
  <property name="placeholderText">
165
- <string>Your Password</string>
143
+ <string>W1AW</string>
166
144
  </property>
167
145
  </widget>
168
146
  </item>
169
- <item row="2" column="0">
170
- <widget class="QRadioButton" name="useqrz_radioButton">
147
+ <item row="2" column="3">
148
+ <widget class="QRadioButton" name="usehamdb_radioButton">
149
+ <property name="enabled">
150
+ <bool>false</bool>
151
+ </property>
171
152
  <property name="font">
172
153
  <font>
173
154
  <family>JetBrains Mono</family>
174
155
  <pointsize>12</pointsize>
175
- <bold>false</bold>
176
156
  </font>
177
157
  </property>
178
- <property name="autoFillBackground">
179
- <bool>false</bool>
180
- </property>
181
158
  <property name="styleSheet">
182
159
  <string notr="true"/>
183
160
  </property>
184
161
  <property name="text">
185
- <string>Use QRZ</string>
162
+ <string>Use HamDB</string>
186
163
  </property>
187
164
  <attribute name="buttonGroup">
188
165
  <string notr="true">buttonGroup_2</string>
189
166
  </attribute>
190
167
  </widget>
191
168
  </item>
192
- <item row="2" column="1">
193
- <widget class="QRadioButton" name="usehamdb_radioButton">
194
- <property name="enabled">
195
- <bool>false</bool>
196
- </property>
169
+ <item row="1" column="1">
170
+ <widget class="QLabel" name="label_2">
197
171
  <property name="font">
198
172
  <font>
199
173
  <family>JetBrains Mono</family>
200
174
  <pointsize>12</pointsize>
175
+ <bold>false</bold>
201
176
  </font>
202
177
  </property>
203
- <property name="styleSheet">
204
- <string notr="true"/>
205
- </property>
206
178
  <property name="text">
207
- <string>Use HamDB</string>
179
+ <string>Password:</string>
180
+ </property>
181
+ <property name="alignment">
182
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
208
183
  </property>
209
- <attribute name="buttonGroup">
210
- <string notr="true">buttonGroup_2</string>
211
- </attribute>
212
184
  </widget>
213
185
  </item>
214
- <item row="2" column="2">
215
- <widget class="QRadioButton" name="usehamqth_radioButton">
186
+ <item row="0" column="1">
187
+ <widget class="QLabel" name="label">
216
188
  <property name="font">
217
189
  <font>
218
190
  <family>JetBrains Mono</family>
219
191
  <pointsize>12</pointsize>
192
+ <bold>false</bold>
220
193
  </font>
221
194
  </property>
222
- <property name="styleSheet">
223
- <string notr="true"/>
224
- </property>
225
195
  <property name="text">
226
- <string>Use HamQTH</string>
196
+ <string>User Name:</string>
197
+ </property>
198
+ <property name="alignment">
199
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
227
200
  </property>
228
- <attribute name="buttonGroup">
229
- <string notr="true">buttonGroup_2</string>
230
- </attribute>
231
201
  </widget>
232
202
  </item>
233
- <item row="2" column="3">
234
- <widget class="QRadioButton" name="radioButton_3">
203
+ <item row="1" column="3" colspan="3">
204
+ <widget class="QLineEdit" name="lookup_password_field">
235
205
  <property name="font">
236
206
  <font>
237
207
  <family>JetBrains Mono</family>
238
208
  <pointsize>12</pointsize>
209
+ <bold>false</bold>
239
210
  </font>
240
211
  </property>
241
212
  <property name="text">
242
- <string>None</string>
213
+ <string/>
214
+ </property>
215
+ <property name="placeholderText">
216
+ <string>Your Password</string>
243
217
  </property>
244
- <attribute name="buttonGroup">
245
- <string notr="true">buttonGroup_2</string>
246
- </attribute>
247
218
  </widget>
248
219
  </item>
220
+ <item row="2" column="0">
221
+ <spacer name="horizontalSpacer">
222
+ <property name="orientation">
223
+ <enum>Qt::Horizontal</enum>
224
+ </property>
225
+ <property name="sizeHint" stdset="0">
226
+ <size>
227
+ <width>40</width>
228
+ <height>20</height>
229
+ </size>
230
+ </property>
231
+ </spacer>
232
+ </item>
233
+ <item row="2" column="6">
234
+ <spacer name="horizontalSpacer_2">
235
+ <property name="orientation">
236
+ <enum>Qt::Horizontal</enum>
237
+ </property>
238
+ <property name="sizeHint" stdset="0">
239
+ <size>
240
+ <width>40</width>
241
+ <height>20</height>
242
+ </size>
243
+ </property>
244
+ </spacer>
245
+ </item>
249
246
  </layout>
250
247
  </widget>
251
248
  <widget class="QWidget" name="sound_tab">
@@ -259,7 +256,7 @@ color: rgb(211, 215, 207);</string>
259
256
  </font>
260
257
  </property>
261
258
  <attribute name="title">
262
- <string>Sound Device</string>
259
+ <string>Sound</string>
263
260
  </attribute>
264
261
  <layout class="QGridLayout" name="gridLayout_3">
265
262
  <item row="3" column="0">
@@ -318,38 +315,8 @@ color: rgb(211, 215, 207);</string>
318
315
  <string>CAT</string>
319
316
  </attribute>
320
317
  <layout class="QGridLayout" name="gridLayout_4">
321
- <item row="4" column="0" colspan="4">
322
- <spacer name="verticalSpacer_3">
323
- <property name="orientation">
324
- <enum>Qt::Vertical</enum>
325
- </property>
326
- <property name="sizeHint" stdset="0">
327
- <size>
328
- <width>20</width>
329
- <height>40</height>
330
- </size>
331
- </property>
332
- </spacer>
333
- </item>
334
- <item row="1" column="3">
335
- <widget class="QLineEdit" name="rigcontrolport_field">
336
- <property name="font">
337
- <font>
338
- <family>JetBrains Mono</family>
339
- <pointsize>12</pointsize>
340
- <bold>false</bold>
341
- </font>
342
- </property>
343
- <property name="inputMethodHints">
344
- <set>Qt::ImhDigitsOnly</set>
345
- </property>
346
- <property name="text">
347
- <string>4532</string>
348
- </property>
349
- </widget>
350
- </item>
351
- <item row="1" column="2">
352
- <widget class="QLabel" name="label_7">
318
+ <item row="1" column="1">
319
+ <widget class="QLineEdit" name="rigcontrolip_field">
353
320
  <property name="font">
354
321
  <font>
355
322
  <family>JetBrains Mono</family>
@@ -358,10 +325,7 @@ color: rgb(211, 215, 207);</string>
358
325
  </font>
359
326
  </property>
360
327
  <property name="text">
361
- <string>Port:</string>
362
- </property>
363
- <property name="alignment">
364
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
328
+ <string>127.0.0.1</string>
365
329
  </property>
366
330
  </widget>
367
331
  </item>
@@ -370,6 +334,19 @@ color: rgb(211, 215, 207);</string>
370
334
  <property name="sizeConstraint">
371
335
  <enum>QLayout::SetDefaultConstraint</enum>
372
336
  </property>
337
+ <item>
338
+ <spacer name="horizontalSpacer_4">
339
+ <property name="orientation">
340
+ <enum>Qt::Horizontal</enum>
341
+ </property>
342
+ <property name="sizeHint" stdset="0">
343
+ <size>
344
+ <width>40</width>
345
+ <height>20</height>
346
+ </size>
347
+ </property>
348
+ </spacer>
349
+ </item>
373
350
  <item>
374
351
  <widget class="QRadioButton" name="userigctld_radioButton">
375
352
  <property name="minimumSize">
@@ -431,8 +408,34 @@ color: rgb(211, 215, 207);</string>
431
408
  </attribute>
432
409
  </widget>
433
410
  </item>
411
+ <item>
412
+ <spacer name="horizontalSpacer_3">
413
+ <property name="orientation">
414
+ <enum>Qt::Horizontal</enum>
415
+ </property>
416
+ <property name="sizeHint" stdset="0">
417
+ <size>
418
+ <width>40</width>
419
+ <height>20</height>
420
+ </size>
421
+ </property>
422
+ </spacer>
423
+ </item>
434
424
  </layout>
435
425
  </item>
426
+ <item row="2" column="1" colspan="3">
427
+ <spacer name="verticalSpacer_2">
428
+ <property name="orientation">
429
+ <enum>Qt::Vertical</enum>
430
+ </property>
431
+ <property name="sizeHint" stdset="0">
432
+ <size>
433
+ <width>20</width>
434
+ <height>40</height>
435
+ </size>
436
+ </property>
437
+ </spacer>
438
+ </item>
436
439
  <item row="1" column="0">
437
440
  <widget class="QLabel" name="label_6">
438
441
  <property name="font">
@@ -450,8 +453,21 @@ color: rgb(211, 215, 207);</string>
450
453
  </property>
451
454
  </widget>
452
455
  </item>
453
- <item row="1" column="1">
454
- <widget class="QLineEdit" name="rigcontrolip_field">
456
+ <item row="0" column="2">
457
+ <spacer name="verticalSpacer">
458
+ <property name="orientation">
459
+ <enum>Qt::Vertical</enum>
460
+ </property>
461
+ <property name="sizeHint" stdset="0">
462
+ <size>
463
+ <width>20</width>
464
+ <height>40</height>
465
+ </size>
466
+ </property>
467
+ </spacer>
468
+ </item>
469
+ <item row="1" column="2">
470
+ <widget class="QLabel" name="label_7">
455
471
  <property name="font">
456
472
  <font>
457
473
  <family>JetBrains Mono</family>
@@ -460,12 +476,15 @@ color: rgb(211, 215, 207);</string>
460
476
  </font>
461
477
  </property>
462
478
  <property name="text">
463
- <string>127.0.0.1</string>
479
+ <string>Port:</string>
480
+ </property>
481
+ <property name="alignment">
482
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
464
483
  </property>
465
484
  </widget>
466
485
  </item>
467
- <item row="0" column="2">
468
- <spacer name="verticalSpacer">
486
+ <item row="4" column="0" colspan="4">
487
+ <spacer name="verticalSpacer_3">
469
488
  <property name="orientation">
470
489
  <enum>Qt::Vertical</enum>
471
490
  </property>
@@ -477,18 +496,22 @@ color: rgb(211, 215, 207);</string>
477
496
  </property>
478
497
  </spacer>
479
498
  </item>
480
- <item row="2" column="1" colspan="3">
481
- <spacer name="verticalSpacer_2">
482
- <property name="orientation">
483
- <enum>Qt::Vertical</enum>
499
+ <item row="1" column="3">
500
+ <widget class="QLineEdit" name="rigcontrolport_field">
501
+ <property name="font">
502
+ <font>
503
+ <family>JetBrains Mono</family>
504
+ <pointsize>12</pointsize>
505
+ <bold>false</bold>
506
+ </font>
484
507
  </property>
485
- <property name="sizeHint" stdset="0">
486
- <size>
487
- <width>20</width>
488
- <height>40</height>
489
- </size>
508
+ <property name="inputMethodHints">
509
+ <set>Qt::ImhDigitsOnly</set>
490
510
  </property>
491
- </spacer>
511
+ <property name="text">
512
+ <string>4532</string>
513
+ </property>
514
+ </widget>
492
515
  </item>
493
516
  </layout>
494
517
  </widget>
@@ -502,23 +525,23 @@ color: rgb(211, 215, 207);</string>
502
525
  <string>CW</string>
503
526
  </attribute>
504
527
  <layout class="QGridLayout" name="gridLayout_6">
505
- <item row="0" column="0">
506
- <widget class="QLabel" name="label_10">
528
+ <item row="1" column="2" colspan="2">
529
+ <widget class="QLineEdit" name="cwport_field">
507
530
  <property name="font">
508
531
  <font>
509
532
  <family>JetBrains Mono</family>
510
533
  <pointsize>12</pointsize>
511
534
  </font>
512
535
  </property>
513
- <property name="text">
514
- <string>CW_Address:</string>
536
+ <property name="inputMethodHints">
537
+ <set>Qt::ImhDigitsOnly</set>
515
538
  </property>
516
- <property name="alignment">
517
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
539
+ <property name="text">
540
+ <string>6789</string>
518
541
  </property>
519
542
  </widget>
520
543
  </item>
521
- <item row="1" column="0">
544
+ <item row="1" column="1">
522
545
  <widget class="QLabel" name="label_11">
523
546
  <property name="font">
524
547
  <font>
@@ -534,8 +557,21 @@ color: rgb(211, 215, 207);</string>
534
557
  </property>
535
558
  </widget>
536
559
  </item>
537
- <item row="2" column="0" alignment="Qt::AlignHCenter">
538
- <widget class="QRadioButton" name="usecwdaemon_radioButton">
560
+ <item row="2" column="0">
561
+ <spacer name="horizontalSpacer_5">
562
+ <property name="orientation">
563
+ <enum>Qt::Horizontal</enum>
564
+ </property>
565
+ <property name="sizeHint" stdset="0">
566
+ <size>
567
+ <width>40</width>
568
+ <height>20</height>
569
+ </size>
570
+ </property>
571
+ </spacer>
572
+ </item>
573
+ <item row="2" column="2" alignment="Qt::AlignHCenter">
574
+ <widget class="QRadioButton" name="usepywinkeyer_radioButton">
539
575
  <property name="font">
540
576
  <font>
541
577
  <family>JetBrains Mono</family>
@@ -543,12 +579,12 @@ color: rgb(211, 215, 207);</string>
543
579
  </font>
544
580
  </property>
545
581
  <property name="text">
546
- <string>cwdaemon</string>
582
+ <string>PyWinkeyer</string>
547
583
  </property>
548
584
  </widget>
549
585
  </item>
550
- <item row="2" column="1" alignment="Qt::AlignHCenter">
551
- <widget class="QRadioButton" name="usepywinkeyer_radioButton">
586
+ <item row="2" column="3" alignment="Qt::AlignHCenter">
587
+ <widget class="QRadioButton" name="radioButton_5">
552
588
  <property name="font">
553
589
  <font>
554
590
  <family>JetBrains Mono</family>
@@ -556,12 +592,12 @@ color: rgb(211, 215, 207);</string>
556
592
  </font>
557
593
  </property>
558
594
  <property name="text">
559
- <string>PyWinkeyer</string>
595
+ <string>None</string>
560
596
  </property>
561
597
  </widget>
562
598
  </item>
563
- <item row="2" column="2" alignment="Qt::AlignHCenter">
564
- <widget class="QRadioButton" name="radioButton_5">
599
+ <item row="0" column="2" colspan="2">
600
+ <widget class="QLineEdit" name="cwip_field">
565
601
  <property name="font">
566
602
  <font>
567
603
  <family>JetBrains Mono</family>
@@ -569,28 +605,25 @@ color: rgb(211, 215, 207);</string>
569
605
  </font>
570
606
  </property>
571
607
  <property name="text">
572
- <string>None</string>
608
+ <string>localhost</string>
573
609
  </property>
574
610
  </widget>
575
611
  </item>
576
- <item row="1" column="1" colspan="2">
577
- <widget class="QLineEdit" name="cwport_field">
612
+ <item row="2" column="1" alignment="Qt::AlignHCenter">
613
+ <widget class="QRadioButton" name="usecwdaemon_radioButton">
578
614
  <property name="font">
579
615
  <font>
580
616
  <family>JetBrains Mono</family>
581
617
  <pointsize>12</pointsize>
582
618
  </font>
583
619
  </property>
584
- <property name="inputMethodHints">
585
- <set>Qt::ImhDigitsOnly</set>
586
- </property>
587
620
  <property name="text">
588
- <string>6789</string>
621
+ <string>cwdaemon</string>
589
622
  </property>
590
623
  </widget>
591
624
  </item>
592
- <item row="0" column="1" colspan="2">
593
- <widget class="QLineEdit" name="cwip_field">
625
+ <item row="0" column="1">
626
+ <widget class="QLabel" name="label_10">
594
627
  <property name="font">
595
628
  <font>
596
629
  <family>JetBrains Mono</family>
@@ -598,10 +631,26 @@ color: rgb(211, 215, 207);</string>
598
631
  </font>
599
632
  </property>
600
633
  <property name="text">
601
- <string>localhost</string>
634
+ <string>CW_Address:</string>
635
+ </property>
636
+ <property name="alignment">
637
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
602
638
  </property>
603
639
  </widget>
604
640
  </item>
641
+ <item row="2" column="4">
642
+ <spacer name="horizontalSpacer_6">
643
+ <property name="orientation">
644
+ <enum>Qt::Horizontal</enum>
645
+ </property>
646
+ <property name="sizeHint" stdset="0">
647
+ <size>
648
+ <width>40</width>
649
+ <height>20</height>
650
+ </size>
651
+ </property>
652
+ </spacer>
653
+ </item>
605
654
  </layout>
606
655
  </widget>
607
656
  <widget class="QWidget" name="group_tab">
@@ -614,7 +663,7 @@ color: rgb(211, 215, 207);</string>
614
663
  </font>
615
664
  </property>
616
665
  <attribute name="title">
617
- <string>Group Operation</string>
666
+ <string>Group</string>
618
667
  </attribute>
619
668
  <layout class="QGridLayout" name="gridLayout_7">
620
669
  <item row="0" column="0" colspan="2" alignment="Qt::AlignHCenter">
@@ -949,6 +998,35 @@ color: rgb(211, 215, 207);</string>
949
998
  </widget>
950
999
  </widget>
951
1000
  </item>
1001
+ <item row="1" column="1" alignment="Qt::AlignHCenter">
1002
+ <widget class="QDialogButtonBox" name="buttonBox">
1003
+ <property name="sizePolicy">
1004
+ <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
1005
+ <horstretch>0</horstretch>
1006
+ <verstretch>0</verstretch>
1007
+ </sizepolicy>
1008
+ </property>
1009
+ <property name="font">
1010
+ <font>
1011
+ <family>JetBrains Mono</family>
1012
+ <pointsize>12</pointsize>
1013
+ <bold>false</bold>
1014
+ </font>
1015
+ </property>
1016
+ <property name="layoutDirection">
1017
+ <enum>Qt::LeftToRight</enum>
1018
+ </property>
1019
+ <property name="orientation">
1020
+ <enum>Qt::Horizontal</enum>
1021
+ </property>
1022
+ <property name="standardButtons">
1023
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Save</set>
1024
+ </property>
1025
+ <property name="centerButtons">
1026
+ <bool>true</bool>
1027
+ </property>
1028
+ </widget>
1029
+ </item>
952
1030
  </layout>
953
1031
  <zorder>tabWidget</zorder>
954
1032
  <zorder>buttonBox</zorder>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -317,6 +317,14 @@ class CAT:
317
317
 
318
318
  def ptt_on(self):
319
319
  """turn ptt on/off"""
320
+ if self.interface == "flrig":
321
+ return self.__ptt_on_flrig()
322
+ if self.interface == "rigctld":
323
+ return self.__ptt_on_rigctld()
324
+ return False
325
+
326
+ def __ptt_on_rigctld(self):
327
+ """Toggle PTT state on"""
320
328
 
321
329
  # T, set_ptt 'PTT'
322
330
  # Set 'PTT'.
@@ -326,14 +334,6 @@ class CAT:
326
334
  # Get 'PTT' status.
327
335
  # Returns PTT as a value in set_ptt above.
328
336
 
329
- if self.interface == "flrig":
330
- return self.__ptt_on_flrig()
331
- if self.interface == "rigctld":
332
- return self.__ptt_on_rigctld()
333
- return False
334
-
335
- def __ptt_on_rigctld(self):
336
- """stub"""
337
337
  rig_cmd = bytes("T 1\n", "utf-8")
338
338
  logger.debug("%s", f"{rig_cmd}")
339
339
  try:
@@ -345,8 +345,14 @@ class CAT:
345
345
  self.rigctrlsocket = None
346
346
 
347
347
  def __ptt_on_flrig(self):
348
- """stub"""
349
- return
348
+ """Toggle PTT state on"""
349
+ try:
350
+ self.online = True
351
+ return self.server.rig.set_ptt(1)
352
+ except ConnectionRefusedError as exception:
353
+ self.online = False
354
+ logger.debug("%s", exception)
355
+ return "0"
350
356
 
351
357
  def ptt_off(self):
352
358
  """turn ptt on/off"""
@@ -357,7 +363,7 @@ class CAT:
357
363
  return False
358
364
 
359
365
  def __ptt_off_rigctld(self):
360
- """stub"""
366
+ """Toggle PTT state off"""
361
367
  rig_cmd = bytes("T 0\n", "utf-8")
362
368
  logger.debug("%s", f"{rig_cmd}")
363
369
  try:
@@ -369,5 +375,11 @@ class CAT:
369
375
  self.rigctrlsocket = None
370
376
 
371
377
  def __ptt_off_flrig(self):
372
- """stub"""
373
- return
378
+ """Toggle PTT state off"""
379
+ try:
380
+ self.online = True
381
+ return self.server.rig.set_ptt(0)
382
+ except ConnectionRefusedError as exception:
383
+ self.online = False
384
+ logger.debug("%s", exception)
385
+ return "0"
not1mm/lib/settings.py CHANGED
@@ -29,7 +29,7 @@ class Settings(QtWidgets.QDialog):
29
29
  if index != -1:
30
30
  self.sounddevice.setCurrentIndex(index)
31
31
  self.useqrz_radioButton.setChecked(bool(self.preference.get("useqrz")))
32
- self.usehamdb_radioButton.setChecked(bool(self.preference.get("usehamdb")))
32
+ # self.usehamdb_radioButton.setChecked(bool(self.preference.get("usehamdb")))
33
33
  self.usehamqth_radioButton.setChecked(bool(self.preference.get("usehamqth")))
34
34
  self.lookup_user_name_field.setText(
35
35
  str(self.preference.get("lookupusername", ""))
@@ -74,7 +74,7 @@ class Settings(QtWidgets.QDialog):
74
74
  """
75
75
  self.preference["sounddevice"] = self.sounddevice.currentText()
76
76
  self.preference["useqrz"] = self.useqrz_radioButton.isChecked()
77
- self.preference["usehamdb"] = self.usehamdb_radioButton.isChecked()
77
+ # self.preference["usehamdb"] = self.usehamdb_radioButton.isChecked()
78
78
  self.preference["usehamqth"] = self.usehamqth_radioButton.isChecked()
79
79
  self.preference["lookupusername"] = self.lookup_user_name_field.text()
80
80
  self.preference["lookuppassword"] = self.lookup_password_field.text()
not1mm/lib/version.py CHANGED
@@ -1,2 +1,2 @@
1
1
  """It's the version"""
2
- __version__ = "23.4.21"
2
+ __version__ = "23.4.21.2"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 23.4.21
3
+ Version: 23.4.21.2
4
4
  Summary: NOT1MM Logger
5
5
  Author-email: Michael Bridak <michael.bridak@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/mbridak/not1mm
@@ -39,6 +39,10 @@ Requires-Dist: soundfile
39
39
  - [What it probably never will be](#what-it-probably-never-will-be)
40
40
  - [List of should be working contests](#list-of-should-be-working-contests)
41
41
  - [Changes of note](#changes-of-note)
42
+ - [Installing from PyPi](#installing-from-pypi)
43
+ - [Python and pip](#python-and-pip)
44
+ - [Installing with pip](#installing-with-pip)
45
+ - [Updating with pip](#updating-with-pip)
42
46
  - [Running from source](#running-from-source)
43
47
  - [Various data file locations](#various-data-file-locations)
44
48
  - [Data](#data)
@@ -110,7 +114,7 @@ Feature complete. I'm only one guy, and I'm not what you'd consider to be a cont
110
114
 
111
115
  ## Changes of note
112
116
 
113
- - [23-4-21] Seems phrases were mp3, resaved as wav.
117
+ - [23-4-21] Seems phrases were mp3, resaved as wav. Add PTT to flrig CAT. Added Select sound device. Reworked Configuration Settings dialog. Rerecorded phonetics.
114
118
  - [23-4-20] Added ARRL DX CW and SSB. Hid the 'Radio dots', cause they currently do nothing. Hid the CW speed combo box if it's not a CW contest. Added edit existing contest dialog.
115
119
  - [23-4-18] Added voice keying. Fixed a bunch of crashes. Added PTT to rigctld.
116
120
  - [23-4-15] Corrected tabstops on new contest screen. Changed project state to BETA.
@@ -161,6 +165,20 @@ Feature complete. I'm only one guy, and I'm not what you'd consider to be a cont
161
165
 
162
166
  </details>
163
167
 
168
+ ## Installing from PyPi
169
+
170
+ ### Python and pip
171
+
172
+ This software is a Python package hosted on PyPi, and installable with the pip command. If this is your first exposure to pip you can get all the details from [The PyPA](https://packaging.python.org/en/latest/tutorials/installing-packages/). In short, most linux distros come with Python pre installed. And pip usually comes with Python as a standard module. If pip is not installed by default, you can usually load it through your package manager. For example `sudo apt install python3-pip` or `sudo dnf install python3-pip`.
173
+
174
+ ### Installing with pip
175
+
176
+ But just try `pip install not1mm` in your terminal. Once it's installed just type `not1mm` in the same terminal. On the first run, the program will install a launchable icon, which you can then click on to run like a normal program.
177
+
178
+ ### Updating with pip
179
+
180
+ I've been posting updates just about everyday. Sometimes multiple times a day. It's early days, so there is much to do. You can check for and install updates with `pip install -U not1mm`.
181
+
164
182
  ## Running from source
165
183
 
166
184
  Since this is packaged for PyPi, if you want to work on your own source branch, after cloning from github you would:
@@ -252,7 +270,7 @@ You can edit the parameters of a previously defined contest by selecting it as t
252
270
 
253
271
  To setup your CAT control, CW keyer, Callsign lookups, select `File` > `Configuration Settings`
254
272
 
255
- The tabs for cloudlog, groups and n1mm are disabled and are for future expansion.
273
+ The tabs for groups and n1mm are disabled and are for future expansion.
256
274
 
257
275
  ![Configuration Settings screen](https://github.com/mbridak/not1mm/raw/master/pic/configuration_settings.png)
258
276
 
@@ -272,7 +290,6 @@ Under the `CAT` TAB, you can choose either `rigctld` normally with an IP of `127
272
290
 
273
291
  Under the `CW` TAB, There are three options. `cwdaemon`, which normally uses IP `127.0.0.1` and port `6789`. `pywinkeyer` which normally uses IP `127.0.0.1` and port `8000`. Or `None`, if you want to Morse it like it's 1899.
274
292
 
275
-
276
293
  ## Hiding screen elements
277
294
 
278
295
  You can show or hide certain buttons/indicators by checking and unchecking their boxes under the view menu. You can then resize the screen to make it more compact.
@@ -283,7 +300,9 @@ The your choices will be remembered when you relaunch the program.
283
300
 
284
301
  ## Editing macro keys
285
302
 
286
- To edit the macros, choose `File` > `Edit Macros`. This will open your systems registered text editor with current macros loaded. When your done just save the file and close the editor. The file loaded to edit will be determined by your current operating mode.
303
+ To edit the macros, choose `File` > `Edit Macros`. This will open your systems registered text editor with current macros loaded. When your done just save the file and close the editor. The file loaded to edit, CW or SSB, will be determined by your current operating mode.
304
+
305
+ After editing and saving the macro file. You can force the logger to reload the macro file by toggeling between `Run` and `S&P` states.
287
306
 
288
307
  ### Macro substitutions
289
308
 
@@ -298,11 +317,9 @@ You can include a limited set of substitution instructions.
298
317
 
299
318
  The macros when used with voice, will also accept filenames of WAV files to play, excluding the file extension. The filename must be enclosed by brackets. For example `[CQ]` will play `cq.wav`, `[again]` will play `again.wav`. The wav files are stored in the operators personal data directory. The filenames must be in lowercase. See [Various data file locations](#various-data-file-locations) above for the location of your data files. For me, the macro `[cq]` will play `/home/mbridak/.local/share/not1mm/K6GTE/cq.wav`
300
319
 
301
- The current wav files in place are not the ones you will want to use. They sound like some little kid. You can use something like Audacity to record new wav files in your own voice.
302
-
303
- Aside from the `[filename]` wav files, there are also NATO phonetic wav files for each letter and number. So if your macro key holds `{HISCALL} {SNT} {SENTNR}` and you have entered K5TUX in callsign field during CQ WW SSB while in CQ Zone 3. You'll here Kilo 5 Tango Uniform X-ray, 5 9 9, 3. Hopefully not in a little kids voice.
320
+ **The current wav files in place are not the ones you will want to use. They sound like an idiot.** You can use something like Audacity to record new wav files in your own voice.
304
321
 
305
- Right now, the sound is played out of the default sound device. This is NOT what we want. I still have to code up the dialog to choose the correct sound device to use.
322
+ Aside from the `[filename]` wav files, there are also NATO phonetic wav files for each letter and number. So if your macro key holds `{HISCALL} {SNT} {SENTNR}` and you have entered K5TUX in callsign field during CQ WW SSB while in CQ Zone 3. You'll here Kilo 5 Tango Uniform X-ray, 5 9 9, 3. Hopefully not in an idiots voice.
306
323
 
307
324
  ## cty.dat and QRZ lookups for distance and bearing
308
325
 
@@ -1,5 +1,5 @@
1
1
  not1mm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- not1mm/__main__.py,sha256=axuM_F-GP_Cn8Ib92Wr1pHDuG_u7_7pJDOwJ60aqLhw,76456
2
+ not1mm/__main__.py,sha256=zvuPi5hu9LDPq3uaccila37GSPoiZpoy5w0NRIDv8fc,76570
3
3
  not1mm/logwindow.py,sha256=IaKt9nRKD8RKudl_r9XBnPKwwHzc1e1aqKByhxk5fTo,30176
4
4
  not1mm/test.py,sha256=k1kJefypzE3NBcUpAcGy7jOe7VEwFs_qgGyDRTeYKuE,1263
5
5
  not1mm/data/Combinear.qss,sha256=SKqM0g8GvNXay1ovgtwCw3Egt0eLfN5P3iTREInC1eE,16590
@@ -8,7 +8,7 @@ not1mm/data/MASTER.SCP,sha256=oqUB3Fvy40vU-ra-R3-cvTeBnZWW04Da1Et011UITbI,542666
8
8
  not1mm/data/about.ui,sha256=ll-3ZSghbok0kW9MLSAoo2dW3EV3lM4m4nR-kUJ6oNw,2352
9
9
  not1mm/data/alpha bravo charlie delta.txt,sha256=d5QMmSWEUAe4Rj1XbNjTPLa_5Be4Se6u5LUIqAYidOQ,224
10
10
  not1mm/data/check.png,sha256=UvFOLr8V-79qnjW8wUaGItXk_OSP8m8hqPevs8NDlFY,387
11
- not1mm/data/configuration.ui,sha256=HH6mI74TRWNy8-IoOWSIc5M06wk9DcGI2xJDQOSSR8A,29370
11
+ not1mm/data/configuration.ui,sha256=LrT1NlyEmbzipnyrimXah-F5TmUftQhi3PNf-mB4_WI,31585
12
12
  not1mm/data/contests.sql,sha256=4hmJCDvrbxnA_Y5S4T5o52TZieeFk6QUwFerwlFePNA,89307
13
13
  not1mm/data/cty.json,sha256=Y0c74JmGSlYKfkDHIUbaupVaAGqS01YzlQAP3IyWGYA,4534539
14
14
  not1mm/data/cwmacros.txt,sha256=PvJ7TxGILq-ErHb6Gbrm-08x76BbCdXb8AY8a7st5mg,451
@@ -27,56 +27,57 @@ not1mm/data/pickcontest.ui,sha256=_9JFiJw4l-bRRgNDtVg1DpxreylYd_UqEq0wfcr9gJc,16
27
27
  not1mm/data/reddot.png,sha256=M33jEMoU8W4rQ4_MVyzzKxDPDte1ypKBch5VnUMNLKE,565
28
28
  not1mm/data/settings.ui,sha256=sK5K5AXSPCMpMFIdqjTvgjxz525AjRiYuQLHid8P3hY,35566
29
29
  not1mm/data/ssbmacros.txt,sha256=0Qccj4y0nlK-w5da9a9ti-jILkURtwztoDuL_D0pEJM,470
30
- not1mm/data/phonetics/0.wav,sha256=nYzQZyC44IjoYQmlfZT9iIaeccAjzNZXp2vYDtS_iko,86016
31
- not1mm/data/phonetics/1.wav,sha256=SfpcYCoKZKdpIdw-OOd4gJZGN_2kj9MqMCJDlZyoGN4,67188
32
- not1mm/data/phonetics/2.wav,sha256=_PyhNwNYhfGiTNBFWGp7721wXNQ7HxUSbZFhUWnW65k,58820
33
- not1mm/data/phonetics/3.wav,sha256=dElq0DUzG3rm12c-WTw6N2prvvLrQGuhkzTnUZxXYjk,52544
34
- not1mm/data/phonetics/4.wav,sha256=AIEyiXZpG7HQGdRqMU7JY4JbpooDuRdfYMcBjc3DZAI,63004
35
- not1mm/data/phonetics/5.wav,sha256=-dRhXZM6TfULr3fncWRtEiSByxV82DJzPP_7Y2r-phM,49380
36
- not1mm/data/phonetics/6.wav,sha256=DaKNmwRlNgh4hwqRvAApuutszKvQPz3YhmFqsPmgc2Y,98748
37
- not1mm/data/phonetics/7.wav,sha256=nS3x_uW5lhKCPepqID49AuvtYEcsqdy-Nmcecf5lujY,72500
38
- not1mm/data/phonetics/73.wav,sha256=daExkEuqAPiQXPpI-3RDEnJakJzok1ARBImgagOXK64,6157
39
- not1mm/data/phonetics/8.wav,sha256=goxpMGokoqp4lybhIXbbYqG57LakLsyK_3S42cq662c,72680
40
- not1mm/data/phonetics/9.wav,sha256=wPE_gQCrPXHtXBFTDDpCdjexxKFs7w94vOY60mLObDo,61720
41
- not1mm/data/phonetics/a.wav,sha256=QQVPwL206POaJmw6mRl7c3rdt1X2Ht_AohLZZCwT1vU,91244
42
- not1mm/data/phonetics/again.wav,sha256=PSSpAvQ_LYyfspwktvSU1V328EGCg4VrPi2wzDI1nIA,39518
43
- not1mm/data/phonetics/b.wav,sha256=0eUcnghGXKsITUlwUE0jP0JSbcQ0QQUSfQwHCL5drYA,82876
44
- not1mm/data/phonetics/c.wav,sha256=fnsdCys_4jpBDsW1AfBWbrx6DvfmX6erPKiWHMQdlv0,82876
30
+ not1mm/data/phonetics/0.wav,sha256=0OpYiR-3MK6fVHE6MB-HeOxSAPiDNMjqvx5JcIZtsQk,42590
31
+ not1mm/data/phonetics/1.wav,sha256=OEAavA8cfVxFZwaT0HY9Wg9NAGEPKBhwhEdzGXkQs_U,30248
32
+ not1mm/data/phonetics/2.wav,sha256=AmCfvo8y8BT9OlHkCs_N4y_mUAjmyG_x9ahbgiwU2FE,29584
33
+ not1mm/data/phonetics/3.wav,sha256=oDuUlR62r7RqjErYFAyVXC5mLTJvkHgZ5c42i-zBor0,32072
34
+ not1mm/data/phonetics/4.wav,sha256=1Fz5jPEtCH0nlRbKvhNKQbDEx4NrsHN6W_R2zF5zaj8,43052
35
+ not1mm/data/phonetics/5.wav,sha256=t0QvDENhH9_KNX2m9gF3n4XWVlqSx4BWUnA68c9AtqU,51976
36
+ not1mm/data/phonetics/6.wav,sha256=XI950z2JTKs2YcU367u56Pz4lRy9h7a3OEVwYkZCWFU,58634
37
+ not1mm/data/phonetics/7.wav,sha256=e8Rg5Ns8ikxuKh4CAI-qFdkSvO43c2MLfW3KrUQcyc0,49154
38
+ not1mm/data/phonetics/73.wav,sha256=H2MACVpgcLb2m4uhlH4670ExD1j5w1d9AuuAS11ea_Q,32842
39
+ not1mm/data/phonetics/8.wav,sha256=E7wgDy_F5J7-1QrC1qaPNK7dfq21qqRDFXohYb5iyoo,35636
40
+ not1mm/data/phonetics/9.wav,sha256=BOTqFrhAkXQa5q89rh56SqkiTKPZOgjghCA_Pkza7EQ,39592
41
+ not1mm/data/phonetics/a.wav,sha256=0orct0P4TO5o4At_GY91eqDqMdYGAkDosE2K0OrV9AI,46800
42
+ not1mm/data/phonetics/again.wav,sha256=2tNPVlfbfbfvc-sTrV-l7BqmeHiy14P4kElIWGUMi0M,44594
43
+ not1mm/data/phonetics/b.wav,sha256=vOcw0gCYws-1AaGXu8pqnb3TPfnnj6_b7c5vV7_4kUY,40976
44
+ not1mm/data/phonetics/c.wav,sha256=To-OPpsUuwYz7Ix_Sxzbx0JE_dVDY81M2kpcu9rewhA,46746
45
45
  not1mm/data/phonetics/contest.wav,sha256=8JXCFI-10dAwtQg63hmOIdQxh__601rw4TXZTJoP0ew,62558
46
- not1mm/data/phonetics/cq.wav,sha256=EtoafUPZKe0UvzKag9cRHHZVAw9wGV-umvknSdXbtfI,113246
47
- not1mm/data/phonetics/d.wav,sha256=lJ2G-ql3Z-Iy5I_cMR8653lj1-WaLkpMgP_XyfUsz_Q,81832
48
- not1mm/data/phonetics/e.wav,sha256=Bw85FGvuN7OMojchRbU6S8cvlrMUyia3E-0PR2UUaiE,79736
49
- not1mm/data/phonetics/f.wav,sha256=9DvNmkUSV8ph6HNUBOXIP_3gF8qg8l5YU-FIwdcf8nA,142496
50
- not1mm/data/phonetics/g.wav,sha256=y6IhzmQsmuDbgqw3oiFMbIpiLD5ZGLSTtQg4w9dlNEU,79736
51
- not1mm/data/phonetics/h.wav,sha256=3vItt5LHR4FrVpu3q0IAiHuhrGHAPx-1HTpb8nbZpfk,97520
52
- not1mm/data/phonetics/i.wav,sha256=woFAU6Lb82YPEh8Ix0DXwpwvr7ua8fiHIM07wLzxFdw,80784
53
- not1mm/data/phonetics/j.wav,sha256=prM0psTABzhvdgiPKhMtbUekTnWY0KIbyCtYdqucmPo,110072
54
- not1mm/data/phonetics/k.wav,sha256=TZdN5p7ajGEP5He5s10N3W4a_IzhY-K0NfiEMbJO6mM,75556
55
- not1mm/data/phonetics/l.wav,sha256=egE0_y7-4P6xMcKqL04_Bm6cRp-tQC--GdIs5tI2dGE,83920
56
- not1mm/data/phonetics/m.wav,sha256=9JqetRchnwBlAImvEkg-IR8kGQgjkJ4IDCd9wFmRGUQ,81828
57
- not1mm/data/phonetics/mynumber.wav,sha256=VOLrIUiBppy29WUCSLVsVNpEJjYwB_ssk0tvIV_xZiY,85598
58
- not1mm/data/phonetics/n.wav,sha256=EqhDc6HK6gVhUn8QJo6n_QxGExVMRw8xKO80tihiL1M,114252
59
- not1mm/data/phonetics/nil.wav,sha256=D5XWQjzXPhy8b1EADYMiofWYTxXNV6gSyLc0R6X2MFE,108638
60
- not1mm/data/phonetics/o.wav,sha256=Yy3KYz5F2rFWMEOu5eHBcHE9u2eCDCGZJSj3ZeWs75I,97520
61
- not1mm/data/phonetics/p.wav,sha256=fxA0vWYi4gf8Hjrt2ggrPvuXYMslKg6hCsirprKUVIs,89152
62
- not1mm/data/phonetics/q.wav,sha256=naPwFoLdyNyDzGfSN3fxoQ7aED8xdwPOdI-NbWyHRas,91244
63
- not1mm/data/phonetics/r.wav,sha256=xSGScnKDR0tX7mk0RgfzGdCKh4CnB-_rLKjv4IvxGGM,90196
64
- not1mm/data/phonetics/roger.wav,sha256=hUor7-Y0NLnY0y2emVL2cvtUVSwJOypXSAH9rLQ86Io,78686
65
- not1mm/data/phonetics/s.wav,sha256=6QIKYpQkfKv4jcJuFQcg8h2U5v5xMuA4qxTU6Crkvw4,106932
46
+ not1mm/data/phonetics/cq.wav,sha256=ooIgH1EsFBZWK-7MuKG9iUEFXa5WUQ0PQiOVqyMwWss,92498
47
+ not1mm/data/phonetics/d.wav,sha256=YWYt1kCh2AhH3WIbnbrqpychwh9pFpXDxeaFF00cCt4,52524
48
+ not1mm/data/phonetics/e.wav,sha256=p2zrwjmHTmkQre8AkgUhrDcFPcRqOTu_ux7wPsK6oN4,45700
49
+ not1mm/data/phonetics/f.wav,sha256=j0dU4zl8mTVdfleR-nHbn1Vphi7O79GCtuXraVjAvD8,53438
50
+ not1mm/data/phonetics/g.wav,sha256=YbYBA1evCCUB8NZnnC7cZYtq5NVF-gWnxzVFJLEeOyA,42766
51
+ not1mm/data/phonetics/h.wav,sha256=B94Kcy1As4w1PEOWIowC6i7OZNiX5jomF8OPvGKeImw,50040
52
+ not1mm/data/phonetics/i.wav,sha256=7N8RMKXXlSrnxzBkVrJv4KlmC1mdUaYVomWuR2Qas1E,46372
53
+ not1mm/data/phonetics/j.wav,sha256=nLcPVzx-R7YvSST4xuo7KPZys9IJ3DhgcIFlKmUmP8c,43434
54
+ not1mm/data/phonetics/k.wav,sha256=qAtn73y-H87p0h5k2jfB0_Imb3vny28O9skSJkstBCw,49066
55
+ not1mm/data/phonetics/k6gte.wav,sha256=FNozcVsEWDzMjRr5gPrbRQfGxN_ys2Pl8b0dPT16Q0s,185562
56
+ not1mm/data/phonetics/l.wav,sha256=-yomiK6n8O5xBGddLMzvOpTFA-LnVwqul4cJfjDcaPs,43154
57
+ not1mm/data/phonetics/m.wav,sha256=Nd3z8P6laXr3Ps8By7hivyQAb23qZElD9LkLk5DgIbc,54352
58
+ not1mm/data/phonetics/mynumber.wav,sha256=axfJlDIOmaulPuCGA1el4RJK_YLZU5h4bFVD7HuJI7M,56798
59
+ not1mm/data/phonetics/n.wav,sha256=S1cnHDhI8GzOuoy2KQ6EO0zO-T6kiJzeo8DKBkZoqqI,52204
60
+ not1mm/data/phonetics/nil.wav,sha256=MIbIayqhlgQE_3VRrZU5buR-tMe1pI0LfBO64w9A9-Q,154544
61
+ not1mm/data/phonetics/o.wav,sha256=QVOi7hsCh-mkgeGb9bqK8Had9YpjHDDBKGldnsPaHJc,47440
62
+ not1mm/data/phonetics/p.wav,sha256=FCED-2W0toZaPChxX8NSebOqhoOM6txqJ7lAMdTcGMo,38300
63
+ not1mm/data/phonetics/q.wav,sha256=Qq5EIoJv9Iow8aYlQjrwnTR7xGz0dZE8IV0a1P2MKAQ,55288
64
+ not1mm/data/phonetics/r.wav,sha256=vbE0XISmIbVdMlysF4EcQ2CfyNYMl9vJtmV1rI_KjNA,47432
65
+ not1mm/data/phonetics/roger.wav,sha256=Rjm54tVuqNh1Utov2j4v-n_AIyPvJ3NTb9URDvR42Fg,46122
66
+ not1mm/data/phonetics/s.wav,sha256=7OCXJUj-R_9f94LUcO524CGHEpJlvzSU8eTOOdpDtvI,60698
66
67
  not1mm/data/phonetics/space.wav,sha256=1npMiWaGQZJs51faYU77kAfawXMc6yeyNSuzFVW2kDo,70424
67
- not1mm/data/phonetics/t.wav,sha256=BeRpoHCHzxCw2SgalyWYtr7-tDXJglTL3BjJE043yok,93332
68
- not1mm/data/phonetics/thankyou.wav,sha256=ITUETR4rWltLqQt5DKMpIYcdi9gQFK87AHp83YBprsA,60254
69
- not1mm/data/phonetics/thankyouqrz.wav,sha256=TfBigz8pIbTgkantZJkLuZotgiSF1dbMfKy1gCl44co,136150
70
- not1mm/data/phonetics/u.wav,sha256=bIPvi-S_6biEDMT-WUZyRLRscFPP0F5xPzQwmI-N-O8,107980
71
- not1mm/data/phonetics/v.wav,sha256=hfHFTT592IzLqCRdum8Cbe_ZAHSry-3wE1OU6OY952Y,86012
72
- not1mm/data/phonetics/w.wav,sha256=3hQqaUTQB-jhg592QjQutR9dSSM7yKAGLysmsnEMzUY,95428
73
- not1mm/data/phonetics/x.wav,sha256=Qpimm5cVxzGDQ2cZamGFNRU26k91tuGYvPclyiInHrg,92288
74
- not1mm/data/phonetics/y.wav,sha256=E9l-w222fkbLpkKA0-G9G_OFioFMxIHJDREHk343seo,98564
75
- not1mm/data/phonetics/yourcall.wav,sha256=I_x46xYFdFMbwjD5JSpJ-gfGL6IJI0keTMJ5LWQuR_8,85598
76
- not1mm/data/phonetics/z.wav,sha256=3m0OPHAduvgr-l1XoJgOYpw8xU_jApUJwZQ-IQliXq0,82876
68
+ not1mm/data/phonetics/t.wav,sha256=LJE8rCtbFgtKtWseygCPfCZWd0gtyquUoAblY_u4kKc,58196
69
+ not1mm/data/phonetics/thankyou.wav,sha256=VjkQPvAqTTCMlrAmWiEoUFkz4pauva5brCVa4f6C-5k,56320
70
+ not1mm/data/phonetics/thankyouqrz.wav,sha256=clMd4kdBZApSVSI_i57NYEFWh9EfrwpRSyS80CM975U,94980
71
+ not1mm/data/phonetics/u.wav,sha256=1zppLyjFy02kpoFZoU1x1QuRUaPVVOniQowZZxsAq3k,65922
72
+ not1mm/data/phonetics/v.wav,sha256=M3Mt5qWwTUkLpfkaL5icYgZa-M9hhCVebHHE_bfH_hs,50142
73
+ not1mm/data/phonetics/w.wav,sha256=Gjt5Z3yo6CO2Lcu5h8Bp_xC62_-0X7TKzdSCs3N5Qvg,37638
74
+ not1mm/data/phonetics/x.wav,sha256=BQbpeCpdHhWfGbfvbk6cimnjD4NEP-kNRYqCo6TLnAk,61870
75
+ not1mm/data/phonetics/y.wav,sha256=QINogHdj01-zkUX9E3fnVTzjGM8wc5F5NEGz-bSd3Ng,56524
76
+ not1mm/data/phonetics/yourcall.wav,sha256=4kheHJmCiRDL2kjhlgXQ8_u_eEMgKxiNGu5UBk9k08E,46510
77
+ not1mm/data/phonetics/z.wav,sha256=arafCi7fwmBLdVDI-PRyaL4U-03PIQDhffwY5noJ_2c,51768
77
78
  not1mm/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
79
  not1mm/lib/about.py,sha256=O9i8ypv2W9KZkPAp2bcRI0J5RgPE5R1vMfU8ZGlok_E,379
79
- not1mm/lib/cat_interface.py,sha256=sXiomjdlan6EYc6Zj9WTHsypUXmsgEPo6x8qrlUmdQw,11966
80
+ not1mm/lib/cat_interface.py,sha256=u7sJy8b1xaF-6DhCwATuAEbpRRFyQbx_tYHI4kNzGG4,12468
80
81
  not1mm/lib/cwinterface.py,sha256=77I7RFtrIljuuWna3mjkjxaPSM1kGaPV4duPkoiT8wA,1772
81
82
  not1mm/lib/database.py,sha256=nHMLWjUhSWaW-Hf-2W2yMbbI6DvQART7BvwIsxNKYwA,31747
82
83
  not1mm/lib/edit_contact.py,sha256=YwuX-BuIa7AuPtLRENs4jTzxOrtk6MCxZj3BR_bDPW8,357
@@ -89,8 +90,8 @@ not1mm/lib/multicast.py,sha256=-fhGb0U6vX9hW_dMfEuXitJ_pgefya9YBDeI_KbyGFA,1999
89
90
  not1mm/lib/n1mm.py,sha256=bK5d21Yfn6xRpQcu2RdpL2zR8lOlRWOadD6Ai4_lFdc,4434
90
91
  not1mm/lib/new_contest.py,sha256=mHKNCS3iKOKN-bT9d8ZK3JemThOZFQ0ikfUSS0-ZTpY,354
91
92
  not1mm/lib/select_contest.py,sha256=XQdRUkPAIHIMVsilm82M54b_v9yWpYrZ1nfInJrtZoo,363
92
- not1mm/lib/settings.py,sha256=811RqVU8gPJmbDIznG1fCDnOpa5s1T4Bw0jdqq2O3CY,5410
93
- not1mm/lib/version.py,sha256=mEpdTtPP68FTxYZsbDh8aSNxVndo2vtgXj29lJONJWE,47
93
+ not1mm/lib/settings.py,sha256=6H5nV8NVvhYm9Pql9ApFyAcSS_dDxhOZH4cCTDHEi-4,5414
94
+ not1mm/lib/version.py,sha256=79QerRbpOS3Rt-4K-bU8oT01nhWR5tyWzDWMrJrHMIw,49
94
95
  not1mm/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
96
  not1mm/plugins/arrl_dx_cw.py,sha256=rZ8C-qwwKXtdB5mS0j6nrzyadRIIgQeCWHX9jpdU9SY,14287
96
97
  not1mm/plugins/arrl_dx_ssb.py,sha256=pOU45FM9_Z_b1-k0ej0qN_Pq0V2ejlqNhKUsFQGaOBg,14291
@@ -108,10 +109,10 @@ not1mm/plugins/jidx_ph.py,sha256=dHoKNu28UXIfMWErdlwbvpc5xIKMwdaKtjJF1gdQpeQ,135
108
109
  not1mm/plugins/winter_field_day.py,sha256=NVCzdhJrw-F56mMQ7czZNcsS0bMtttks1VOBIy2EZng,2790
109
110
  not1mm/testing/test.py,sha256=wsEa05WGFGYSYBRa0e-sxTc13tcibUgkPMiypnHRemc,2297
110
111
  testing/test.py,sha256=0jvT_UcvgcAGwkJNnB9PBDmQhLHQl85NQyT5f9GKBuQ,2248
111
- testing/text2.py,sha256=AaFAWFqRB88QLd5ICZ7GPq39mzI1gq07brtTfMBvzLc,397
112
- not1mm-23.4.21.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
113
- not1mm-23.4.21.dist-info/METADATA,sha256=LeTcK2Y4UaLJw9tJ-gt3oWEXDENmZv-uoWzgBQT3dYg,17500
114
- not1mm-23.4.21.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
115
- not1mm-23.4.21.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
116
- not1mm-23.4.21.dist-info/top_level.txt,sha256=-NwUrh4k1kzpOvf720xYWSTKSlr-zNSIz3D_eplrxLs,15
117
- not1mm-23.4.21.dist-info/RECORD,,
112
+ testing/text2.py,sha256=BK0NP2CTVHrp04ZVzWAmOlog2zC0r2AE9K6ynCAGJeM,379
113
+ not1mm-23.4.21.2.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
114
+ not1mm-23.4.21.2.dist-info/METADATA,sha256=NzUfAFyjBD1rgXK58vmqnzYLk8vv0bSzAfHHrlzkgnU,18805
115
+ not1mm-23.4.21.2.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
116
+ not1mm-23.4.21.2.dist-info/entry_points.txt,sha256=pMcZk_0dxFgLkcUkF0Q874ojpwOmF3OL6EKw9LgvocM,47
117
+ not1mm-23.4.21.2.dist-info/top_level.txt,sha256=-NwUrh4k1kzpOvf720xYWSTKSlr-zNSIz3D_eplrxLs,15
118
+ not1mm-23.4.21.2.dist-info/RECORD,,
testing/text2.py CHANGED
@@ -9,9 +9,9 @@ print(f"There are {len(devices)} devices.")
9
9
 
10
10
  print("Output devices:")
11
11
  for device in devices:
12
- if device.get("max_output_channels"):
13
- print(
14
- f"Index: {str(device.get('index')).rjust(2)} "
15
- f"Name: {device.get('name').ljust(30)} "
16
- f"{device.get('default_samplerate')}"
17
- )
12
+ # if device.get("max_output_channels"):
13
+ print(
14
+ f"Index: {str(device.get('index')).rjust(2)} "
15
+ f"Name: {device.get('name').ljust(30)} "
16
+ f"{device.get('default_samplerate')}"
17
+ )