feat: audio stack performance improvements
This commit is contained in:
@@ -1074,6 +1074,22 @@ namespace Drivers::Audio::IntelHda {
|
||||
KernelLogStream(OK, "HDA") << "Stream closed";
|
||||
}
|
||||
|
||||
uint32_t GetWriteSpace(int handle) {
|
||||
if (handle != 0 || !g_stream.Active) return 0;
|
||||
|
||||
uint32_t hwPos = g_dmaPos[g_stream.StreamIndex * 2];
|
||||
uint32_t writePos = g_stream.WritePos;
|
||||
uint32_t available;
|
||||
if (writePos >= hwPos) {
|
||||
available = TOTAL_BUFFER_SIZE - (writePos - hwPos);
|
||||
} else {
|
||||
available = hwPos - writePos;
|
||||
}
|
||||
if (available > 64) available -= 64;
|
||||
else available = 0;
|
||||
return available;
|
||||
}
|
||||
|
||||
int Write(int handle, const uint8_t* data, uint32_t size) {
|
||||
if (handle != 0 || !g_stream.Active || !data || size == 0)
|
||||
return -1;
|
||||
|
||||
Reference in New Issue
Block a user