[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacspeak-pobox.el



 南谷です。
 以前、「emacspeakをIpaqで動かしたい」という話がありましたが、こ
れからのハードウェア、インプットデバイスの多様化に備えてpobox.el
を読み上げるemacspeak-pobox.elを書いてみました。(というのは、半分
ジョークで本当は私がPOBoxを体験してみたかったというだけの話です。)
機能としては
 選択されている候補の詳細読み
 pobox-modeのon/off
 ctrl-gによる無変換確定時に「無変換」という
  ((dtkspeak "無変換")というコードは問題かも)
 pobox-search-serverでreplace-stringを呼ぶので、bepが置換の結果を
  読み上げようとするのを抑止
です。実用性はともかく、少し遊べるかもしれません。
pobox.el自体がカーソルでの候補間移動などimで標準的な機能をサポー
トしていないみたいでちょっと使いづらいです。pobox.elはテスト実装
といったコンセプトなのでしょうか。
#しかし、作者は日常POBoxで入力しているそうなので、私の修行不足かも

下に付けておきますので、興味のある方は見てやって下さい。
M-x load-fileでロードすると有効になります。
そのうちcvsにも投げてみようかなあと思っています。

===File emacspeak-pobox.el================================
;;; emacspeak-pobox.el --- Speech enable POBox -- Fluent spoken access to POBox
;;; This file is not part of GNU Emacs, but the same permissions apply.
;;;
;;; GNU Emacs is free software; you can redistribute it and/or modify
;;; it under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 2, or (at your option)
;;; any later version.
;;;
;;; GNU Emacs is distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Emacs; see the file COPYING.  If not, write to
;;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

(require 'cl)
(declaim  (optimize  (safety 0) (speed 3)))
(require 'emacspeak-speak)

(require 'emacspeak-sounds)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(defadvice  pobox-set-curstr (after   emacspeak pre act )
  "read the  current candidate" 
  (dtk-speak 
   (emacspeak-jp-convert-string-to-phonetic str)))

(defadvice  pobox-ctrl-g (after   emacspeak pre act )
  "announce the non conversion"
  (dtk-speak "無変換"))


(defadvice pobox-search-server (around  emacspeak pre act )
  "avoiding speak the result of replace-string"
  (let ((emacspeak-speak-messages nil))
    ad-do-it))

(defadvice  pobox-mode (after   emacspeak pre act )
  "announce entering pobox-mode"
  (dtk-speak "POBox on"))

(defadvice pobox-finish (after   emacspeak pre act )
  "announce exiting pobox-mode"
  (dtk-speak "POBox off"))

(provide 'emacspeak-pobox)
============================================================