generated from OPCODE-Open-Spring-Fest/template
-
Couldn't load subscription status.
- Fork 12
Closed
Labels
Description
So, what is it about?
🆕 Issue: Add a Modular Music Player Application (C++)
Description:
I would like to contribute a modular Music Player Application built using Object-Oriented Design Principles in C++.
The application simulates a real-world music player system (similar to common streaming apps) with features such as playlist management, playback strategies (sequential, random, custom queue), and device connectivity (Bluetooth, wired, headphones).
Key Features:
-
🎵 Playlist Management: Create, load, and manage multiple playlists with song collections.
-
▶️ Playback Strategies:- Sequential play
- Random play
- Custom queue play
-
🔊 Device Management:
- Connect to different audio output devices (Bluetooth speaker, wired speaker, headphones) using adapter and factory patterns.
-
⚙️ Design Patterns Used:
- Singleton (for managers and facades)
- Strategy (for playback behavior)
- Factory and Adapter (for device handling)
- Facade (for unified interface)
-
🧩 Modular Architecture:
Organized into separate modules:core/– Audio enginedevice/– Adapters for different output devicesmanagers/– Playlist, Device, Strategy managersstrategies/– Playback strategy implementationsmodels/– Core entities likeSongandPlaylistfactories/,enums/, andexternal/for API abstractions
Expected Output Example:
- Displays connected device information
- Shows sequential, random, and custom playback orders with simulated “Playing via [DeviceType]” outputs
- Demonstrates pausing, resuming, and completion of playlists
Goal:
To contribute a clean, well-documented Music Player Application that demonstrates advanced OOP and design pattern usage for learners exploring software design in C++.
Code of Conduct
- I agree to follow this project's Code of Conduct