JoJo_ReloadeD
25/10/2009, 11:16
Helo aqui. El primer problema que tengo es con este codigo que sirve para modificar el sonido, no hay huevos a hacer que el volumen sea mas alto:
gp2x_dev[2] = open("/dev/mixer", O_WRONLY);
if(gp2x_dev[2] < 0) {
printf("Could not open /dev/mixer\n");
return -1;
}
Primero abro el mixer y guardo el handle en este array...
if (gp2x_dev[2])
{
direction = ((volume << 8) | volume);
// ioctl(gp2x_dev[2], SOUND_MIXER_WRITE_VOLUME, &vol);
ioctl(gp2x_dev[2], SOUND_MIXER_WRITE_PCM, &direction);
// ioctl(gp2x_dev[2], SOUND_MIXER_WRITE_OGAIN, &volume);
}
... y luego en la funcion de modificar el sonido veo si el handle sigue ahi, guardo volume (que va de 0 a 100) en forma de entero de 16 bits (poniendo en la parte alta uno de los canales y en la parte baja el otro, solo que aqui los 2 canales tienen el mismo volumen), y se lo paso mediante ioctl al mixer...
Como veis, he probado esas 3 formas para que el mixer responda, que son las que OSS indica. (No hagais caso del cambio de nombre de la variable). Ningun resultado.
El volumen viene a esta a un 30 - 40 % del maximo, aun siendo volume = 100.
He probado obviamente a que volume sea 0xFF, con lo que el parametro que le pasaria al mixer fuera 0xFFFF, pero que si quieres arroz catalina.
Tambien he probado a abrir el mixer con O_WRONLY|O_NONBLOCK, y con O_RDONLY. That if you want rice, Catherine.
El mixer no se usa en el programa fuera de estas lineas.
¿Alguna idea?
gp2x_dev[2] = open("/dev/mixer", O_WRONLY);
if(gp2x_dev[2] < 0) {
printf("Could not open /dev/mixer\n");
return -1;
}
Primero abro el mixer y guardo el handle en este array...
if (gp2x_dev[2])
{
direction = ((volume << 8) | volume);
// ioctl(gp2x_dev[2], SOUND_MIXER_WRITE_VOLUME, &vol);
ioctl(gp2x_dev[2], SOUND_MIXER_WRITE_PCM, &direction);
// ioctl(gp2x_dev[2], SOUND_MIXER_WRITE_OGAIN, &volume);
}
... y luego en la funcion de modificar el sonido veo si el handle sigue ahi, guardo volume (que va de 0 a 100) en forma de entero de 16 bits (poniendo en la parte alta uno de los canales y en la parte baja el otro, solo que aqui los 2 canales tienen el mismo volumen), y se lo paso mediante ioctl al mixer...
Como veis, he probado esas 3 formas para que el mixer responda, que son las que OSS indica. (No hagais caso del cambio de nombre de la variable). Ningun resultado.
El volumen viene a esta a un 30 - 40 % del maximo, aun siendo volume = 100.
He probado obviamente a que volume sea 0xFF, con lo que el parametro que le pasaria al mixer fuera 0xFFFF, pero que si quieres arroz catalina.
Tambien he probado a abrir el mixer con O_WRONLY|O_NONBLOCK, y con O_RDONLY. That if you want rice, Catherine.
El mixer no se usa en el programa fuera de estas lineas.
¿Alguna idea?