-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmixer.py
41 lines (35 loc) · 1.55 KB
/
mixer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from singleton import singleton
from parametros import expuesto, Parametros, EventoParametros
from eventos import GestorEventos
import alsaaudio
@singleton
class Mixer(object):
nombre_tarjeta_mixer_preferida = None
nombre_mixer_preferido = None
def __init__(self):
try:
cards = alsaaudio.cards()
cardindex = 0
if Mixer.nombre_tarjeta_mixer_preferida and Mixer.nombre_tarjeta_mixer_preferida in cards:
cardindex = cards.index(Mixer.nombre_tarjeta_mixer_preferida)
mixers = alsaaudio.mixers(cardindex)
mixername = mixers[0]
if Mixer.nombre_mixer_preferido and Mixer.nombre_mixer_preferido in mixers:
mixername = Mixer.nombre_mixer_preferido
self.mixer = alsaaudio.Mixer(mixername, cardindex=cardindex)
print("Mixer inicializado")
print("Mixer getvolume()="+str(self.mixer.getvolume()))
Parametros().set("Mixer", "PORCENTAJE_VOLUMEN", self.mixer.getvolume()[0])
GestorEventos().suscribir_evento(EventoParametros, self.ajustar_volumen, Parametros().d["Mixer"])
except:
self.mixer = None
print("ERROR: Imposible inicializar mixer")
raise
def ajustar_volumen(self, evento):
print("Mixer ajustando volumen")
print("Mixer: PORCENTAJE_VOLUMEN="+str(Mixer.PORCENTAJE_VOLUMEN))
self.mixer.setvolume(int(Mixer.PORCENTAJE_VOLUMEN))
@expuesto
def PORCENTAJE_VOLUMEN():
"""Volumen del sistema de sonido."""
return 0