On 21-Feb-08, at 4:18 PM, Tom Jennings wrote: > On Thu, 21 Feb 2008, Albert Santoni wrote: > >> If there's any specific questions you want to ask about the code or >> its >> organization, feel free to send them to the list or to me directly. >> The most >> useful tool I've found for diving into a large codebase is grep. >> For example, >> if I want to find out where the library code is, I'll run something >> like "grep >> -i library *.cpp", and take a careful look at the output. > > Hints on displayed list organization would be > nice... eg. playlists etc. I've managed Gtk-based list editing, > scrolling, etc in Perl and C so if I could find that stuff I > could probably start on that. > > I don't know if there are documented behavior expectations, > but as it is it comes up in Library or something with the > alphanum-first album opened. It would seem much more useful > to have it come up with play queue, play list selection, > last-selected play list, or simply last-selected list... >
Most of the library logic is centralized in the badly named "track.cpp". It does stuff like take care of the library scanning, stores the playlists, reading/writing the library, and interfacing between the GUI and the rest of the Mixxx playback-related stuff (eg. loading songs). Be forewarned that parts of the library code are messy, although I've done a lot of work over the past two months to untangle it. wtracktableview.cpp and wtracktablemodel.cpp are the model/view classes for the table you see in Mixxx's GUI. If you want to tweak any of that stuff you listed, it'll be in one of the three files I've mentioned. (Come to think of it, the combobox stuff is still hardcoded in mixxxview.cpp, you may want to look there too.) I should point out the metadata for all the songs is stored in this giant QList internally inside the TrackCollection class. TrackCollection originally implemented some custom binary searching stuff, but that's not really used anymore. You'll see that the code in Track.cpp creates a Playlist (object) for each playlist, the library, and the play queue. It was done this way so that we could easily hack the tableview to show different things. In the future, that organization is going to change a bit (using proper subclassing), but that's still a ways away. Anyways, just dive in and see how far you get. :) There's tons of little tweaks that can be made to the library stuff to make it more usable. Thanks, Albert ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Mixxx-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mixxx-devel
