GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Pixelsuft/tinyfoo: Simple music player written in C++ with SDL3 and ImGui

BranchesTags
Open more actions menu

Latest commit

 

History

415 Commits
415 Commits

Folders and files

NameName
Last commit message
Last commit date
api
api
 
 
assets
assets
 
 
include
include
 
 
liblbs
liblbs
 
 
src
src
 
 
.gitignore
.gitignore
 
 
CMakeLists.txt
CMakeLists.txt
 
 
LICENSE.md
LICENSE.md
 
 
README.md
README.md
 
 
lbs.py
lbs.py
 
 
resource.h
resource.h
 
 
settings.manifest
settings.manifest
 
 
tinyfoo.rc
tinyfoo.rc
 
 
tinyfoo.sln
tinyfoo.sln
 
 
tinyfoo.vcxproj
tinyfoo.vcxproj
 
 
tinyfoo.vcxproj.filters
tinyfoo.vcxproj.filters
 
 
tinyfoo.vcxproj.user
tinyfoo.vcxproj.user
 
 

Repository files navigation

tinyfoo

Simple music player written in C++11 with SDL3 and ImGui
Logo

Suppored audio backends

Backends are loaded dynamically in runtime. Only dynamic (shared) lib files are required to make them working.

  • SDL2_mixer/SDL-Mixer-X via sdl2-compat (because there is no stable SDL3_mixer release yet)
  • FMOD
  • BASS
  • SoLoud
  • VLC (Doesn't support audio fading)

External dependencies

All of them (except SDL3 for non-msvc and non-mingw builds) are fetched automatically using LBS script

  • SDL3
  • nlohmann json
  • toml11 or toml++
  • ImGui

Building (Visual Studio)

python lbs.py msvc init --msvc
python lbs.py msvc fetch
python lbs.py msvc conf
python lbs.py msvc gen_res

Then open VS project and build in Debug/Release mode

Building (CMake)

Note: when using in debug mode, assets folder must be in executable cwd

python lbs.py build init
python lbs.py build fetch
# Optionally add --release
python lbs.py build conf
python lbs.py build gen_res
cd build
cmake ..
make

Example building using MinGW in release mode

# --mingw is not required for MSYS2
python lbs.py release init --mingw
python lbs.py release fetch
python lbs.py release conf --release
python lbs.py release gen_res
python lbs.py release join_code
cd release
windres ../tinyfoo.rc -O coff -o tinyfoo.res
# MinGW64
g++ tinyfoo.cpp tinyfoo.res -o tinyfoo.exe -std=gnu++2a -Ofast -fno-rtti -Iimgui -Ilbs -ISDL/x86_64-w64-mingw32/include -LSDL/x86_64-w64-mingw32/lib -lSDL3 -lgdiplus
# MSYS2
g++ tinyfoo.cpp tinyfoo.res -o tinyfoo.exe -std=gnu++23 -Ofast -fno-rtti -fno-exceptions -Iimgui -Ilbs -lSDL3 -lgdiplus

TODO

  • Improve UI
  • Support configuring tab columns
  • Add support for libpng (useful on linux?)
  • Fix TODOs in code and code cleanup

About

Simple music player written in C++ with SDL3 and ImGui

Topics

audiobasscppcross-platformfmodfoobarfoobar2000guiimguimixermusicplayersdlsdl3soloudun4seen-bassvlc

Resources

Readme
License
Activity

Stars

1 star

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.