#pragma once #include struct TSong { std::string title; std::string artist; TSong(std::string aTitle, std::string aArtist) : title(aTitle), artist(aArtist) { } }; // TMusicPlayerApp.h #pragma once #include "TLinkedList.hpp" #include "TQueue.hpp" #include "TStack.hpp" #include "TSong.h" #include class TMusicPlayerApp { private: // Attributes TLinkedList mSongLibrary; TQueue mMainQueue; TQueue mWishQueue; TStack mHistoryStack; // Private helper for loading void LoadLibrary(const std::string& aFilename); public: // Constructor / Destructor TMusicPlayerApp(const std::string& aSongFilename); ~TMusicPlayerApp(); // Will be empty, destructors of attributes handle it // Public API for RunApp() to call // ... (we will define these next) };