From 584c9ff695b8ff715c44b15fb740266f4e1efd85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Sat, 10 Nov 2018 19:10:50 +0100 Subject: [PATCH] Move imports into function --- gajim/common/helpers.py | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/gajim/common/helpers.py b/gajim/common/helpers.py index bcbbe814e..fb8efe889 100644 --- a/gajim/common/helpers.py +++ b/gajim/common/helpers.py @@ -61,21 +61,6 @@ try: except ImportError: HAS_PRECIS_I18N = False -HAS_SOUND = True -if sys.platform == 'darwin': - try: - from AppKit import NSSound - except ImportError: - HAS_SOUND = False - print('Gajim is not able to playback sound because' - 'pyobjc is missing', file=sys.stderr) - -try: - import wave # posix-only fallback wav playback - import ossaudiodev as oss -except Exception: - pass - log = logging.getLogger('gajim.c.helpers') special_groups = (_('Transports'), _('Not in Roster'), _('Observers'), _('Groupchats')) @@ -768,18 +753,28 @@ def play_sound_file(path_to_soundfile): log.exception('Sound Playback Error') elif sys.platform == 'darwin': - if not HAS_SOUND: - log.error('NSSound not available') + try: + from AppKit import NSSound + except ImportError: + log.exception('Sound Playback Error') return + sound = NSSound.alloc() sound.initWithContentsOfFile_byReference_(path_to_soundfile, True) sound.play() elif app.config.get('soundplayer') == '': + try: + import wave + import ossaudiodev + except Exception: + log.exception('Sound Playback Error') + return + def _oss_play(): sndfile = wave.open(path_to_soundfile, 'rb') nc, sw, fr, nf, _comptype, _compname = sndfile.getparams() - dev = oss.open('/dev/dsp', 'w') + dev = ossaudiodev.open('/dev/dsp', 'w') dev.setparameters(sw * 8, nc, fr) dev.write(sndfile.readframes(nf)) sndfile.close()