AmendHub

Download

jcs

/

wifi_da

/

wi-fi.h

 

(View History)

jcs   window+Rez: Use an off-screen static text field for password storage Latest amendment: 25 on 2024-01-27

1 /*
2 * Copyright (c) 2023 joshua stein <jcs@jcs.org>
3 *
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
16
17 #ifndef __WIFI_H__
18 #define __WIFI_H__
19
20 #include <stdlib.h>
21 #include "util.h"
22
23 /* disable in production */
24 //#define DEBUG_LOGGING 1
25
26 #define MAIN_MENU_ID 1
27 #define MAIN_MENU_ABOUT_ID 1
28 #define MAIN_MENU_QUIT_ID 3
29
30 #define ERROR_DIALOG_ID 0
31
32 #define PASSWORD_DIALOG_ID 1
33 #define PASSWORD_DIALOG_PASSWORD_FIELD_ID 3
34 #define PASSWORD_DIALOG_PASSWORD_STORAGE_ID 4
35
36 #define ABOUT_DIALOG_ID 2
37
38 #define BLUESCSI_NETWORK_WIFI_CMD 0x1c
39 #define BLUESCSI_NETWORK_WIFI_CMD_SCAN 0x01
40 #define BLUESCSI_NETWORK_WIFI_CMD_COMPLETE 0x02
41 #define BLUESCSI_NETWORK_WIFI_CMD_SCAN_RESULTS 0x03
42 #define BLUESCSI_NETWORK_WIFI_CMD_INFO 0x04
43 #define BLUESCSI_NETWORK_WIFI_CMD_JOIN 0x05
44
45 #define hiword(x) (((short *)&(x))[0])
46 #define loword(x) (((short *)&(x))[1])
47
48 typedef short SICN[16];
49 typedef SICN **SICNHandle;
50
51 enum state {
52 STATE_CLOSED,
53 STATE_INIT,
54 STATE_FINDING,
55 STATE_SCANNING,
56 STATE_IDLE
57 };
58 extern short da_state;
59
60 enum signal_icon_id {
61 SIGNAL_NO_DEVICE = 0,
62 SIGNAL_FINDING_DEVICE = 1,
63 SIGNAL_NONE = 2,
64 SIGNAL_1 = 3,
65 SIGNAL_2 = 4,
66 SIGNAL_3 = 5,
67 SIGNAL_4 = 6
68 };
69
70 struct wifi_network_entry {
71 char ssid[64];
72 unsigned char bssid[6];
73 char rssi;
74 unsigned char channel;
75 unsigned char flags;
76 #define WIFI_NETWORK_FLAG_AUTH 0x1
77 char _padding;
78 };
79
80 struct wifi_join_request {
81 char ssid[64];
82 char key[64];
83 unsigned char channel;
84 unsigned char _padding;
85 };
86
87 extern WindowPtr win;
88 extern DCtlPtr dce;
89
90 extern short wifi_scsi_id;
91 enum {
92 WIFI_SCSI_ID_FINDING = -1,
93 WIFI_SCSI_ID_NONE = -2
94 };
95 extern unsigned long wifi_scan_started;
96 extern struct wifi_network_entry wifi_cur_info;
97 extern struct wifi_network_entry wifi_scan_networks[10];
98 extern short nwifi_scan_networks;
99 extern Cursor watch;
100
101 void wifi_about(void);
102
103 #if DEBUG_LOGGING
104 #define DEBUG_LOG(args) logger_printf args
105 void logger_printf(const char *format, ...);
106 #else
107 #define DEBUG_LOG(args) ((void)0)
108 #endif
109
110 WindowPtr create_window(short ctlrefnum);
111 void update_window(bool force);
112 void update_wifi_cur_info(void);
113 void update_wifi_ssid_list(bool update_networks);
114 void destroy_window(void);
115 void activate_window(bool activate);
116 void window_mousedown(Point p);
117
118 short scsi_find_wifi(void);
119 bool scsi_wifi_scan(short lun);
120 bool scsi_wifi_scan_finished(short lun);
121 bool scsi_wifi_info(short lun, struct wifi_network_entry *resp);
122 short scsi_wifi_scan_results(short scsi_id,
123 struct wifi_network_entry *resp, short count);
124 bool scsi_wifi_join(short scsi_id, struct wifi_join_request *wjr);
125
126 #endif