Exemplo n.º 1
0
Arquivo: alsa.py Projeto: bmxp/shtoom
    def openDev(self):
        print("alsa OPEN", self._closed)
        try:
            from __main__ import app
        except:
            app = None
        if app is None:
            device = DEFAULT_ALSA_DEVICE
        else:
            device = app.getPref('audio_device', DEFAULT_ALSA_DEVICE)
        log.msg("alsaaudiodev opening device %s" % (device))
        writedev = alsaaudio.PCM(alsaaudio.PCM_PLAYBACK,
                                 alsaaudio.PCM_NONBLOCK, device)
        self.writechannels = writedev.setchannels(1)
        writedev.setrate(8000)
        writedev.setformat(alsaaudio.PCM_FORMAT_S16_LE)
        writedev.setperiodsize(160)
        self.writedev = writedev

        readdev = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK,
                                device)
        self.readchannels = readdev.setchannels(1)
        readdev.setrate(8000)
        readdev.setformat(alsaaudio.PCM_FORMAT_S16_LE)
        readdev.setperiodsize(160)
        self.readdev = readdev

        self.LC = LoopingCall(self._push_up_some_data)
        self.LC.start(0.010)
        print("alsa OPENED", self._closed)
Exemplo n.º 2
0
def getMapper():
    # We prefer UPnP when available, as it's more robust
    global _installedShutdownHook
    if not _installedShutdownHook:
        from twisted.internet import reactor
        t = reactor.addSystemEventTrigger('after',
                                          'shutdown',
                                          clearCache)
        _installedShutdownHook = True
    try:
        from __main__ import app
    except:
        app = None
    natPref = 'both'
    if app is not None:
        print "app is", app
        natPref = app.getPref('nat')
        log.msg('NAT preference says to use %s'%(natPref))
    if _forcedMapper is not None:
        return defer.succeed(_forcedMapper)
    from xshtoom.stun import getSTUN
    if natPref == 'stun':
        ud = getSTUN()
        d = defer.DeferredList([defer.succeed(None), ud])
    else:
        nm = NullMapper()
        d = defer.DeferredList([defer.succeed(None),
                                defer.succeed(None)])
    d.addCallback(cb_getMapper).addErrback(log.err)
    return d
Exemplo n.º 3
0
def getMapper():
    # We prefer UPnP when available, as it's more robust
    global _installedShutdownHook
    if not _installedShutdownHook:
        from twisted.internet import reactor
        t = reactor.addSystemEventTrigger('after',
                                          'shutdown',
                                          clearCache)
        _installedShutdownHook = True
    try:
        from __main__ import app
    except:
        app = None
    natPref = 'both'
    if app is not None:
        print "app is", app
        natPref = app.getPref('nat')
        log.msg('NAT preference says to use %s'%(natPref))
    if _forcedMapper is not None:
        return defer.succeed(_forcedMapper)
    from xshtoom.stun import getSTUN
    if natPref == 'stun':
        ud = getSTUN()
        d = defer.DeferredList([defer.succeed(None), ud])
    else:
        nm = NullMapper()
        d = defer.DeferredList([defer.succeed(None),
                                defer.succeed(None)])
    d.addCallback(cb_getMapper).addErrback(log.err)
    return d
Exemplo n.º 4
0
    def __init__(self):
        from twisted.internet import reactor
        from __main__ import app

        port = app.getPref('xmlrpc_port')
        if port:
            self.listener = reactor.listenTCP(port, server.Site(self))
Exemplo n.º 5
0
    def __init__(self):
        from twisted.internet import reactor
        from __main__ import app

        port = app.getPref('xmlrpc_port')
        if port:
            self.listener = reactor.listenTCP(port, server.Site(self))
Exemplo n.º 6
0
    def openDev(self):
        print "alsa OPEN", self._closed
        try:
            from __main__ import app
        except:
            app = None
        if app is None:
            device = DEFAULT_ALSA_DEVICE
        else:
            device = app.getPref('audio_device', DEFAULT_ALSA_DEVICE)
        log.msg("alsaaudiodev opening device %s" % (device))
        writedev = alsaaudio.PCM(alsaaudio.PCM_PLAYBACK,
                                 alsaaudio.PCM_NONBLOCK, device)
        self.writechannels = writedev.setchannels(1)
        writedev.setrate(8000)
        writedev.setformat(alsaaudio.PCM_FORMAT_S16_LE)
        writedev.setperiodsize(160)
        self.writedev = writedev

        readdev = alsaaudio.PCM(alsaaudio.PCM_CAPTURE,
                                alsaaudio.PCM_NONBLOCK, device)
        self.readchannels = readdev.setchannels(1)
        readdev.setrate(8000)
        readdev.setformat(alsaaudio.PCM_FORMAT_S16_LE)
        readdev.setperiodsize(160)
        self.readdev = readdev

        self.LC = LoopingCall(self._push_up_some_data)
        self.LC.start(0.010)
        print "alsa OPENED", self._closed
Exemplo n.º 7
0
    def openDev(self):
        try:
            from __main__ import app
        except:
            app = None
        if app is not None:
            device = app.getPref('audio_device')
        else:
            device = None
        if device is not None:
            log.msg("ossaudiodev opening device %s")
            dev = ossaudiodev.open(device, 'rw')
        else:
            log.msg("ossaudiodev opening default device")
            dev = ossaudiodev.open('rw')
        dev.speed(8000)
        dev.nonblock()
        ch = dev.channels(1)
        if ch not in (1, 2):
            raise ValueError("insane channel count %r"%(ch))
        self._channels = ch
        formats = listFormats(dev)
        if 'AFMT_S16_LE' in formats:
            dev.setfmt(ossaudiodev.AFMT_S16_LE)
            self.dev = dev
        else:
            raise ValueError("Couldn't find signed 16 bit PCM, got %s"%(
                                                    ", ".join(formats)))

        self.LC = LoopingCall(self._push_up_some_data)
        self.LC.start(0.010)
