The Skeleton of a Music Player. I wrote and rewrote the idea and code behind Khi Player (https://github.com/rushakh/Khi-Player), trying to implement the advice I was given and follow good practices; the UI was left out as I was more concerned with the code, and I simply tested the codes using the tests I included and an old-fashioned windows form testing.
This is library was written using Zeugma44's ATLDotNET (https://github.com/Zeugma440/atldotnet) and NAudio (https://github.com/naudio/NAudio). ATL made this way easier (seriously) than What I had been trying to do using TagLibSharp and WindowsAPICodePackShell. This library, It's not meant to be used on it's own but made use of, contrary to Khi Player.
This is a continuation of my learnings, though most of it was written a whie back, I had to stop to changes in life, but now I can continue learning.
Due to the better structure, it Performs far better than Khi Player in a sense, and does so in a more systematic way that can be traced, debugged, or even tweaked easily.
Almost every part of the code that I thought might not be obvious or etc, includes comments on why they were written as such, a short introduction, and what function they serve. This was both for me (srsly I hope more people start doing this) and for others who might look at my code :)
I got rid of almost every bug that I encountered, the ones that remain (cause obviously nothing is bug free), I probably don't know about and would appreciate it if you could mention it if you encounter them.
Some general functions were added and were made more accessible and simple.
Simply put, If you compare the codes in the two projeects, you'll realize how much I've changed things but the general idea is still the same.
Though it might not be up to professional standards, if you want to use the code, you can, but after letting me know please.
Please let me know what you think, I want to improve my skills so please do let me know of what stands out to you, good or bad.