mirror of
https://github.com/niellun/FastCarPlay.git
synced 2026-06-07 09:38:25 +02:00
Audio driver and audio delay settings
This commit is contained in:
+25
-4
@@ -59,7 +59,7 @@ void processKey(Protocol &protocol, SDL_Keysym key, RunParams ¶ms)
|
||||
|
||||
case SDLK_r:
|
||||
params.dirty = true;
|
||||
break;
|
||||
break;
|
||||
|
||||
case SDLK_LEFT:
|
||||
protocol.sendKey(100);
|
||||
@@ -206,11 +206,11 @@ void application()
|
||||
Uint32 frameStart = SDL_GetTicks();
|
||||
while (active)
|
||||
{
|
||||
if(processEvents(protocol, p, interface))
|
||||
if (processEvents(protocol, p, interface))
|
||||
{
|
||||
if(p.connected)
|
||||
if (p.connected)
|
||||
{
|
||||
decoder.flush();
|
||||
decoder.flush();
|
||||
videoBuffer.reset();
|
||||
}
|
||||
}
|
||||
@@ -253,6 +253,23 @@ void application()
|
||||
SDL_HideWindow(window);
|
||||
}
|
||||
|
||||
bool setAudioDriver()
|
||||
{
|
||||
if (Settings::audioDriver.value.length() < 2)
|
||||
return true;
|
||||
|
||||
int num = SDL_GetNumAudioDrivers();
|
||||
for (int i = 0; i < num; ++i)
|
||||
{
|
||||
if (SDL_GetAudioDriver(i) == Settings::audioDriver.value)
|
||||
{
|
||||
SDL_setenv("SDL_AUDIODRIVER", SDL_GetAudioDriver(i), 1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
int start()
|
||||
{
|
||||
if (!Settings::logging)
|
||||
@@ -260,12 +277,16 @@ int start()
|
||||
else
|
||||
Settings::print();
|
||||
|
||||
if (!setAudioDriver())
|
||||
std::cerr << "[Main] Not supported audio driver " << Settings::audioDriver.value << std::endl;
|
||||
|
||||
// Initialize SDL video subsystem
|
||||
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_AUDIO) != 0)
|
||||
{
|
||||
std::cerr << "[Main] SDL initialisation failed: " << SDL_GetError() << std::endl;
|
||||
return 1;
|
||||
}
|
||||
std::cout << "[Main] SDL audio driver: " << SDL_GetCurrentAudioDriver() << std::endl;
|
||||
|
||||
if (TTF_Init() != 0)
|
||||
{
|
||||
|
||||
+1
-2
@@ -52,7 +52,6 @@ void Protocol::sendInit(int width, int height, int fps)
|
||||
void Protocol::sendConfig()
|
||||
{
|
||||
int syncTime = std::time(nullptr);
|
||||
int mediaDelay = 300;
|
||||
int drivePosition = Settings::leftDrive ? 0 : 1; // 0==left, 1==right
|
||||
int nightMode = Settings::nightMode; // 0==day, 1==night, 2==auto
|
||||
if (nightMode < 0 || nightMode > 2)
|
||||
@@ -95,7 +94,7 @@ void Protocol::sendConfig()
|
||||
"{\"syncTime\":%d,\"mediaDelay\":%d,\"drivePosition\":%d,"
|
||||
"\"androidAutoSizeW\":%d,\"androidAutoSizeH\":%d,\"HiCarConnectMode\":0,"
|
||||
"\"GNSSCapability\":7,\"DashboardInfo\":1,\"UseBTPhone\":0}",
|
||||
syncTime, mediaDelay, drivePosition, width, height);
|
||||
syncTime, Settings::mediaDelay.value, drivePosition, width, height);
|
||||
|
||||
sendString(CMD_JSON_CONTROL, buffer);
|
||||
|
||||
|
||||
@@ -28,6 +28,9 @@ public:
|
||||
static inline Setting<int> micType{"mic-type", 1};
|
||||
static inline Setting<int> dpi{"android-dpi", 120};
|
||||
static inline Setting<int> androidMode{"android-resolution", 0};
|
||||
static inline Setting<int> mediaDelay{"android-media-delay", 300};
|
||||
|
||||
|
||||
|
||||
// Application configuration section
|
||||
static inline Setting<int> fontSize{"font-size", 30};
|
||||
@@ -38,6 +41,7 @@ public:
|
||||
static inline Setting<int> audioQueue{"audio-buffer-size", 16};
|
||||
static inline Setting<int> audioDelay{"audio-buffer-wait", 2};
|
||||
static inline Setting<float> audioFade{"audio-fade", 0.3};
|
||||
static inline Setting<std::string> audioDriver{"audio-driver", ""};
|
||||
static inline Setting<std::string> onConnect{"on-connect-script", ""};
|
||||
static inline Setting<std::string> onDisconnect{"on-disconnect-script", ""};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user