Exemplo n.º 8
0
    def openDev(self):
        try:
            from __main__ import app
        except:
            app = None
        if app is not None:
            device = app.getPref('audio_device')
        else:
            device = None
        if device is not None:
            log.msg("ossaudiodev opening device %s")
            dev = ossaudiodev.open(device, 'rw')
        else:
            log.msg("ossaudiodev opening default device")
            dev = ossaudiodev.open('rw')
        dev.speed(8000)
        dev.nonblock()
        ch = dev.channels(1)
        if ch not in (1, 2):
            raise ValueError("insane channel count %r" % (ch))
        self._channels = ch
        formats = listFormats(dev)
        if 'AFMT_S16_LE' in formats:
            dev.setfmt(ossaudiodev.AFMT_S16_LE)
            self.dev = dev
        else:
            raise ValueError("Couldn't find signed 16 bit PCM, got %s" %
                             (", ".join(formats)))

        self.LC = LoopingCall(self._push_up_some_data)
        self.LC.start(0.010)
Exemplo n.º 9
0
 def __init__(self):
     try:
         from __main__ import app
     except:
         log.msg("couldn't find app preferences, no file audio",
                 system="audio")
         raise ValueError('no app for filename preferences?')
     device = app.getPref('audio_device')
     if not device:
         log.msg("need to provide audio_device with files"
                 " as infile,outfile", system="audio")
         raise ValueError('no audio_device specified')
     files = device.split(',',2)
     if len(files) != 2:
         raise ValueError("device spec should be infile,outfile")
     self.infile, self.outfile = files
     baseaudio.AudioDevice.__init__(self)
     self.close()
Exemplo n.º 10
0
 def __init__(self):
     try:
         from __main__ import app
     except:
         log.msg("couldn't find app preferences, no file audio",
                 system="audio")
         raise ValueError('no app for filename preferences?')
     device = app.getPref('audio_device')
     if not device:
         log.msg("need to provide audio_device with files"
                 " as infile,outfile", system="audio")
         raise ValueError('no audio_device specified')
     files = device.split(',',2)
     if len(files) != 2:
         raise ValueError("device spec should be infile,outfile")
     self.infile, self.outfile = files
     baseaudio.AudioDevice.__init__(self)
     self.close()
Exemplo n.º 11
0
def main(application):
    import sys

    from shtoom.ui.util import maybeInstallDBus
    maybeInstallDBus()

    from twisted.internet import reactor
    from __main__ import app

    from shtoom.ui.textui import ShtoomMain
    UI = ShtoomMain()
    UI.connectApplication(application)
    # see twisted.conch.stdio for an example of readline-y sort of things.
    stdio.StandardIO(UI)
    if not app.getPref('logfile'):
        from shtoom import log
        log.startLogging(sys.stdout, setStdout=False)
    return UI
Exemplo n.º 12
0
def main(application):
    import sys

    from shtoom.ui.util import maybeInstallDBus
    maybeInstallDBus()

    from twisted.internet import reactor
    from __main__ import app

    from shtoom.ui.textui import ShtoomMain
    UI = ShtoomMain()
    UI.connectApplication(application)
    # see twisted.conch.stdio for an example of readline-y sort of things.
    stdio.StandardIO(UI)
    if not app.getPref('logfile'):
        from shtoom import log
        log.startLogging(sys.stdout, setStdout=False)
    return UI
Exemplo n.º 13
0
def findAudioInterface():
    # Ugh. Circular import hell
    from shtoom.avail import audio as av_audio
    audioOptions = { 'oss': av_audio.ossaudio,
                     'alsa': av_audio.alsaaudio,
                     'fast': av_audio.fastaudio,
                     'port': av_audio.fastaudio,
                     'osx': av_audio.osxaudio,
                     'core': av_audio.osxaudio,
                     'file': av_audio.fileaudio,
                     'echo': av_audio.echoaudio,
                   }
    allAudioOptions = [
                        av_audio.alsaaudio,
                        av_audio.ossaudio,
                        av_audio.fastaudio,
                        av_audio.osxaudio
                      ]

    audioPref = attempts = None

    try:
        from __main__ import app
    except:
        app = None

    if app:
        audioPref = app.getPref('audio')

    print "audioPref is", audioPref
    if audioPref:
        audioint = audioOptions.get(audioPref)
        if not audioint:
            log.msg("requested audio interface %s unavailable"%(audioPref,))
        else:
            return audioint

    for audioint in allAudioOptions:
        if audioint:
            return audioint
Exemplo n.º 14
0
def findAudioInterface():
    # Ugh. Circular import hell
    from shtoom.avail import audio as av_audio
    audioOptions = {
        'oss': av_audio.ossaudio,
        'alsa': av_audio.alsaaudio,
        'fast': av_audio.fastaudio,
        'port': av_audio.fastaudio,
        'osx': av_audio.osxaudio,
        'core': av_audio.osxaudio,
        'file': av_audio.fileaudio,
        'echo': av_audio.echoaudio,
    }
    allAudioOptions = [
        av_audio.alsaaudio, av_audio.ossaudio, av_audio.fastaudio,
        av_audio.osxaudio
    ]

    audioPref = attempts = None

    try:
        from __main__ import app
    except:
        app = None

    if app:
        audioPref = app.getPref('audio')

    print "audioPref is", audioPref
    if audioPref:
        audioint = audioOptions.get(audioPref)
        if not audioint:
            log.msg("requested audio interface %s unavailable" % (audioPref, ))
        else:
            return audioint

    for audioint in allAudioOptions:
        if audioint:
            return audioint