docs: public final void setVolumeByIncrement(float level) throws IOException {
          Volume volume = this.getStatus().volume;
          float total = volume.level;
  
          if (volume.increment <= 0f) {
              throw new ChromeCastException("Volume.increment is <= 0");
          }
  
          // With floating points we always have minor decimal variations, using the Math.min/max
          //   works around this issue
          // Increase volume
          if (level > total) {
              while (total < level) {
                  total = Math.min(total + volume.increment, level);
                  setVolume(total);
              }
          // Decrease Volume
          } else if (level < total) {
              while (total > level) {
                  total = Math.max(total - volume.increment, level);
                  setVolume(total);
              }
          }
      }