Hello,
when reading the documentation and looking through the source code, it looks like, that some important key items are missing.
I try now since several days, to understand, how mopidy is working and how things are tied together, but it all still looks like a big plate of spaghetti.
I miss a very small example, just playing a lokal mp3-file, where the name is given either in the code or in a configuration file. Just to see all the steps needed to get one track playing.
This example should have a bare minimal frontend, backend and all whats needed, that one track can be played, stopped, repeated and volume can be changed.
This should be followed with an description, what all gets started, where is the starting point in the sources, as I can see between 20 and 30 threads from os perspective, most called mopidy, but others are typefind:sync, id3demux10:sink, mpegaudioparse1, source:src, aqueue:src, queue0:src, queue1:src, queue2-0:src, dconf worker, …
From that perspective pykka makes sense, which I found out is a kind of thread-management-library.
So the next example could be an addition to the first example, by adding another backend, which provides some streams as audio sources, and another frontend, which can change the current running track between the mp3 file and one of the streams.
Even spending hours in investigation, I have not found the place, where the content of a file, an stream or an socket gets tied to a function, which will make this audible.
It took me hours, to find out, that mopidy seems to be just a frontend to GStreamer, however this assumption comes only from what I see in internal/gi.py. Nothing about that in the architecture diagrams.
Can anyone provide me more information, links I might have missed or other sources of information?