Types/StreamDeck.Profile/AddAction.ps1
param( [PSTypeName('StreamDeck.Action')] $Action, [int] $Row = -1, [int] $Column = -1 ) $maxRows, $maxCols = $this.DeviceSize $foundSpot = if ($Row -lt 0) { :foundRow for ($r = 0; $r -lt $maxRows; $r++) { if ($Column -lt 0) { for ($c =0 ; $c -lt $maxCols; $c++) { if (-not $this.Actions."$c,$r") { $r, $C break foundRow } } } else { if (-not $this.Actions."$Column,$r") { $r, $Column break foundRow } } } } elseif ($Column -lt 0) { for ($c =0 ; $c -lt $maxCols; $c++) { if (-not $this.Actions."$c,$Row") { $Row, $c break } } } else { $Column, $row } if (-not $foundSpot) { throw "Unable to find a location. Row: $row Column: $Column" } $r, $c = $foundSpot Add-Member -MemberType NoteProperty "$c,$r" -Value $action -InputObject $this.Actions -Force |