User Tools

Site Tools


developer_guide

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
developer_guide [2016/05/20 07:47]
pogogames +1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.
developer_guide [2018/12/16 15:20]
beenisss Added link to Cherno Project videos on C++
Line 1: Line 1:
-+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ​((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ​((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone ​number ​here.Describe ​((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ​((( TURBOTAX support phone number.+1844-307-5701 TURBOTAX tech support phone number TURBOTAX tech support telephone number here.Describe ​((( TURBOTAX support phone number.+====== Mixxx Developer Guide ====== 
 + 
 +Welcome to the Mixxx Developer Guide 
 + 
 +====== Overview ====== 
 + 
 +The purpose of this guide is to give you, our intrepid contributor,​ an overview of the Mixxx codebaseMixxx is a big project with millions of lines of code so it can be daunting at firstIf you know how to get around then it really isn't that big and scary. 
 + 
 +**This guide is a work in progressIf you have any questions, join the [[https://​mixxx.zulipchat.com/|Mixxx Zulip chat]] to get live help from developers.** 
 + 
 +====== Prerequisites ====== 
 +First, you will need to download the code of Mixxx [[using Git]]. 
 + 
 +To understand this guide, you should have a working experience with a systems language like C, C++, or JavaYou should be able to get by with trial and error even if you don't know theseIt will help significantly if you have some experience with the [[http://​doc.qt.io/|Qt Framework]] which Mixxx uses extensively. 
 + 
 +We recommend you review these sections of the Qt documentation to get familiar with aspects of Qt that we use heavily: 
 +  * [[http://qt-project.org/​doc/​latest/​signalsandslots.html|Signals & Slots]] 
 + 
 +If you're not familiar with C++, [[https://​www.youtube.com/​watch?​v=18c3MTX0PK0&​list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb|The Cherno Project]] on YouTube has a good series dedicated to the core concepts. 
 + 
 +We also highly recommend that you use a C++ IDE rather than a text editorMixxx is a huge project spread across hundreds of source code files. IDEs index the entire code tree and allow you to jump from where a function is used to its definition, even if that is in another file (which it often is)Without this powerful tool, you will spend a lot of time simply finding the code you're looking for instead of understanding what it is doingWe have [[developer tools#using IDEs|guides]] for setting up several IDEs to work on Mixxx, but feel free to use whatever IDE you prefer. 
 + 
 +We highly recommend these resources from the Xiph.org Foundation for background information on digital and analog signal processing:​ 
 +  * [[https://​wiki.xiph.org/​Videos/​A_Digital_Media_Primer_For_Geeks|A Digital Media Primer For Geeks]] 
 +  * [[https://​wiki.xiph.org/​Videos/​Digital_Show_and_Tell|Digital Show and Tell]] 
 +  * [[https://​xiph.org/​~xiphmont/​demo/​neil-young.html|24/192 Music Downloads are Very Silly Indeed]] 
 + 
 +====== main.cpp ====== 
 + 
 +As all C++ programs usually do, Mixxx starts up with a ''​main''​ function located in ''​src/​main.cpp''​. It looks roughly like this: 
 + 
 +<​code>​ 
 +int main(int argc, char** argv) {  
 +    // start up Mixxx 
 +
 +</​code>​ 
 + 
 +You don't need to pay much attention to this section of the codeMost of what it does is: 
 + 
 +  * Initialize logging to file and some other minor things. 
 +  * Initialize some Qt basics and plugin paths. 
 +  * Interpret command line arguments 
 +  * Create a ''​MixxxApp''​ class which is what starts up the rest of Mixxx. 
 + 
 +====== MixxxApp Class ====== 
 + 
 +''​MixxxApp''​ is the class that ties everything Mixxx does togetherMixxx is made up of a variety of subsystems that all accomplish different purposes. You can find all of the code to ''​MixxxApp''​ in ''​src/​mixxx.h''​ and ''​src/​mixxx.cpp''​. 
 + 
 +In earlier years, ''​MixxxApp''​ was in charge of way more than it should have been. Over time we've tried to reduce the number ​of things it is responsible for, but as of Summer 2012 it's still a whopping 1600 lines 
 + 
 +Among the things it does (in no particular order) are: 
 +  * Initialize all of the Mixxx subsystems. 
 +  * Shut-down all of the Mixxx subsystems at shutdown time. 
 +  * Handle all of the menu-bar actions. 
 +  * Control the transition into and out of fullscreen mode. 
 +  * Keeps a list of all the contributors to Mixxx that are shown in the credits. 
 +  * Install and setup translations.  
 +  * Load and save the Mixxx config file. 
 +  * Initializes and displays the Mixxx GUI 
 + 
 +====== Core Infrastructure ====== 
 + 
 +These are the fundamental building blocks used almost everywhere in MixxxYou should skim these first so that you aren't confused when you see them in other sections. 
 + 
 +  * [[developer_guide_control|Control System ​(ControlObjects)]] 
 +  * [[developer_guide_config|Config System ​(ConfigObject,​ ConfigKey)]] 
 + 
 +====== Major Subsystems ====== 
 + 
 +  * [[developer_guide_library|Library]] 
 +  * [[developer_guide_shoutcast|Shoutcast]] 
 +  * [[developer_guide_engine|Mixing Engine]] 
 +  * [[developer_guide_engine_player|Deck/​Sampler Processing]] 
 +  * [[developer_guide_effects|Effects Framework]] 
 +  * [[developer_guide_soundmanager|SoundManager ​(OS audio interface)]] 
 +  * [[developer_guide_soundsource|SoundSource (per-format audio decoding)]] 
 +  * [[developer_guide_analysers|Analysers (beat detection, key detection, waveform analysis, replaygain, etc.)]] 
 +  * [[developer_guide_vinyl_control|Vinyl Control]] 
 +  * [[developer_guide_controllers|Controllers ​(MIDI, HID, etc.)]] 
 +  * [[developer_guide_keyboard|Keyboard Control]] 
 +  * [[developer_guide_preferences|Preferences Dialogs]] 
 +  * [[developer_guide_waveform|Waveform]] 
 +  * [[developer_guide_widgets|GUI Widgets]]
developer_guide.txt · Last modified: 2019/03/19 03:22 by daschuer