reimplement volume control

This commit is contained in:
Jorj Bauer 2017-02-26 20:34:38 -05:00
parent b955dd106f
commit 3464ba5298
5 changed files with 19 additions and 11 deletions

View File

@ -8,5 +8,5 @@ PhysicalKeyboard *g_keyboard = NULL;
PhysicalSpeaker *g_speaker = NULL;
PhysicalPaddles *g_paddles = NULL;
PhysicalPrinter *g_printer = NULL;
int16_t g_volume;
int16_t g_volume = 15;
uint8_t g_displayType = 3; // FIXME m_perfectcolor

View File

@ -9,6 +9,9 @@ extern "C"
#include "timeutil.h"
#include "globals.h"
// FIXME: Globals; ick.
static pthread_t speakerThreadID;
static uint8_t curSpeakerData = 0x00;
@ -141,6 +144,8 @@ void SDLSpeaker::maintainSpeaker(uint32_t c)
mixerValue >>= 3; // divide by 8
// FIXME: g_volume
curSpeakerData = mixerValue & 0xFF;
}

View File

@ -125,14 +125,14 @@ bool BIOS::runUntilDone()
}
break;
case ACT_VOLPLUS:
g_volume += 10;
if (g_volume > 255) {
g_volume = 255;
g_volume ++;
if (g_volume > 15) {
g_volume = 15;
}
volumeDidChange = true;
break;
case ACT_VOLMINUS:
g_volume -= 10;
g_volume--;
if (g_volume < 0) {
g_volume = 0;
}
@ -213,7 +213,7 @@ bool BIOS::isActionActive(int8_t action)
return true;
case ACT_VOLPLUS:
return (g_volume < 255);
return (g_volume < 15);
case ACT_VOLMINUS:
return (g_volume > 0);
}
@ -284,7 +284,7 @@ void BIOS::DrawMainMenu(int8_t selection)
}
// draw the volume bar
uint16_t volCutoff = 300.0 * (float)((float) g_volume / 256.0);
uint16_t volCutoff = 300.0 * (float)((float) g_volume / 15.0);
for (uint8_t y=200; y<=210; y++) {
((TeensyDisplay *)g_display)->moveTo(10, y);
for (uint16_t x = 0; x< 300; x++) {

View File

@ -1,7 +1,7 @@
#include <Arduino.h>
#include "teensy-speaker.h"
extern int16_t g_volume;
#include "globals.h"
TeensySpeaker::TeensySpeaker(uint8_t pinNum) : PhysicalSpeaker()
{
@ -37,7 +37,10 @@ void TeensySpeaker::maintainSpeaker(uint32_t c)
}*/
// FIXME: glad it's DAC0 and all, but... how does that relate to the pin passed in the constructor?
analogWriteDAC0(mixerValue); // FIXME: g_volume?
mixerValue >>= (16-g_volume);
analogWriteDAC0(mixerValue);
}
void TeensySpeaker::beginMixing()

View File

@ -371,8 +371,8 @@ void readPrefs()
if (p.magic == MAGIC) {
// looks valid! Use it.
Serial.println("prefs valid! Restoring volume");
if (p.volume > 4095) {
p.volume = 4095;
if (p.volume > 15) {
p.volume = 15;
}
if (p.volume < 0) {
p.volume = 0;