From 703d41aec84d9f0f9f66ab2820b0c7637a3dd3d6 Mon Sep 17 00:00:00 2001 From: Michael Sippel Date: Thu, 20 Feb 2025 16:36:10 +0100 Subject: [PATCH] add .clang-format file & format all --- .clang-format | 274 ++++++++++++++++++++++++++++++++++++++++++++++++++ controller.c | 149 ++++++++++++++------------- guitfx.c | 22 ++-- guitfx.h | 2 +- 4 files changed, 359 insertions(+), 88 deletions(-) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..76e5a44 --- /dev/null +++ b/.clang-format @@ -0,0 +1,274 @@ +--- +Language: Cpp +AccessModifierOffset: -4 +AlignAfterOpenBracket: DontAlign +AlignArrayOfStructures: None +AlignConsecutiveAssignments: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: true +AlignConsecutiveBitFields: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveDeclarations: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveMacros: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveShortCaseStatements: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCaseArrows: false + AlignCaseColons: false +AlignConsecutiveTableGenBreakingDAGArgColons: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveTableGenCondOperatorColons: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignConsecutiveTableGenDefinitionColons: + Enabled: false + AcrossEmptyLines: false + AcrossComments: false + AlignCompound: false + AlignFunctionPointers: false + PadOperators: false +AlignEscapedNewlines: Right +AlignOperands: DontAlign +AlignTrailingComments: + Kind: Never + OverEmptyLines: 0 +AllowAllArgumentsOnNextLine: true +AllowAllParametersOfDeclarationOnNextLine: true +AllowBreakBeforeNoexceptSpecifier: Never +AllowShortBlocksOnASingleLine: Empty +AllowShortCaseExpressionOnASingleLine: true +AllowShortCaseLabelsOnASingleLine: false +AllowShortCompoundRequirementOnASingleLine: true +AllowShortEnumsOnASingleLine: true +AllowShortFunctionsOnASingleLine: All +AllowShortIfStatementsOnASingleLine: Never +AllowShortLambdasOnASingleLine: All +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AttributeMacros: + - __capability +BinPackArguments: true +BinPackParameters: true +BitFieldColonSpacing: Both +BraceWrapping: + AfterCaseLabel: false + AfterClass: false + AfterControlStatement: Never + AfterEnum: false + AfterExternBlock: false + AfterFunction: true + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + BeforeCatch: false + BeforeElse: false + BeforeLambdaBody: false + BeforeWhile: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true +BreakAdjacentStringLiterals: true +BreakAfterAttributes: Leave +BreakAfterJavaFieldAnnotations: false +BreakAfterReturnType: None +BreakArrays: true +BreakBeforeBinaryOperators: All +BreakBeforeConceptDeclarations: Always +BreakBeforeBraces: WebKit +BreakBeforeInlineASMColon: OnlyMultiline +BreakBeforeTernaryOperators: true +BreakConstructorInitializers: BeforeComma +BreakFunctionDefinitionParameters: false +BreakInheritanceList: BeforeColon +BreakStringLiterals: true +BreakTemplateDeclarations: MultiLine +ColumnLimit: 0 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: false +DerivePointerAlignment: false +DisableFormat: false +EmptyLineAfterAccessModifier: Never +EmptyLineBeforeAccessModifier: LogicalBlock +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: false +ForEachMacros: + - foreach + - Q_FOREACH + - BOOST_FOREACH +IfMacros: + - KJ_IF_MAYBE +IncludeBlocks: Preserve +IncludeCategories: + - Regex: '^"(llvm|llvm-c|clang|clang-c)/' + Priority: 2 + SortPriority: 0 + CaseSensitive: false + - Regex: '^(<|"(gtest|gmock|isl|json)/)' + Priority: 3 + SortPriority: 0 + CaseSensitive: false + - Regex: '.*' + Priority: 1 + SortPriority: 0 + CaseSensitive: false +IncludeIsMainRegex: '(Test)?$' +IncludeIsMainSourceRegex: '' +IndentAccessModifiers: false +IndentCaseBlocks: false +IndentCaseLabels: false +IndentExternBlock: AfterExternBlock +IndentGotoLabels: true +IndentPPDirectives: None +IndentRequiresClause: true +IndentWidth: 4 +IndentWrappedFunctionNames: false +InsertBraces: false +InsertNewlineAtEOF: false +InsertTrailingCommas: None +IntegerLiteralSeparator: + Binary: 0 + BinaryMinDigits: 0 + Decimal: 0 + DecimalMinDigits: 0 + Hex: 0 + HexMinDigits: 0 +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLines: + AtEndOfFile: false + AtStartOfBlock: true + AtStartOfFile: true +LambdaBodyIndentation: Signature +LineEnding: DeriveLF +MacroBlockBegin: '' +MacroBlockEnd: '' +MainIncludeChar: Quote +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: Inner +ObjCBinPackProtocolList: Auto +ObjCBlockIndentWidth: 4 +ObjCBreakBeforeNestedBlockParam: true +ObjCSpaceAfterProperty: true +ObjCSpaceBeforeProtocolList: true +PackConstructorInitializers: BinPack +PenaltyBreakAssignment: 2 +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakOpenParenthesis: 0 +PenaltyBreakScopeResolution: 500 +PenaltyBreakString: 1000 +PenaltyBreakTemplateDeclaration: 10 +PenaltyExcessCharacter: 1000000 +PenaltyIndentedWhitespace: 0 +PenaltyReturnTypeOnItsOwnLine: 60 +PointerAlignment: Left +PPIndentWidth: -1 +QualifierAlignment: Leave +ReferenceAlignment: Pointer +ReflowComments: true +RemoveBracesLLVM: false +RemoveParentheses: Leave +RemoveSemicolon: false +RequiresClausePosition: OwnLine +RequiresExpressionIndentation: OuterScope +SeparateDefinitionBlocks: Leave +ShortNamespaceLines: 1 +SkipMacroDefinitionBody: false +SortIncludes: CaseSensitive +SortJavaStaticImport: Before +SortUsingDeclarations: LexicographicNumeric +SpaceAfterCStyleCast: false +SpaceAfterLogicalNot: false +SpaceAfterTemplateKeyword: true +SpaceAroundPointerQualifiers: Default +SpaceBeforeAssignmentOperators: true +SpaceBeforeCaseColon: false +SpaceBeforeCpp11BracedList: true +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeJsonColon: false +SpaceBeforeParens: ControlStatements +SpaceBeforeParensOptions: + AfterControlStatements: true + AfterForeachMacros: true + AfterFunctionDefinitionName: false + AfterFunctionDeclarationName: false + AfterIfMacros: true + AfterOverloadedOperator: false + AfterPlacementOperator: true + AfterRequiresInClause: false + AfterRequiresInExpression: false + BeforeNonEmptyParentheses: false +SpaceBeforeRangeBasedForLoopColon: true +SpaceBeforeSquareBrackets: false +SpaceInEmptyBlock: true +SpacesBeforeTrailingComments: 1 +SpacesInAngles: Never +SpacesInContainerLiterals: true +SpacesInLineCommentPrefix: + Minimum: 1 + Maximum: -1 +SpacesInParens: Never +SpacesInParensOptions: + ExceptDoubleParentheses: false + InCStyleCasts: false + InConditionalStatements: false + InEmptyParentheses: false + Other: false +SpacesInSquareBrackets: false +Standard: Latest +StatementAttributeLikeMacros: + - Q_EMIT +StatementMacros: + - Q_UNUSED + - QT_REQUIRE_VERSION +TableGenBreakInsideDAGArg: DontBreak +TabWidth: 8 +UseTab: Never +VerilogBreakBetweenInstancePorts: true +WhitespaceSensitiveMacros: + - BOOST_PP_STRINGIZE + - CF_SWIFT_NAME + - NS_SWIFT_NAME + - PP_STRINGIZE + - STRINGIZE +... + diff --git a/controller.c b/controller.c index 76e38b7..9de156a 100644 --- a/controller.c +++ b/controller.c @@ -13,98 +13,97 @@ #include #include -#include "guitfx.h" #include "delay.h" -#include "sust.h" #include "gate.h" +#include "guitfx.h" +#include "sust.h" void midi_control( - struct FxData * data, + struct FxData* data, - uint64_t frame, - uint64_t offset, - unsigned sec, - unsigned midi_size, - uint8_t * midi_data, - struct spa_io_position* position -) { - printf("[%d] MIDI message (%d bytes) : %x, %x, %x\n", sec, midi_size, - midi_data[0], midi_data[1], midi_data[2]); + uint64_t frame, + uint64_t offset, + unsigned sec, + unsigned midi_size, + uint8_t* midi_data, + struct spa_io_position* position) +{ + printf("[%d] MIDI message (%d bytes) : %x, %x, %x\n", sec, midi_size, + midi_data[0], midi_data[1], midi_data[2]); - switch (midi_data[0] & 0xff) { - case 0xb0: - switch (midi_data[1]) { - case 0x0b: - // expr pedal - float val_f = ((float)midi_data[2]) / 128.0; + switch (midi_data[0] & 0xff) { + case 0xb0: + switch (midi_data[1]) { + case 0x0b: + // expr pedal + float val_f = ((float)midi_data[2]) / 128.0; - float thres = 0.5; + float thres = 0.5; - if (val_f > thres) { - float expr_mix = (val_f - thres) / (1.0 - thres); - printf("Expr Pedal %f\n", expr_mix); + if (val_f > thres) { + float expr_mix = (val_f - thres) / (1.0 - thres); + printf("Expr Pedal %f\n", expr_mix); - data->delay.mix = expr_mix; - } else { - data->delay.mix = 0.0; - } - break; + data->delay.mix = expr_mix; + } else { + data->delay.mix = 0.0; + } + break; - case 0x42: + case 0x42: - // noise gate calibration - if (data->prog == 2) { - if (midi_data[2] >= 64) { - data->gate.threshold = data->gate.cur_block_sum * 0.8; - printf("calibrate noise gate: threshold = %f\n", - data->gate.threshold); - } - } + // noise gate calibration + if (data->prog == 2) { + if (midi_data[2] >= 64) { + data->gate.threshold = data->gate.cur_block_sum * 0.8; + printf("calibrate noise gate: threshold = %f\n", + data->gate.threshold); + } + } - // sust pedal - if (data->prog == 1) { - if (midi_data[2] >= 64) { - sust_swap(&data->sust); - data->sust.playing = true; + // sust pedal + if (data->prog == 1) { + if (midi_data[2] >= 64) { + sust_swap(&data->sust); + data->sust.playing = true; - data->sust.start_idx = data->sust.idx; - data->sust.idx = 0; - } else { - data->sust.playing = false; - } - } + data->sust.start_idx = data->sust.idx; + data->sust.idx = 0; + } else { + data->sust.playing = false; + } + } - // tap tempo - if (data->prog == 0) { - uint64_t cur_tap = frame + offset; - uint64_t duration = cur_tap - data->last_tap; - data->last_tap = cur_tap; - if (duration < (4 * position->clock.rate.denom)) { - delay_set_time(&data->delay, duration); - } + // tap tempo + if (data->prog == 0) { + uint64_t cur_tap = frame + offset; + uint64_t duration = cur_tap - data->last_tap; + data->last_tap = cur_tap; + if (duration < (4 * position->clock.rate.denom)) { + delay_set_time(&data->delay, duration); + } - sust_resize(&data->sust, duration); - } + sust_resize(&data->sust, duration); + } - break; - } + break; + } - break; + break; - case 0xc0: - // program change - if (midi_data[2] >= 64) { - sust_swap(&data->sust); - data->sust.playing = true; + case 0xc0: + // program change + if (midi_data[2] >= 64) { + sust_swap(&data->sust); + data->sust.playing = true; - data->sust.start_idx = data->sust.idx; - data->sust.idx = 0; - } else { - data->sust.playing = false; - } - printf("program change: %u\n", midi_data[1]); - data->prog = midi_data[1]; - break; - } + data->sust.start_idx = data->sust.idx; + data->sust.idx = 0; + } else { + data->sust.playing = false; + } + printf("program change: %u\n", midi_data[1]); + data->prog = midi_data[1]; + break; + } } - diff --git a/guitfx.c b/guitfx.c index 82b53ca..f9afddd 100644 --- a/guitfx.c +++ b/guitfx.c @@ -15,8 +15,8 @@ #include "delay.h" #include "gate.h" -#include "sust.h" #include "guitfx.h" +#include "sust.h" float envelope(float x); @@ -27,15 +27,14 @@ struct port { }; void midi_control( - struct FxData * data, - - uint64_t frame, - uint64_t offset, - unsigned sec, - unsigned midi_size, - uint8_t * midi_data, - struct spa_io_position* position); + struct FxData* data, + uint64_t frame, + uint64_t offset, + unsigned sec, + unsigned midi_size, + uint8_t* midi_data, + struct spa_io_position* position); struct data { struct pw_main_loop* loop; @@ -79,10 +78,9 @@ static void on_process(void* userdata, struct spa_io_position* position) char* midi_data = SPA_POD_BODY(&c->value); unsigned midi_size = SPA_POD_BODY_SIZE(&c->value); - midi_control( &data->fx_data, frame, c->offset, sec, midi_size, midi_data, position ); + midi_control(&data->fx_data, frame, c->offset, sec, midi_size, midi_data, position); } else { - - printf("on_process(): non midi-control\n"); + printf("on_process(): non midi-control\n"); } } } else { diff --git a/guitfx.h b/guitfx.h index 4dedcdd..8c3cb7e 100644 --- a/guitfx.h +++ b/guitfx.h @@ -1,7 +1,7 @@ #include "delay.h" -#include "sust.h" #include "gate.h" +#include "sust.h" struct FxData { uint64_t last_tap;