text: # SPDX-FileCopyrightText: 2018 Kattni Rembor for Adafruit Industries
  #
  # SPDX-License-Identifier: MIT
  
  import rotaryio
  import board
  import digitalio
  import usb_hid
  from adafruit_hid.consumer_control import ConsumerControl
  from adafruit_hid.consumer_control_code import ConsumerControlCode
  
  button = digitalio.DigitalInOut(board.D12)
  button.direction = digitalio.Direction.INPUT
  button.pull = digitalio.Pull.UP
  
  encoder = rotaryio.IncrementalEncoder(board.D10, board.D9)
  
  cc = ConsumerControl(usb_hid.devices)
  
  button_state = None
  last_position = encoder.position
  
  while True:
      current_position = encoder.position
      position_change = current_position - last_position
      if position_change > 0:
          for _ in range(position_change):
              cc.send(ConsumerControlCode.VOLUME_INCREMENT)
          print(current_position)
      elif position_change < 0:
          for _ in range(-position_change):
              cc.send(ConsumerControlCode.VOLUME_DECREMENT)
          print(current_position)
      last_position = current_position
      if not button.value and button_state is None:
          button_state = "pressed"
      if button.value and button_state == "pressed":
          print("Button pressed.")
          cc.send(ConsumerControlCode.PLAY_PAUSE)
          button_state = None
  