База кода XMMS2 довольно молода и является хорошим примером стиля кодирования, а также методов использования C в современной, но очень чистой (она должна быть построена на многих платформах) моде.
Включает модель клиент-сервер с кроссплатформенной связью, объектно-ориентированную систему внутри сервера, сложную систему плагинов, обеспечивающую многопоточность, чтобы полностью удовлетворить потребности подачи звуковой карты в реальном времени Плагины также дают хорошие примеры включения сторонних библиотек. Дополнено экспортированным API, для которого доступны также несколько языковых привязок (которые показывают, как это сделать).
В коде xmms2 вы увидите много разных современных проблем. Кодовая база очень чистая и содержит немного «старого кода», который все еще хорошо написан.
Он также использует сложную систему сборки, и разработчики в значительной степени полагаются на функции git. Так что есть еще что-то, что нужно изучить, а не только сам код. Сообщество активно и полезно в IRC, если у вас есть какие-либо вопросы по поводу кода.
http://xmms2.xmms.se
Недостаток: он не маленький. Но он относительно модульный, особенно с серверными компонентами, представляющими собой отдельные объекты, поэтому вы можете выбрать его часть, которая охватывает конкретные проблемы и извлечь из этого уроки. Или даже попытайтесь написать свой собственный клиент, плагин, что угодно.