Fix the wireless settings button for AirPCap devices in the
[obnox/wireshark/wip.git] / gtk / airpcap_gui_utils.h
1 /* airpcap_utils.h
2  * Declarations of utility routines for the "Airpcap" dialog widgets
3  *
4  * $Id$
5  *
6  * Giorgio Tino <giorgio.tino@cacetech.com>
7  * Copyright (c) CACE Technologies, LLC 2006
8  *
9  * Wireshark - Network traffic analyzer
10  * By Gerald Combs <gerald@wireshark.org>
11  * Copyright 1998 Gerald Combs
12  *
13  * This program is free software; you can redistribute it and/or
14  * modify it under the terms of the GNU General Public License
15  * as published by the Free Software Foundation; either version 2
16  * of the License, or (at your option) any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program; if not, write to the Free Software
25  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
26  */
27
28 #ifndef __AIRPCAP_GUI_UTILS_H__
29 #define __AIRPCAP_GUI_UTILS_H__
30
31 #define AIRPCAP_VALIDATION_TYPE_NAME_ALL     "All Frames"
32 #define AIRPCAP_VALIDATION_TYPE_NAME_CORRECT "Valid Frames"
33 #define AIRPCAP_VALIDATION_TYPE_NAME_CORRUPT "Invalid Frames"
34 #define AIRPCAP_VALIDATION_TYPE_NAME_UNKNOWN         "Unknown"
35
36 #define AIRPCAP_LINK_TYPE_NAME_802_11_ONLY                      "802.11 Only"
37 #define AIRPCAP_LINK_TYPE_NAME_802_11_PLUS_RADIO        "802.11 + Radio"
38 #define AIRPCAP_LINK_TYPE_NAME_802_11_PLUS_PPI          "802.11 + PPI"
39 #define AIRPCAP_LINK_TYPE_NAME_UNKNOWN                          "Unknown"
40
41 #define AIRPCAP_LINK_TYPE_NUM_802_11_ONLY                       0
42 #define AIRPCAP_LINK_TYPE_NUM_802_11_PLUS_RADIO 1
43 #define AIRPCAP_LINK_TYPE_NUM_802_11_PLUS_PPI           2
44
45 #define AIRPCAP_DECRYPTION_TYPE_STRING_WIRESHARK "Wireshark"
46 #define AIRPCAP_DECRYPTION_TYPE_STRING_AIRPCAP   "Driver"
47 #define AIRPCAP_DECRYPTION_TYPE_STRING_NONE      "None"
48
49 #define NO_ROW_SELECTED -1
50
51 /* Key list columns */
52 enum {
53   KL_COL_TYPE,
54   KL_COL_KEY,
55   KL_COL_SSID,
56   KL_NUM_COLS
57 };
58
59 /* Controls the releay of settings back to the adapter. */
60 extern gboolean change_airpcap_settings;
61
62 /*
63  * set up the airpcap toolbar for the new capture interface
64  */
65 void
66 airpcap_set_toolbar_start_capture(airpcap_if_info_t* if_info);
67
68 /*
69  * Set up the airpcap toolbar for the new capture interface
70  */
71 void
72 airpcap_set_toolbar_stop_capture(airpcap_if_info_t* if_info);
73
74 /*
75  * Add a key (string) to the given list
76  */
77 void
78 airpcap_add_key_to_list(GtkListStore *key_list_store, gchar* type, gchar* key, gchar* ssid);
79
80 /*
81  * Fill the list with the keys
82  */
83 void
84 airpcap_fill_key_list(GtkListStore *key_list_store);
85
86 /*
87  * Function used to retrieve the AirpcapValidationType given the string name.
88  */
89 AirpcapValidationType
90 airpcap_get_validation_type(const gchar* name);
91
92 /*
93  * Function used to retrieve the string name given an AirpcapValidationType.
94  */
95 gchar*
96 airpcap_get_validation_name(AirpcapValidationType vt);
97
98 /*
99  * Return an appropriate combo box entry number for the given an AirpcapValidationType.
100  */
101 gint
102 airpcap_get_validation_combo_entry(AirpcapValidationType vt);
103
104 /*
105  * Returns the AirpcapLinkType corresponding to the given string name.
106  */
107 AirpcapLinkType
108 airpcap_get_link_type(const gchar* name);
109
110 /*
111  * Returns the string name corresponding to the given AirpcapLinkType.
112  */
113 gchar*
114 airpcap_get_link_name(AirpcapLinkType lt);
115
116 /*
117  * Sets the entry of the validation combo using the AirpcapValidationType.
118  */
119 void
120 airpcap_validation_type_combo_set_by_type(GtkWidget* c,AirpcapValidationType type);
121
122 /*
123  * Update channel offset combo box to 'offset'.
124  */
125 void
126 airpcap_update_channel_offset_combo(airpcap_if_info_t* if_info, guint32 ch_freq, GtkWidget *channel_offset_cb, gboolean set);
127
128
129 /*
130  * Retrieve the guint corresponding to the given string (channel only, handle with care!)
131  */
132 gchar*
133 airpcap_get_channel_name(guint n);
134
135 /*
136  * Set the combo box entry string given an guint channel number
137  */
138 void
139 airpcap_channel_combo_set_by_frequency(GtkWidget* w,guint channel);
140
141 /** Respond to the user changing the channel combo box.
142  * Update the active interface channel and update the offset
143  * combo box.
144  * Requires AirPcap globals.
145  *
146  * @param channel_cb The channel GtkComboBox
147  * @param channel_offset_cb The channel offset GtkComboBox
148  */
149 void
150 airpcap_channel_changed_set_cb(GtkWidget *channel_cb, gpointer channel_offset_cb);
151
152 /** Respond to the user changing the channel combo box.
153  * Update the offset combo box but not the channel.
154  * Requires AirPcap globals.
155  *
156  * @param channel_cb The channel GtkComboBox
157  * @param channel_offset_cb The channel offset GtkComboBox
158  */
159 void
160 airpcap_channel_changed_noset_cb(GtkWidget *channel_cb, gpointer channel_offset_cb);
161
162 /** Respond to the user changing the channel offset combo box.
163  * Update the active interface channel offset.
164  * Requires AirPcap globals.
165  *
166  * @param channel_offset_cb The channel offset GtkComboBox
167  * @param data Unused
168  */
169 void
170 airpcap_channel_offset_changed_cb(GtkWidget *channel_offset_cb, gpointer data);
171
172 /*
173  * Returns '1' if this is the "Any" adapter, '0' otherwise
174  */
175 int
176 airpcap_if_is_any(airpcap_if_info_t* if_info);
177
178 /*
179  * Update channel combo box. If the airpcap interface is "Any", the combo box will be disabled.
180  */
181 void
182 airpcap_update_channel_combo(GtkWidget* channel_cb, airpcap_if_info_t* if_info);
183
184 /*
185  * This function will take the current keys (widget list), specified for the
186  * current adapter, and save them as default for ALL the others.
187  */
188 void
189 airpcap_read_and_save_decryption_keys_from_list_store(GtkListStore* key_list_store, airpcap_if_info_t* info_if, GList* if_list);
190
191 /*
192  * This function will load from the preferences file ALL the
193  * keys (WEP, WPA and WPA_BIN) and will set them as default for
194  * each adapter. To do this, it will save the keys in the registry...
195  */
196 void
197 airpcap_load_decryption_keys(GList* if_list);
198
199 /*
200  * This function will load from the preferences file ALL the
201  * keys (WEP, WPA and WPA_BIN) and will set them as default for
202  * each adapter. To do this, it will save the keys in the registry...
203  */
204 gboolean
205 airpcap_check_decryption_keys(GList* if_list);
206
207 /*
208  * This function will set the gibven GList of decryption_key_t structures
209  * as the defoult for both Wireshark and the AirPcap adapters...
210  */
211 void
212 airpcap_save_decryption_keys(GList* key_list, GList* adapters_list);
213
214 /*
215  * This function is used to enable/disable the toolbar widgets
216  * depending on the type of interface selected...
217  */
218 void
219 airpcap_enable_toolbar_widgets(GtkWidget* w, gboolean en);
220
221 #endif