Example #1
0
def play_sound_file(path):
    fp = open(path, 'r')
    data = fp.read()
    fp.close()
    try:
        a = sunaudiodev.open('w')
    except sunaudiodev.error, msg:
        raise TestFailed, msg
def play_sound_file(path):
    fp = open(path, "r")
    data = fp.read()
    fp.close()
    try:
        a = sunaudiodev.open("w")
    except sunaudiodev.error, msg:
        raise TestFailed, msg
Example #3
0
 def writeframes(self, data):
     if not (self.inited_outrate and self.inited_width and self.inited_nchannels):
         raise error, 'params not specified'
     if not self.port:
         import sunaudiodev, SUNAUDIODEV
         self.port = sunaudiodev.open('w')
         info = self.port.getinfo()
         info.o_sample_rate = self.outrate
         info.o_channels = self.nchannels
         if self.sampwidth == 0:
             info.o_precision = 8
             self.o_encoding = SUNAUDIODEV.ENCODING_ULAW
         else:
             info.o_precision = 8 * self.sampwidth
             info.o_encoding = SUNAUDIODEV.ENCODING_LINEAR
             self.port.setinfo(info)
     if self.converter:
         data = self.converter(data)
     self.port.write(data)
Example #4
0
	def writeframes(self, data):
		if not (self.inited_outrate and self.inited_width and self.inited_nchannels):
			raise error, 'params not specified'
		if not self.port:
			import sunaudiodev, SUNAUDIODEV
			self.port = sunaudiodev.open('w')
			info = self.port.getinfo()
			info.o_sample_rate = self.outrate
			info.o_channels = self.nchannels
			if self.sampwidth == 0:
				info.o_precision = 8
				self.o_encoding = ENCODING_ULAW
			else:
				info.o_precision = 8 * self.sampwidth
				info.o_encoding = SUNAUDIODEV.ENCODING_LINEAR
			self.port.setinfo(info)
		if self.converter:
			data = self.converter(data)
		self.port.write(data)
Example #5
0
 def __initport(self):
     fmt = self.__format
     self.__port = sunaudiodev.open('w')
     if not fmt or not self.__framerate:
         return
     info = self.__port.getinfo()
     info.o_sample_rate = self.__framerate
     info.o_channels = fmt.getnchannels()
     if fmt.getencoding() == 'u-law':
         info.o_encoding = SUNAUDIODEV.ENCODING_ULAW
         info.o_precision = 8
     else:
         info.o_precision = (fmt.getbps() + 7) & ~7
         info.o_encoding = SUNAUDIODEV.ENCODING_LINEAR
     try:
         self.__port.setinfo(info)
     except sunaudiodev.error:
         if fmt.getencoding() != 'u-law' or \
            self.__framerate != 8000:
             raise Error, 'unsupported format'
Example #6
0
def doit(hn):

    # open the sun audio stuff

    s = sunaudiodev.open('w')

    sock1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock2 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    sock2.bind('', 9110)

    # the 44 and 6 are octal that  correspond to 9222 in net byte order
    initstring = 'Cyber Radio 1' + '\000' + '\44' + '\6'
    username = '******'
    while (len(username) < 20):
        username = username + '\000'

    hostname = 'toulouse'
    while (len(hostname) < 30):
        hostname = hostname + '\000'

    domainname = 'cc.gatech.edu'
    while (len(domainname) < 30):
        domainname = domainname + '\000'

    initstring = initstring + username + hostname + domainname
    # 3 corresponds to REQUEST
    initstring = initstring + '\003'

    sock1.sendto(initstring, (hn, 19222))

    count = 0
    while (1):
        (aupack, hostadd) = sock2.recvfrom(1400)
        s.write(aupack[26:])
        count = count + 1
        if (count > 123):
            sock1.sendto(initstring, (hn, 19222))
            count = 0
Example #7
0
"""Classes for manipulating audio devices (currently only for Sun and SGI)"""
Example #8
0
"""Classes for manipulating audio devices (currently only for Sun and SGI)"""
Example #9
0
class AudioDevSUN:
    # default supported formats and frame rates
    __formats = (ulaw_mono,
                 ulaw_stereo,
                 linear_16_mono_big,
                 linear_16_stereo_big)
    __rates = (8000, 11025, 16000, 22050, 32000, 44100, 48000)

    # see if we can determine whether we have to restrict ourselves
    try:
        __port = sunaudiodev.open('w')
    except sunaudiodev.error:
        # can't open device, so keep the default
        pass
    else:
        # try if hardware supports CD quality
        __info = __port.getinfo()
        __info.o_sample_rate = 44100
        __info.o_channels = 2
        __info.o_encoding = SUNAUDIODEV.ENCODING_LINEAR
        __info.o_precision = 16
        try:
            __port.setinfo(__info)
        except sunaudiodev.error:
            # CD quality not supported, use phone quality
            __formats = (ulaw_mono,)
            __rates = (8000,)
        # cleanup
        __port.close()
        del __port, __info

    def __init__(self, fmt = None, qsize = None):
        self.__format = None
        self.__port = None
        self.__framerate = 0
        if fmt:
            self.setformat(fmt)

    def __del__(self):
        self.stop()

    def getformats(self):
        return self.__formats

    def getframerates(self):
        return self.__rates

    def setformat(self, fmt):
        if fmt not in self.__formats:
            raise Error, 'bad format'
        self.__format = fmt

    def getformat(self):
        return self.__format

    def setframerate(self, rate):
        if rate not in self.__rates:
            raise Error, 'bad output rate'
        self.__framerate = rate

    def getframerate(self):
        return self.__framerate

    def writeframes(self, data):
        if not self.__format or not self.__framerate:
            raise Error, 'params not specified'
        if not self.__port:
            self.__initport()
        self.__port.write(data)

    def wait(self):
        if not self.__port:
            return
        self.__port.drain()
        self.stop()

    def stop(self):
        port = self.__port
        if port:
            port.flush()
            port.close()
            self.__port = None

    def getfilled(self):
        if self.__port:
            return self.__port.obufcount()
        else:
            return 0

    def getfillable(self):
        inited = 0
        if not self.__port:
            self.__initport()
            inited = 1
        port = self.__port
        info = port.getinfo()
        fact = info.o_precision * info.o_channels / 8
        val = info.o_buffer_size / fact - port.obufcount()
        if inited:
            port.close()
            self.__port = None
        return val

    def __initport(self):
        fmt = self.__format
        self.__port = sunaudiodev.open('w')
        if not fmt or not self.__framerate:
            return
        info = self.__port.getinfo()
        info.o_sample_rate = self.__framerate
        info.o_channels = fmt.getnchannels()
        if fmt.getencoding() == 'u-law':
            info.o_encoding = SUNAUDIODEV.ENCODING_ULAW
            info.o_precision = 8
        else:
            info.o_precision = (fmt.getbps() + 7) & ~7
            info.o_encoding = SUNAUDIODEV.ENCODING_LINEAR
        try:
            self.__port.setinfo(info)
        except sunaudiodev.error:
            if fmt.getencoding() != 'u-law' or \
               self.__framerate != 8000:
                raise Error, 'unsupported format'
Example #10
0
from test_support import verbose, findfile, TestFailed, TestSkipped