Skip to content

[Feature]: Add a Modular Music Player Application (C++) #34

@adityacosmos24

Description

@adityacosmos24

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 engine
    • device/ – Adapters for different output devices
    • managers/ – Playlist, Device, Strategy managers
    • strategies/ – Playback strategy implementations
    • models/ – Core entities like Song and Playlist
    • factories/, enums/, and external/ 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

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions