summaryrefslogtreecommitdiffstats
path: root/Mac/Demo/sound/morselib.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Demo/sound/morselib.py')
-rw-r--r--Mac/Demo/sound/morselib.py316
1 files changed, 158 insertions, 158 deletions
diff --git a/Mac/Demo/sound/morselib.py b/Mac/Demo/sound/morselib.py
index 6f8eed6..98e2590 100644
--- a/Mac/Demo/sound/morselib.py
+++ b/Mac/Demo/sound/morselib.py
@@ -10,179 +10,179 @@ DOT = 30
DAH = 80
morsetab = {
- 'a': '.-',
- 'b': '-...',
- 'c': '-.-.',
- 'd': '-..',
- 'e': '.',
- 'f': '..-.',
- 'g': '--.',
- 'h': '....',
- 'i': '..',
- 'j': '.---',
- 'k': '-.-',
- 'l': '.-..',
- 'm': '--',
- 'n': '-.',
- 'o': '---',
- 'p': '.--.',
- 'q': '--.-',
- 'r': '.-.',
- 's': '...',
- 't': '-',
- 'u': '..-',
- 'v': '...-',
- 'w': '.--',
- 'x': '-..-',
- 'y': '-.--',
- 'z': '--..',
- '0': '-----',
- '1': '.----',
- '2': '..---',
- '3': '...--',
- '4': '....-',
- '5': '.....',
- '6': '-....',
- '7': '--...',
- '8': '---..',
- '9': '----.',
- ',': '--..--',
- '.': '.-.-.-',
- '?': '..--..',
- ';': '-.-.-.',
- ':': '---...',
- "'": '.----.',
- '-': '-....-',
- '/': '-..-.',
- '(': '-.--.-',
- ')': '-.--.-', # XXX same as code for '(' ???
- '_': '..--.-',
- ' ': ' '
+ 'a': '.-',
+ 'b': '-...',
+ 'c': '-.-.',
+ 'd': '-..',
+ 'e': '.',
+ 'f': '..-.',
+ 'g': '--.',
+ 'h': '....',
+ 'i': '..',
+ 'j': '.---',
+ 'k': '-.-',
+ 'l': '.-..',
+ 'm': '--',
+ 'n': '-.',
+ 'o': '---',
+ 'p': '.--.',
+ 'q': '--.-',
+ 'r': '.-.',
+ 's': '...',
+ 't': '-',
+ 'u': '..-',
+ 'v': '...-',
+ 'w': '.--',
+ 'x': '-..-',
+ 'y': '-.--',
+ 'z': '--..',
+ '0': '-----',
+ '1': '.----',
+ '2': '..---',
+ '3': '...--',
+ '4': '....-',
+ '5': '.....',
+ '6': '-....',
+ '7': '--...',
+ '8': '---..',
+ '9': '----.',
+ ',': '--..--',
+ '.': '.-.-.-',
+ '?': '..--..',
+ ';': '-.-.-.',
+ ':': '---...',
+ "'": '.----.',
+ '-': '-....-',
+ '/': '-..-.',
+ '(': '-.--.-',
+ ')': '-.--.-', # XXX same as code for '(' ???
+ '_': '..--.-',
+ ' ': ' '
}
def morsecode(s):
- from string import lower
- m = ''
- for c in s:
- c = lower(c)
- if morsetab.has_key(c):
- c = morsetab[c] + ' '
- else:
- c = '? '
- m = m + c
- return m
+ from string import lower
+ m = ''
+ for c in s:
+ c = lower(c)
+ if morsetab.has_key(c):
+ c = morsetab[c] + ' '
+ else:
+ c = '? '
+ m = m + c
+ return m
class BaseMorse:
- "base class for morse transmissions"
-
- def __init__(self):
- "constructor"
- self.dots = DOT
- self.dahs = DAH
-
- def noise(self, duration):
- "beep for given duration"
- pass
-
- def pause(self, duration):
- "pause for given duration"
- pass
-
- def dot(self):
- "short beep"
- self.noise(self.dots)
-
- def dah(self):
- "long beep"
- self.noise(self.dahs)
-
- def pdot(self):
- "pause as long as a dot"
- self.pause(self.dots)
-
- def pdah(self):
- "pause as long as a dah"
- self.pause(self.dahs)
-
- def sendmorse(self, s):
- for c in s:
- if c == '.': self.dot()
- elif c == '-': self.dah()
- else: self.pdah()
- self.pdot()
-
- def sendascii(self, s):
- self.sendmorse(morsecode(s))
-
- def send(self, s):
- self.sendascii(s)
+ "base class for morse transmissions"
+
+ def __init__(self):
+ "constructor"
+ self.dots = DOT
+ self.dahs = DAH
+
+ def noise(self, duration):
+ "beep for given duration"
+ pass
+
+ def pause(self, duration):
+ "pause for given duration"
+ pass
+
+ def dot(self):
+ "short beep"
+ self.noise(self.dots)
+
+ def dah(self):
+ "long beep"
+ self.noise(self.dahs)
+
+ def pdot(self):
+ "pause as long as a dot"
+ self.pause(self.dots)
+
+ def pdah(self):
+ "pause as long as a dah"
+ self.pause(self.dahs)
+
+ def sendmorse(self, s):
+ for c in s:
+ if c == '.': self.dot()
+ elif c == '-': self.dah()
+ else: self.pdah()
+ self.pdot()
+
+ def sendascii(self, s):
+ self.sendmorse(morsecode(s))
+
+ def send(self, s):
+ self.sendascii(s)
import Audio_mac
class MyAudio(Audio_mac.Play_Audio_mac):
- def _callback(self, *args):
- if hasattr(self, 'usercallback'): self.usercallback()
- apply(Audio_mac.Play_Audio_mac._callback, (self,) + args)
+ def _callback(self, *args):
+ if hasattr(self, 'usercallback'): self.usercallback()
+ apply(Audio_mac.Play_Audio_mac._callback, (self,) + args)
class MacMorse(BaseMorse):
- "Mac specific class to play Morse code"
-
- def __init__(self):
- BaseMorse.__init__(self)
- self.dev = MyAudio()
- self.dev.setoutrate(FRAMERATE)
- self.dev.setsampwidth(SAMPWIDTH)
- self.dev.setnchannels(1)
- self.dev.usercallback = self.usercallback
- sinewave = ''
- n = int(FRAMERATE / BASEFREQ)
- octave = OCTAVE
- from math import sin, pi
- for i in range(n):
- val = int(sin(2 * pi * i * octave / n) * 0x7fff)
- sample = chr((val >> 8) & 255) + chr(val & 255)
- sinewave = sinewave + sample[:SAMPWIDTH]
- self.sinewave = sinewave
- self.silence = '\0' * (n*SAMPWIDTH)
- self.morsequeue = ''
-
- def __del__(self):
- self.close()
-
- def close(self):
- self.dev = None
-
- def pause(self, duration):
- self.dev.writeframes(self.silence * duration)
-
- def noise(self, duration):
- self.dev.writeframes(self.sinewave * duration)
-
- def sendmorse(self, s):
- self.morsequeue = self.morsequeue + s
- self.dev.usercallback()
- self.dev.usercallback()
- self.dev.usercallback()
-
- def usercallback(self):
- if self.morsequeue:
- c, self.morsequeue = self.morsequeue[0], self.morsequeue[1:]
- if c == '.': self.dot()
- elif c == '-': self.dah()
- else: self.pdah()
- self.pdot()
+ "Mac specific class to play Morse code"
+
+ def __init__(self):
+ BaseMorse.__init__(self)
+ self.dev = MyAudio()
+ self.dev.setoutrate(FRAMERATE)
+ self.dev.setsampwidth(SAMPWIDTH)
+ self.dev.setnchannels(1)
+ self.dev.usercallback = self.usercallback
+ sinewave = ''
+ n = int(FRAMERATE / BASEFREQ)
+ octave = OCTAVE
+ from math import sin, pi
+ for i in range(n):
+ val = int(sin(2 * pi * i * octave / n) * 0x7fff)
+ sample = chr((val >> 8) & 255) + chr(val & 255)
+ sinewave = sinewave + sample[:SAMPWIDTH]
+ self.sinewave = sinewave
+ self.silence = '\0' * (n*SAMPWIDTH)
+ self.morsequeue = ''
+
+ def __del__(self):
+ self.close()
+
+ def close(self):
+ self.dev = None
+
+ def pause(self, duration):
+ self.dev.writeframes(self.silence * duration)
+
+ def noise(self, duration):
+ self.dev.writeframes(self.sinewave * duration)
+
+ def sendmorse(self, s):
+ self.morsequeue = self.morsequeue + s
+ self.dev.usercallback()
+ self.dev.usercallback()
+ self.dev.usercallback()
+
+ def usercallback(self):
+ if self.morsequeue:
+ c, self.morsequeue = self.morsequeue[0], self.morsequeue[1:]
+ if c == '.': self.dot()
+ elif c == '-': self.dah()
+ else: self.pdah()
+ self.pdot()
def test():
- m = MacMorse()
- while 1:
- try:
- line = raw_input('Morse line: ')
- except (EOFError, KeyboardInterrupt):
- break
- m.send(line)
- while m.morsequeue: pass
+ m = MacMorse()
+ while 1:
+ try:
+ line = raw_input('Morse line: ')
+ except (EOFError, KeyboardInterrupt):
+ break
+ m.send(line)
+ while m.morsequeue: pass
test()