help with buttons switching with number of pushes

// let's suppose a pushbutton is connected between pin 4 and ground
// the button is active low (LOW when pressed)
byte btnPin = 4;
byte btnState = HIGH;
byte btnPrevState = HIGH;

unsigned long btn_prevMillis;
unsigned long btn_interval = 30;        // check the button every 30 ms


void btnPressed() {
    buttonPushCounter++
    if (buttonPushCounter > numberofPatterns) {                          //if counter exeeds max reset to index(0)
        buttonPushCounter = 0;
    }
}


void btnReleased() {
}


void setup() {
    pinMode(btnPin, INPUT);
    digitalWrite(btnPin, HIGH);        // activate internal pullup
}


void loop() {

    // button section
    if (millis() - btn_prevMillis >= btn_interval) {
        btnState = digitalRead(btnPin);

        if ((btnPrevState == HIGH) && (btnState == LOW)) {
            btnPressed();
        }
        else if ((btnPrevState == LOW) && (btnState == HIGH)) {
            btnReleased();
        }

        btnPrevState = btnState;
    }

    
    // pattern section
    switch (buttonPushCounter)  {
        // etc.
    }
}