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
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 [2019/03/19 03:22] (current)
daschuer
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 Mixxx. You 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_skins|Skins]] 
 +  * [[developer_guide_widgets|GUI Widgets ​(non-skin)]]
developer_guide.1463744875.txt.gz · Last modified: 2016/05/20 07:47 by pogogames