I just checked the guide and it said to use vs 2016, I actually now build with VS Community 2019 and the project files were updated to 2019 some time ago.
The settings and media library should be shared with things I have built.
Eg you have my build in c:\program files\tuniac and yours in c:\testtuniac the settings and db would be shared.
If you run then one at a time mine works and then yours doesn't?
Does a build from your machine work if you build without your code changes?
Does the problem relate to playing Jellyfin files or local files?
The problem sounds like Tuniac audio engine doesn't correctly send the required message to the main Tuniac window.
So the audio engine has shut down the stream but the main window thinks it is still playing?
I would add the play state to the window title:
options -> preferences -> formatting -> window title -> Pick the second "@!: @T - @A [Tuniac]"
Observe the window title for if it says playing, paused etc when it goes past the end of the file.
And then to debug the best is to brute force with breakpoints, stepping and continue (to the next breakpoint).
The breakpoints proves you are executing that section of code at that time.
It is possible to find that tuniac tried to access something that wasn't available and you will find things just stop executing.
Your job is to find if that is occurring and what the "something" is via brute force breakpoints showing that execution never gets past line x.
While paused in breakpoints you can check out the state of current variables which can also assist.
I would run debug build and put break points in AudioStream.cpp GetBuffer() after m_Packetizer.IsFinished()
That is supposed to get to tuniacApp.CoreAudioMessage(NOTIFY_COREAUDIO_PLAYBACKFINISHED, NULL);
That is a message that it sends to the main window which gets you to TuniacApp.cpp WM_APP and find: case NOTIFY_COREAUDIO_PLAYBACKFINISHED
Set more breakpoints inside the tuniacapp playbackfinished to prove you go to there and then a break point near PlayEntry().
Set more and more breakpoints to prove what does work and where it fails
We need to prove
1)the audio engine knows it ran out of file
2)audio engine sent a message to the main window
3)that message was received
4)the message successfully processed
Let me know if you need more info.