[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master cb32122 13/76: (enwc-nm-prop-to-prop, enwc-wicd-prop-to-pr
From: |
Ian Dunn |
Subject: |
[elpa] master cb32122 13/76: (enwc-nm-prop-to-prop, enwc-wicd-prop-to-prop): Convert the properties used internally to the property names used externally. |
Date: |
Thu, 23 Feb 2017 19:42:45 -0500 (EST) |
branch: master
commit cb321220de2ab88f4fe13bb7049878aaab7348e1
Author: Ian D <address@hidden>
Commit: Ian D <address@hidden>
(enwc-nm-prop-to-prop, enwc-wicd-prop-to-prop): Convert the properties used
internally to the property names used externally.
(enwc-nm-get-wireless-nw-props, enwc-wicd-build-prop-list): Uses the
external property names for the returned assocative list.
(enwc-nm-get-wireless-nw-props, enwc-wicd-get-wireless-nw-props): Get the
encryption type in the back-ends instead of the front-end.
(enwc-setup-backend): No longer initializes enwc-details-list.
(enwc-wicd-get-current-nw-id): Uses the actual d-bus functions instead of
tracking the network id internally.
(enwc-details-list): Initialized in the front-end.
(enwc-str-width): Changed to enwc-strength-width.
(enwc-chnl-width): Changed to enwc-channel-width.
(enwc-detail-to-ident): Removed.
(enwc-format-mode-line-string): Only calls the functions to check for a
pending or wired connection once.
(enwc-enable-display-mode-line, enwc-disable-display-mode-line,
enwc-toggle-auto-scan): Displays a message when finished.
(enwc-process-scan, enwc-display-wireless-networks): Sets the width of each
display column
(enwc-process-scan): Redisplays the network list even when non-interactive.
---
lisp/enwc-nm.el | 29 ++++++++++++--
lisp/enwc-setup.el | 3 --
lisp/enwc-wicd.el | 40 +++++++++++++++-----
lisp/enwc.el | 109 +++++++++++++++++++++++++----------------------------
4 files changed, 106 insertions(+), 75 deletions(-)
diff --git a/lisp/enwc-nm.el b/lisp/enwc-nm.el
index 20b3d16..32a9245 100644
--- a/lisp/enwc-nm.el
+++ b/lisp/enwc-nm.el
@@ -299,7 +299,18 @@ PROP from that access point. It also sets the channel
from the
((= ret 2) "Infrastructure"))))
ret))
+(defun enwc-nm-prop-to-prop (prop)
+ "Converts a NetworkManager property to an ENWC network property."
+ (cond
+ ((equal prop "Ssid") "essid")
+ ((equal prop "HwAddres") "bssid")
+ ((equal prop "Strength") "strength")
+ ((equal prop "Flags") "encrypt")
+ ((equal prop "Mode") "mode")
+ ((equal prop "Channel") "channel")))
+
(defun enwc-nm-get-wireless-nw-props (id)
+ "Gets the network properties for the network with id ID."
(let ((ap (nth id enwc-access-points))
tmp-val
ret)
@@ -310,14 +321,25 @@ PROP from that access point. It also sets the channel
from the
(setq tmp-val (cdr (assoc "Mode" ret)))
(setcdr (assoc "Frequency" ret)
(number-to-string (1+ (/ (- (cdr (assoc "Frequency" ret))
- 2412) 5))))
+ 2412)
+ 5))))
(setcdr (assoc "Ssid" ret)
(dbus-byte-array-to-string (cdr (assoc "Ssid" ret))))
(setcdr (assoc "Mode" ret)
(cond ((= tmp-val 0) "Unkown")
((= tmp-val 1) "Ad-Hoc")
((= tmp-val 2) "Infrastructure")))
- ret))
+ (let ((enc-type (enwc-nm-get-encryption-type id)))
+ (setcdr (assoc "Flags" ret)
+ (if enc-type
+ enc-type
+ "Unsecured")))
+ (mapcar
+ (lambda (x)
+ (cons (enwc-nm-prop-to-prop (car x))
+ (cdr x)))
+ ret)))
+ ;;ret))
(defun enwc-nm-get-conn-by-nid (nid)
"Gets a connection object with the network id NID."
@@ -901,8 +923,7 @@ and SETTINGS is the list of settings."
enwc-nm-dbus-path
enwc-nm-dbus-interface
"StateChanged"
- 'enwc-nm-prop-changed)
- )
+ 'enwc-nm-prop-changed))
(provide 'enwc-nm)
diff --git a/lisp/enwc-setup.el b/lisp/enwc-setup.el
index 2dc9f16..52f0a64 100644
--- a/lisp/enwc-setup.el
+++ b/lisp/enwc-setup.el
@@ -42,9 +42,6 @@
enwc-get-wireless-nw-props-func (intern (concat "enwc-"
sym-name
"-get-wireless-nw-props"))
- enwc-details-list (symbol-value (intern (concat "enwc-"
- sym-name
- "-details-list")))
enwc-get-encryption-type-func (intern (concat "enwc-"
sym-name
"-get-encryption-type"))
diff --git a/lisp/enwc-wicd.el b/lisp/enwc-wicd.el
index b6db670..377987b 100644
--- a/lisp/enwc-wicd.el
+++ b/lisp/enwc-wicd.el
@@ -107,6 +107,16 @@ and appends the value to `enwc-wicd-prop-values'."
(setq enwc-wicd-prop-values (cons (cons prop (car args))
enwc-wicd-prop-values))
(setq enwc-wicd-prop-num (1+ enwc-wicd-prop-num)))
+(defun enwc-wicd-prop-to-prop (prop)
+ "Converts a Wicd network property to an ENWC network property."
+ (cond
+ ((equal prop "essid") "essid")
+ ((equal prop "bssid") "bssid")
+ ((equal prop "quality") "strength")
+ ((equal prop "encryption") "encrypt")
+ ((equal prop "mode") "mode")
+ ((equal prop "channel") "channel")))
+
(defun enwc-wicd-get-wireless-network-property (id prop)
"Wicd get wireless network property function.
This calls the D-Bus method on Wicd to get the property PROP
@@ -126,12 +136,14 @@ from wireless network with id ID."
(act-det-list (reverse det-list)))
(while act-det-list
(let* ((cur-det (pop act-det-list))
- (cur-prop (assoc cur-det prop-list)))
+ (cur-prop (assoc cur-det prop-list))
+ (act-det (enwc-wicd-prop-to-prop cur-det)))
(setq ret
- (if cur-prop
- (cons cur-prop ret)
- (cons (cons cur-det nil) nil)))
- ))
+ (cons (cons act-det
+ (if cur-prop
+ (cdr cur-prop)
+ nil))
+ ret))))
ret))
(defun enwc-wicd-get-wireless-nw-props (id)
@@ -149,6 +161,14 @@ For a list of properties, see `enwc-wicd-details-list'."
(while (< enwc-wicd-prop-num 6)
(read-event nil nil 0.001)))
+ (if (assoc "encryption" enwc-wicd-prop-values)
+ (let ((enc-type (enwc-wicd-get-encryption-type id)))
+ (setcdr (assoc "encryption" enwc-wicd-prop-values)
+ (or enc-type "Unsecured")))
+ (setq enwc-wicd-prop-values
+ (cons (cons "encryption" "Unsecured")
+ enwc-wicd-prop-values)))
+
(enwc-wicd-build-prop-list enwc-wicd-prop-values enwc-wicd-details-list))
(defun enwc-wicd-get-encryption-type (id)
@@ -166,11 +186,12 @@ network with id ID."
(defun enwc-wicd-get-current-nw-id (wired)
"Wicd get current network id function.
-This calls the D-Bus method on Wicd to get the current
-wireless network id."
+The current network id is updated upon connect,
+so this jut returns the tracked network id."
(if wired
-1
- enwc-wicd-current-nw-id))
+ (enwc-wicd-dbus-wireless-call-method "GetCurrentNetworkID")))
+ ;;enwc-wicd-current-nw-id))
(defun enwc-wicd-check-connecting ()
"The Wicd check connecting function."
@@ -327,8 +348,7 @@ the network with id ID."
(enwc-wicd-get-sec-types wired))))))
(enwc-wicd-set-nw-prop wired id (car x)
(cdr (assoc (car x) settings)))))
- (enwc-wicd-save-nw-profile wired id))
- )
+ (enwc-wicd-save-nw-profile wired id)))
(defun enwc-wicd-wireless-prop-changed (state info)
(if state
diff --git a/lisp/enwc.el b/lisp/enwc.el
index 6b94115..8787021 100644
--- a/lisp/enwc.el
+++ b/lisp/enwc.el
@@ -25,7 +25,8 @@
;; connect
;; disconnect
;; scan
-;; get-prop
+;; get-network-prop
+;; get-profile-prop
;; save-profile
;; get-networks
;; check-connecting
@@ -206,7 +207,8 @@ the DNS Server Addresses for a given network.")
This is redefined during setup to be the function to save
the network settings of a given network.")
-(defvar enwc-details-list nil
+(defvar enwc-details-list
+ '("essid" "bssid" "strength" "mode" "encrypt" "channel")
"The network details list.
This is redefined during setup to be the details list
@@ -232,7 +234,7 @@ These correspond to the details in `enwc-details-list'.")
(defvar enwc-id-width 3
"The width of the id column.")
-(defvar enwc-str-width 5
+(defvar enwc-strength-width 5
"The width of the strength column.")
(defvar enwc-essid-width 5
"The initial width of the essid column.
@@ -243,7 +245,7 @@ This is reset in wicd-scan-internal.")
"The width of the bssid column.")
(defvar enwc-mode-width 16
"The width of the mode column.")
-(defvar enwc-chnl-width 3
+(defvar enwc-channel-width 3
"The width of the channel column.")
(defvar enwc-last-scan nil
@@ -291,21 +293,6 @@ This is only used internally.")
"The face for the connected network."
:group 'enwc)
-
-;; Small helper function.
-
-(defun enwc-detail-to-ident (detail)
- "Converts network detail DETAIL to a constant identifier.
-This function is used to synchronize the different backends
-to display consistent results."
- (case (intern detail)
- ((essid Ssid) "essid")
- ((bssid HwAddress) "bssid")
- ((quality Strength) "quality")
- ((encryption Flags) "encryption")
- ((mode Mode) "mode")
- ((channel Frequency) "channel")))
-
;;;;;;;;;;;;;;;;;;;;
;; ENWC functions
;;;;;;;;;;;;;;;;;;;;
@@ -451,10 +438,12 @@ See the documentation for it for more details."
(p 0)
(l (length f))
(cur-id (enwc-get-current-nw-id))
+ (wiredp (enwc-is-wired-p))
+ (connectingp (enwc-check-connecting-p))
c fin-str)
(while (< p l)
- (setq c (elt f p))
- (setq p (1+ p))
+ (setq c (elt f p)
+ p (1+ p))
(setq fin-str
(concat
fin-str
@@ -464,24 +453,24 @@ See the documentation for it for more details."
(cond
((eq (elt f (1- p)) ?s)
(cond
- ((enwc-is-wired-p) "100")
+ (wiredp "100")
((or (not (enwc-is-valid-nw-id cur-id))
(not enwc-last-scan))"0")
- ((enwc-check-connecting-p) "*")
+ (connectingp "*")
(t (number-to-string
- (cdr (assoc "quality" (nth cur-id enwc-last-scan)))))))
+ (cdr (assoc "strength" (nth cur-id enwc-last-scan)))))))
((eq (elt f (1- p)) ?e)
(cond
- ((enwc-is-wired-p) "Wired")
+ (wiredp "Wired")
((or (not (enwc-is-valid-nw-id cur-id))
- (enwc-check-connecting-p)
+ connectingp
(not enwc-last-scan)) "None")
(t (cdr (assoc "essid" (nth cur-id enwc-last-scan))))))
((eq (elt f (1- p)) ?b)
(cond
- ((enwc-is-wired-p) "wired")
+ (wiredp "wired")
((or (not (enwc-is-valid-nw-id cur-id))
- (enwc-check-connecting-p)
+ connectingp
(not enwc-last-scan)) "none")
(t (cdr (assoc "bssid" (nth cur-id enwc-last-scan))))))
((eq (elt f (1- p)) ?%) "%"))))))
@@ -504,7 +493,8 @@ This is initiated during setup, and runs once every second."
(setq global-mode-string (append global-mode-string
'(enwc-display-string))))
(if (not enwc-display-mode-line-timer)
(setq enwc-display-mode-line-timer
- (run-at-time t 1 'enwc-update-mode-line))))
+ (run-at-time t 1 'enwc-update-mode-line)))
+ (message "ENWC mode line enabled"))
(defun enwc-disable-display-mode-line ()
"Disables the mode line display."
@@ -514,7 +504,8 @@ This is initiated during setup, and runs once every second."
(setq global-mode-string (remove 'enwc-display-string global-mode-string))
(if enwc-display-mode-line-timer
(cancel-timer enwc-display-mode-line-timer))
- (setq enwc-display-mode-line-timer nil))
+ (setq enwc-display-mode-line-timer nil)
+ (message "ENWC mode line disabled"))
(defun enwc-toggle-display-mode-line ()
"Toggles the mode line display."
@@ -529,9 +520,11 @@ This will use the current value of
`enwc-auto-scan-interval'."
(interactive)
(let ((new (not enwc-auto-scan)))
(if new
- (setq enwc-scan-timer
- (run-at-time t enwc-auto-scan-interval 'enwc-scan t))
- (cancel-timer enwc-scan-timer))
+ (progn (setq enwc-scan-timer
+ (run-at-time t enwc-auto-scan-interval 'enwc-scan t))
+ (message "Auto-scan enabled"))
+ (cancel-timer enwc-scan-timer)
+ (message "Auto scan disabled"))
(setq enwc-auto-scan new)))
;;;;;;;;;;;;;;;;;;
@@ -562,8 +555,10 @@ the scan results."
(nw-prop-list nil))
(if enwc-scan-interactive
(message "Scanning... Done"))
- (setq enwc-access-points (enwc-get-nw)
- enwc-essid-width 5)
+ (setq enwc-access-points (enwc-get-nw))
+ (dolist (det enwc-details-list)
+ (set (intern (concat "enwc-" det "-width"))
+ 1))
(setq nw-prop-list
(mapcar 'enwc-get-wireless-nw-props
(number-sequence 0 (1- (length enwc-access-points)))))
@@ -573,20 +568,18 @@ the scan results."
(prop-list (pop nw-prop-list)))
(setq cur-id (1+ cur-id))
(dolist (det enwc-details-list)
- (let ((cur-item (cdr (assoc det prop-list)))
- (ident (enwc-detail-to-ident det))
- pos-len)
- (if (string= ident "essid")
- (progn
- (setq pos-len (length cur-item))
- (setq enwc-essid-width
- (max enwc-essid-width
- pos-len))))
- (if (string= ident "encryption")
- (setq cur-item
- (if cur-item
- (enwc-get-encryption-type x)
- "Unsecured")))
+ (let* ((cur-item (cdr (assoc det prop-list)))
+ (ident det)
+ (width-name (concat "enwc-"
+ ident
+ "-width"))
+ (cur-width (eval (intern width-name)))
+ (pos-len (if (and cur-item
+ (not (equal ident
"strength")))
+ (length cur-item)
+ 0)))
+ (set (intern width-name)
+ (max cur-width pos-len))
(setq ret-itm (append ret-itm
(cons (cons ident
cur-item)
@@ -595,8 +588,8 @@ the scan results."
(number-sequence 0 (1- (length enwc-access-points))))))
(setq enwc-essid-width (1+ enwc-essid-width))
(setq enwc-scan-done t)
- (if enwc-scan-interactive
- (enwc-display-wireless-networks enwc-last-scan))
+ ;;(if enwc-scan-interactive
+ (enwc-display-wireless-networks enwc-last-scan);;)
(setq enwc-scan-interactive nil)))
(defun enwc-scan-internal-wired ()
@@ -668,13 +661,13 @@ NETWORKS must be in the format returned by
(pos 0))
(setq tabulated-list-format
- (vector '("ID" 2)
+ (vector `("ID" ,enwc-id-width)
'("STR" 4)
`("ESSID" ,enwc-essid-width)
- '("ENCRYPT" 9)
- '("BSSID" 17)
- '("MODE" 15)
- '("CHNL" 2))))
+ `("ENCRYPT" ,enwc-encrypt-width)
+ `("BSSID" ,enwc-bssid-width)
+ `("MODE" ,enwc-mode-width)
+ `("CHNL" ,enwc-channel-width))))
(dolist (nw networks)
(let ((id (cdr (assoc "id" nw)))
@@ -683,10 +676,10 @@ NETWORKS must be in the format returned by
(vector
(enwc-maybe-pretty-entry (number-to-string (cdr
(assoc "id" nw))))
(enwc-maybe-pretty-entry
- (concat (number-to-string (cdr (assoc "quality"
nw)))
+ (concat (number-to-string (cdr (assoc "strength"
nw)))
"%"))
(enwc-maybe-pretty-entry (cdr (assoc "essid" nw)))
- (enwc-maybe-pretty-entry (cdr (assoc "encryption"
nw)))
+ (enwc-maybe-pretty-entry (cdr (assoc "encrypt"
nw)))
(enwc-maybe-pretty-entry (cdr (assoc "bssid" nw)))
(enwc-maybe-pretty-entry (cdr (assoc "mode" nw)))
(enwc-maybe-pretty-entry (cdr (assoc "channel"
nw))))))
- [elpa] master 421b0d9 35/76: (enwc-wicd-setup): Renamed to `enwc-wicd-load'., (continued)
- [elpa] master 421b0d9 35/76: (enwc-wicd-setup): Renamed to `enwc-wicd-load'., Ian Dunn, 2017/02/23
- [elpa] master 7a3c057 03/76: Added support for toggling the mode line display., Ian Dunn, 2017/02/23
- [elpa] master b5e612f 04/76: * enwc.el (enwc-display-networks, enwc-maybe-pretty-entry): Added support for colorizing the current network., Ian Dunn, 2017/02/23
- [elpa] master 89f9418 08/76: enwc.el (enwc-display-wireless-networks): Removed old comment., Ian Dunn, 2017/02/23
- [elpa] master d6aa3ee 02/76: Fixed up enwc-wicd network properties., Ian Dunn, 2017/02/23
- [elpa] master f77237c 12/76: (enwc-format-mode-line-string): Checks to confirm that scan data exists., Ian Dunn, 2017/02/23
- [elpa] master 3662795 23/76: (enwc-cm-scan, enwc-cm-dict-assoc, enwc-cm-get-network-props): Cleaned up code., Ian Dunn, 2017/02/23
- [elpa] master 01075fa 28/76: Fixed up docstrings., Ian Dunn, 2017/02/23
- [elpa] master 11443eb 34/76: enwc-setup.el: Fixed up header and footer., Ian Dunn, 2017/02/23
- [elpa] master 561f9e1 27/76: (enwc-wicd-get-profile-info, enwc-wicd-get-profile-sec-info): Improved docstring., Ian Dunn, 2017/02/23
- [elpa] master cb32122 13/76: (enwc-nm-prop-to-prop, enwc-wicd-prop-to-prop): Convert the properties used internally to the property names used externally.,
Ian Dunn <=
- [elpa] master d6bee52 32/76: (enwc-wicd.el): Fixed opening header., Ian Dunn, 2017/02/23
- [elpa] master 5088938 40/76: Removed erroneous comment., Ian Dunn, 2017/02/23
- [elpa] master 17f27c6 18/76: (enwc-nm-prop-to-prop, enwc-nm-get-sec-types): Removed., Ian Dunn, 2017/02/23
- [elpa] master ee90297 31/76: (enwc-nm.el): Fixed several docstrings, and file header., Ian Dunn, 2017/02/23
- [elpa] master 4e0d5a2 41/76: Cosmetic changes., Ian Dunn, 2017/02/23
- [elpa] master 8f21449 45/76: Removed tag 2.0, Ian Dunn, 2017/02/23
- [elpa] master ec0539b 42/76: Fixed enwc-setup to be able to be called more than once., Ian Dunn, 2017/02/23
- [elpa] master 5c63470 48/76: Fixed autoloads generation and added hgignore., Ian Dunn, 2017/02/23
- [elpa] master 43c98da 50/76: Changed enwc-last-scan to a hashtable., Ian Dunn, 2017/02/23
- [elpa] master c6585bb 47/76: Added autoloads, Ian Dunn, 2017/02/23