From 9b6c3143f8e0b94a637ea3561b1479cf29f0411a Mon Sep 17 00:00:00 2001 From: asb2m10 Date: Sat, 14 Dec 2013 20:00:53 -0500 Subject: [PATCH] Indent fix --- .../UserInterfaceState.xcuserstate | Bin 88402 -> 76307 bytes Source/PluginEditor.cpp | 24 +- Source/PluginParam.cpp | 352 +++++++++--------- Source/PluginParam.h | 36 +- Source/PluginProcessor.cpp | 18 +- 5 files changed, 215 insertions(+), 215 deletions(-) diff --git a/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate b/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate index 233a7df73d170a069befe09e38f214aa982a9546..595ca67a35eb2057f8a4a2240dff3e24661f9ebd 100644 GIT binary patch literal 76307 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 literal 88402 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%0DDVl%d32X=$`i93iRpl5NXa0cgb30H6( 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 diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index 33bd5eb..a7d3a1c 100755 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -49,7 +49,7 @@ DexedAudioProcessorEditor::DexedAudioProcessorEditor (DexedAudioProcessor* owner presets.setBounds(200, 5, 150, 24); for(int i=0;igetNumPrograms();i++) { - presets.addItem( processor->getProgramName(i), i+1); + presets.addItem( processor->getProgramName(i), i+1); } presets.setSelectedId(processor->getCurrentProgram()+1, NotificationType::dontSendNotification); presets.addListener(this); @@ -98,7 +98,7 @@ DexedAudioProcessorEditor::DexedAudioProcessorEditor (DexedAudioProcessor* owner DexedAudioProcessorEditor::~DexedAudioProcessorEditor() { stopTimer(); - processor->unbindUI(); + processor->unbindUI(); } //============================================================================== @@ -134,7 +134,7 @@ void DexedAudioProcessorEditor::buttonClicked(Button *buttonThatWasClicked) { presets.clear(NotificationType::dontSendNotification); for(int i=0;igetNumPrograms();i++) { - presets.addItem(processor->getProgramName(i), i+1); + presets.addItem(processor->getProgramName(i), i+1); } TRACE("selecting id %d", processor->getCurrentProgram()); presets.setSelectedId(processor->getCurrentProgram()+1, NotificationType::dontSendNotification); @@ -148,12 +148,12 @@ void DexedAudioProcessorEditor::sliderValueChanged (Slider* slider) { } void DexedAudioProcessorEditor::comboBoxChanged (ComboBox* comboBoxThatHasChanged) { - processor->setCurrentProgram(comboBoxThatHasChanged->getSelectedId()-1); + processor->setCurrentProgram(comboBoxThatHasChanged->getSelectedId()-1); processor->updateHostDisplay(); } void DexedAudioProcessorEditor::timerCallback() { - int32_t env[6]; + int32_t env[6]; if ( processor->peekEnvStatus(env) == false ) return; @@ -164,11 +164,11 @@ void DexedAudioProcessorEditor::timerCallback() { } void DexedAudioProcessorEditor::updateUI() { - TRACE("update UI called"); - for(int i=0;ictrl.size();i++) { - processor->ctrl[i]->updateComponent(); - } - for(int i=0;i<6;i++) { - ops[i].updateFreqDisplay(); - } + TRACE("update UI called"); + for(int i=0;ictrl.size();i++) { + processor->ctrl[i]->updateComponent(); + } + for(int i=0;i<6;i++) { + ops[i].updateFreqDisplay(); + } } diff --git a/Source/PluginParam.cpp b/Source/PluginParam.cpp index 970b482..b05051b 100755 --- a/Source/PluginParam.cpp +++ b/Source/PluginParam.cpp @@ -24,45 +24,45 @@ // ************************************************************************ // Ctrl::Ctrl(String name) { - label << name; - slider = NULL; - button = NULL; - comboBox = NULL; + label << name; + slider = NULL; + button = NULL; + comboBox = NULL; } void Ctrl::bind(Slider *s) { - slider = s; - updateComponent(); - s->addListener(this); + slider = s; + updateComponent(); + s->addListener(this); } void Ctrl::bind(Button *b) { - button = b; - updateComponent(); - b->addListener(this); + button = b; + updateComponent(); + b->addListener(this); } void Ctrl::bind(ComboBox *c) { - comboBox = c; - updateComponent(); - c->addListener(this); + comboBox = c; + updateComponent(); + c->addListener(this); } void Ctrl::unbind() { - if ( slider != NULL ) { - slider->removeListener(this); - slider = NULL; - } + if ( slider != NULL ) { + slider->removeListener(this); + slider = NULL; + } - if ( button != NULL ) { - button->removeListener(this); - button = NULL; - } + if ( button != NULL ) { + button->removeListener(this); + button = NULL; + } - if ( comboBox != NULL ) { - comboBox->removeListener(this); - comboBox = NULL; - } + if ( comboBox != NULL ) { + comboBox->removeListener(this); + comboBox = NULL; + } } @@ -70,83 +70,83 @@ void Ctrl::unbind() { // CtrlInt ================================================================ CtrlInt::CtrlInt(String name, int steps, int offset, bool starts1) : Ctrl(name) { - add1 = starts1 == 1; - this->steps = steps; - value = 0; - dxOffset = offset; + add1 = starts1 == 1; + this->steps = steps; + value = 0; + dxOffset = offset; } float CtrlInt::getValuePlugin() { - return value / steps; + return value / steps; } void CtrlInt::setValuePlugin(float f) { - setValue((f * steps)); + setValue((f * steps)); } void CtrlInt::setValue(int v) { - if ( v >= steps ) { - TRACE("WARNING: value too big %s : %d", label.toRawUTF8(), v); - v = steps-1; - } - value = v; - if ( dxOffset >= 0 ) { - if ( parent != NULL ) - parent->setDxValue(dxOffset, v); - } + if ( v >= steps ) { + TRACE("WARNING: value too big %s : %d", label.toRawUTF8(), v); + v = steps-1; + } + value = v; + if ( dxOffset >= 0 ) { + if ( parent != NULL ) + parent->setDxValue(dxOffset, v); + } } int CtrlInt::getValue() { - if ( dxOffset >= 0 ) - value = parent->data[dxOffset]; - return value; + if ( dxOffset >= 0 ) + value = parent->data[dxOffset]; + return value; } String CtrlInt::getValueDisplay() { - String ret; - ret << getValue(); - return ret; + String ret; + ret << getValue(); + return ret; } void CtrlInt::publishValue(int value) { - parent->beginParameterChangeGesture(idx); - parent->setParameterNotifyingHost(idx, (((float)value) / steps)); - parent->endParameterChangeGesture(idx); + parent->beginParameterChangeGesture(idx); + parent->setParameterNotifyingHost(idx, (((float)value) / steps)); + parent->endParameterChangeGesture(idx); } void CtrlInt::sliderValueChanged(Slider* moved) { - publishValue(((int)moved->getValue() - add1)); + publishValue(((int)moved->getValue() - add1)); } void CtrlInt::buttonClicked (Button* clicked) { - publishValue(clicked->getToggleStateValue() == 1 ? 1 : 0); + publishValue(clicked->getToggleStateValue() == 1 ? 1 : 0); } void CtrlInt::comboBoxChanged (ComboBox* combo) { - publishValue(combo->getSelectedId()-1); + publishValue(combo->getSelectedId()-1); } void CtrlInt::updateComponent() { - //TRACE("setting for %s %d", label.toRawUTF8(), getValue()); - if ( slider != NULL ) { - slider->setValue(getValue() + add1, NotificationType::dontSendNotification); - } + //TRACE("setting for %s %d", label.toRawUTF8(), getValue()); + if ( slider != NULL ) { + slider->setValue(getValue() + add1, NotificationType::dontSendNotification); + } - if ( button != NULL ) { - if ( getValue() == 0 ) { - button->setToggleState(false, NotificationType::dontSendNotification); - } else { - button->setToggleState(true, NotificationType::dontSendNotification); - } - } + if ( button != NULL ) { + if ( getValue() == 0 ) { + button->setToggleState(false, NotificationType::dontSendNotification); + } else { + button->setToggleState(true, NotificationType::dontSendNotification); + } + } - if ( comboBox != NULL ) { - int cvalue = getValue() + 1; - if ( comboBox->getNumItems() <= cvalue ) { - cvalue = comboBox->getNumItems(); - } - comboBox->setSelectedId(cvalue, NotificationType::dontSendNotification); - } + if ( comboBox != NULL ) { + int cvalue = getValue() + 1; + if ( comboBox->getNumItems() <= cvalue ) { + cvalue = comboBox->getNumItems(); + } + comboBox->setSelectedId(cvalue, NotificationType::dontSendNotification); + } } // ************************************************************************ @@ -156,46 +156,46 @@ void DexedAudioProcessor::initCtrl() { // fill operator values; for(int i=0;i<6;i++) { - // In the Sysex, OP6 comes first, then OP5... - //int opTarget = (5-i) * 21; - // In the Sysex, OP6 comes first, then OP5... - int opTarget = i * 21; - - for(int j=0;j<4;j++) { - String opRate; - opRate << "OP" << (i+1) << "-EGR" << (j+1); - opCtrl[i].egRate[j] = new CtrlInt(opRate, 100, opTarget+j); - ctrl.add(opCtrl[i].egRate[j]); + // In the Sysex, OP6 comes first, then OP5... + //int opTarget = (5-i) * 21; + // In the Sysex, OP6 comes first, then OP5... + int opTarget = i * 21; + + for(int j=0;j<4;j++) { + String opRate; + opRate << "OP" << (i+1) << "-EGR" << (j+1); + opCtrl[i].egRate[j] = new CtrlInt(opRate, 100, opTarget+j); + ctrl.add(opCtrl[i].egRate[j]); - String opLevel; - opLevel << "OP" << (i+1) << "-EGL" << (j+1); - opCtrl[i].egLevel[j] = new CtrlInt(opLevel, 100, opTarget+j+4); - ctrl.add(opCtrl[i].egLevel[j]); - } - String opVol; - opVol << "OP" << (i+1) << "-LEVEL"; - opCtrl[i].level = new CtrlInt(opVol, 100, opTarget+16); - ctrl.add(opCtrl[i].level); + String opLevel; + opLevel << "OP" << (i+1) << "-EGL" << (j+1); + opCtrl[i].egLevel[j] = new CtrlInt(opLevel, 100, opTarget+j+4); + ctrl.add(opCtrl[i].egLevel[j]); + } + String opVol; + opVol << "OP" << (i+1) << "-LEVEL"; + opCtrl[i].level = new CtrlInt(opVol, 100, opTarget+16); + ctrl.add(opCtrl[i].level); - String opMode; - opMode << "OP" << (i+1) << "-MODE"; - opCtrl[i].opMode = new CtrlInt(opMode, 1, opTarget+17); - ctrl.add(opCtrl[i].opMode); + String opMode; + opMode << "OP" << (i+1) << "-MODE"; + opCtrl[i].opMode = new CtrlInt(opMode, 1, opTarget+17); + ctrl.add(opCtrl[i].opMode); - String coarse; - coarse << "OP" << (i+1) << "-COARSE"; - opCtrl[i].coarse = new CtrlInt(coarse, 32, opTarget+18, true); - ctrl.add(opCtrl[i].coarse); + String coarse; + coarse << "OP" << (i+1) << "-COARSE"; + opCtrl[i].coarse = new CtrlInt(coarse, 32, opTarget+18, true); + ctrl.add(opCtrl[i].coarse); - String fine; - fine << "OP" << (i+1) << "-FINE"; - opCtrl[i].fine = new CtrlInt(fine, 100, opTarget+19); - ctrl.add(opCtrl[i].fine); - - String detune; - detune << "OP" << (i+1) << "-DETUNE"; - opCtrl[i].detune = new CtrlInt(detune, 15, opTarget+20); - ctrl.add(opCtrl[i].detune); + String fine; + fine << "OP" << (i+1) << "-FINE"; + opCtrl[i].fine = new CtrlInt(fine, 100, opTarget+19); + ctrl.add(opCtrl[i].fine); + + String detune; + detune << "OP" << (i+1) << "-DETUNE"; + opCtrl[i].detune = new CtrlInt(detune, 15, opTarget+20); + ctrl.add(opCtrl[i].detune); } algo = new CtrlInt("Algorithm", 32, 134, true); @@ -207,8 +207,8 @@ void DexedAudioProcessor::initCtrl() { lfoDelay = new CtrlInt("LFO-Delay", 100, 138); ctrl.add(lfoDelay); - lfoPitchDepth = new CtrlInt("LFO-PitchDepth", 100, 139); - ctrl.add(lfoPitchDepth); + lfoPitchDepth = new CtrlInt("LFO-PitchDepth", 100, 139); + ctrl.add(lfoPitchDepth); lfoAmpDepth = new CtrlInt("LFO-AmpDepth", 100, 140); ctrl.add(lfoAmpDepth); @@ -220,8 +220,8 @@ void DexedAudioProcessor::initCtrl() { ctrl.add(lfoWaveform); for(int i=0;iidx = i; - ctrl[i]->parent = this; + ctrl[i]->idx = i; + ctrl[i]->parent = this; } } @@ -240,63 +240,63 @@ int DexedAudioProcessor::importSysex(const char *imported) { if (c < 32 || c > 127) c = 32; break; } - patchNames[i][j] = c; + patchNames[i][j] = c; } patchNames[i][11] = 0; } - return 0; + return 0; } void DexedAudioProcessor::unpackSysex(int idx) { - char *bulk = sysex + (idx * 128); + char *bulk = sysex + (idx * 128); - for (int op = 0; op < 6; op++) { - // eg rate and level, brk pt, depth, scaling - memcpy(data + op * 21, bulk + op * 17, 11); - char leftrightcurves = bulk[op * 17 + 11]; - data[op * 21 + 11] = leftrightcurves & 3; - data[op * 21 + 12] = (leftrightcurves >> 2) & 3; - char detune_rs = bulk[op * 17 + 12]; - data[op * 21 + 13] = detune_rs & 7; - char kvs_ams = bulk[op * 17 + 13]; - data[op * 21 + 14] = kvs_ams & 3; - data[op * 21 + 15] = kvs_ams >> 2; - data[op * 21 + 16] = bulk[op * 17 + 14]; // output level - char fcoarse_mode = bulk[op * 17 + 15]; - data[op * 21 + 17] = fcoarse_mode & 1; - data[op * 21 + 18] = fcoarse_mode >> 1; - data[op * 21 + 19] = bulk[op * 17 + 16]; // fine freq - data[op * 21 + 20] = detune_rs >> 3; - } - memcpy(data + 126, bulk + 102, 9); // pitch env, algo - char oks_fb = bulk[111]; - data[135] = oks_fb & 7; - data[136] = oks_fb >> 3; - memcpy(data + 137, bulk + 112, 4); // lfo - char lpms_lfw_lks = bulk[116]; - data[141] = lpms_lfw_lks & 1; - data[142] = (lpms_lfw_lks >> 1) & 7; - data[143] = lpms_lfw_lks >> 4; - memcpy(data + 144, bulk + 117, 11); // transpose, name - data[155] = 1; // operator on/off - data[156] = 1; - data[157] = 1; - data[158] = 1; - data[159] = 1; - data[160] = 1; + for (int op = 0; op < 6; op++) { + // eg rate and level, brk pt, depth, scaling + memcpy(data + op * 21, bulk + op * 17, 11); + char leftrightcurves = bulk[op * 17 + 11]; + data[op * 21 + 11] = leftrightcurves & 3; + data[op * 21 + 12] = (leftrightcurves >> 2) & 3; + char detune_rs = bulk[op * 17 + 12]; + data[op * 21 + 13] = detune_rs & 7; + char kvs_ams = bulk[op * 17 + 13]; + data[op * 21 + 14] = kvs_ams & 3; + data[op * 21 + 15] = kvs_ams >> 2; + data[op * 21 + 16] = bulk[op * 17 + 14]; // output level + char fcoarse_mode = bulk[op * 17 + 15]; + data[op * 21 + 17] = fcoarse_mode & 1; + data[op * 21 + 18] = fcoarse_mode >> 1; + data[op * 21 + 19] = bulk[op * 17 + 16]; // fine freq + data[op * 21 + 20] = detune_rs >> 3; + } + memcpy(data + 126, bulk + 102, 9); // pitch env, algo + char oks_fb = bulk[111]; + data[135] = oks_fb & 7; + data[136] = oks_fb >> 3; + memcpy(data + 137, bulk + 112, 4); // lfo + char lpms_lfw_lks = bulk[116]; + data[141] = lpms_lfw_lks & 1; + data[142] = (lpms_lfw_lks >> 1) & 7; + data[143] = lpms_lfw_lks >> 4; + memcpy(data + 144, bulk + 117, 11); // transpose, name + data[155] = 1; // operator on/off + data[156] = 1; + data[157] = 1; + data[158] = 1; + data[159] = 1; + data[160] = 1; } void DexedAudioProcessor::setDxValue(int offset, int v) { - TRACE("setting dx %d %d", offset, v); - isDirty = true; - if ( offset >= 0 ) - data[offset] = v; + TRACE("setting dx %d %d", offset, v); + isDirty = true; + if ( offset >= 0 ) + data[offset] = v; } void DexedAudioProcessor::unbindUI() { - for(int i=0;iunbind(); + for(int i=0;iunbind(); } } @@ -314,36 +314,36 @@ void DexedAudioProcessor::setParameter (int index, float newValue) { } int DexedAudioProcessor::getNumPrograms() { - // there is 32 program, the 33th one is a ghost for saving "unsaved" preset. + // there is 32 program, the 33th one is a ghost for saving "unsaved" preset. return 32; } int DexedAudioProcessor::getCurrentProgram() { - return currentProgram; + return currentProgram; } void DexedAudioProcessor::setCurrentProgram (int index) { - /*// VST has a naughty problem of calling setCurrentProgram after a host has loaded - // an edited preset. We ignore the 16th value, since we want to keep the user values - if ( index == 32 ) { - return; - }*/ - - for(int i=0;i 31 ? 31 : index; - unpackSysex(index); - currentProgram = index; + unpackSysex(index); + currentProgram = index; lfo.reset(data + 137); - updateUI(); + updateUI(); } const String DexedAudioProcessor::getProgramName (int index) { if ( index >= 32 ) - index = 31; + index = 31; return String(patchNames[index]); } @@ -364,25 +364,25 @@ void DexedAudioProcessor::getStateInformation (MemoryBlock& destData) { // You should use this method to store your parameters in the memory block. // You could do that either as raw data, or use the XML or ValueTree classes // as intermediaries to make it easy to save and load complex data.*/ - destData.insert(data, 161, 0); + destData.insert(data, 161, 0); } void DexedAudioProcessor::setStateInformation (const void* source, int sizeInBytes) { // You should use this method to restore your parameters from this memory block, // whose contents will have been created by the getStateInformation() call. - memcpy((void *)data, source, sizeInBytes); - updateUI(); + memcpy((void *)data, source, sizeInBytes); + updateUI(); } //============================================================================== void DexedAudioProcessor::getCurrentProgramStateInformation (MemoryBlock& destData) { - destData.insert(data, 161, 0); + destData.insert(data, 161, 0); } void DexedAudioProcessor::setCurrentProgramStateInformation (const void* source, int sizeInBytes) { - memcpy((void *)data, source, sizeInBytes); - updateUI(); + memcpy((void *)data, source, sizeInBytes); + updateUI(); } diff --git a/Source/PluginParam.h b/Source/PluginParam.h index dccff89..cdbb032 100755 --- a/Source/PluginParam.h +++ b/Source/PluginParam.h @@ -35,42 +35,42 @@ protected: ComboBox *comboBox; public: - String label; + String label; - Ctrl(String name); + Ctrl(String name); void bind(Slider *s); void bind(Button *b); void bind(ComboBox *c); void unbind(); - virtual void setValuePlugin(float f) = 0; - virtual float getValuePlugin() = 0; - virtual String getValueDisplay() = 0; + virtual void setValuePlugin(float f) = 0; + virtual float getValuePlugin() = 0; + virtual String getValueDisplay() = 0; virtual void updateComponent() = 0; - /** - * Index of this parameter - */ - int idx; + /** + * Index of this parameter + */ + int idx; DexedAudioProcessor *parent; }; // CtrlInt class CtrlInt : public Ctrl { - int value; - int steps; - int add1; - int dxOffset; + int value; + int steps; + int add1; + int dxOffset; public: - CtrlInt(String name, int steps, int offset = -1, bool starts1 = false); + CtrlInt(String name, int steps, int offset = -1, bool starts1 = false); void setValuePlugin(float f); float getValuePlugin(); void publishValue(int value); - void setValue(int value); - int getValue(); + void setValue(int value); + int getValue(); String getValueDisplay(); void sliderValueChanged (Slider* moved); void buttonClicked (Button* buttonThatWasClicked); @@ -80,8 +80,8 @@ public: struct OperatorCtrl { - ScopedPointer egRate[4]; - ScopedPointer egLevel[4]; + ScopedPointer egRate[4]; + ScopedPointer egLevel[4]; ScopedPointer level; ScopedPointer opMode; ScopedPointer coarse; diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index 8359da2..455553a 100755 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -47,7 +47,7 @@ DexedAudioProcessor::DexedAudioProcessor() { } DexedAudioProcessor::~DexedAudioProcessor() { - TRACE("Bye"); + TRACE("Bye"); } //============================================================================== @@ -356,13 +356,13 @@ bool DexedAudioProcessor::hasEditor() const { } void DexedAudioProcessor::updateUI() { - AudioProcessorEditor *editor = getActiveEditor(); - if ( editor == NULL ) { - TRACE("no editor found"); - return; - } - DexedAudioProcessorEditor *dexedEditor = (DexedAudioProcessorEditor *) editor; - dexedEditor->updateUI(); + AudioProcessorEditor *editor = getActiveEditor(); + if ( editor == NULL ) { + TRACE("no editor found"); + return; + } + DexedAudioProcessorEditor *dexedEditor = (DexedAudioProcessorEditor *) editor; + dexedEditor->updateUI(); } AudioProcessorEditor* DexedAudioProcessor::createEditor() { @@ -370,7 +370,7 @@ AudioProcessorEditor* DexedAudioProcessor::createEditor() { } void DexedAudioProcessor::log(const char *source, const char *fmt, ...) { - char output[4096]; + char output[4096]; va_list argptr; va_start(argptr, fmt); vsnprintf(output, 4095, fmt, argptr);