Builder
    class Builder
    
    Builder class for a VolumeShaper.Configuration object. 
     Here is an example where Builder is used to define the VolumeShaper.Configuration. 
    VolumeShaper.Configuration LINEAR_RAMP =
          new VolumeShaper.Configuration.Builder()
              .setInterpolatorType(VolumeShaper.Configuration.INTERPOLATOR_TYPE_LINEAR)
              .setCurve(new float[] { 0.f, 1.f }, // times
                        new float[] { 0.f, 1.f }) // volumes
              .setDuration(1000)
              .build();
  
 
    
    Summary
    
      
        
          | Public constructors | 
        
          | Constructs a new Builderwith the defaults. | 
        
          | Constructs a new Builderwith settings copied from a givenVolumeShaper.Configuration. | 
      
    
    
    Public constructors
    
      Builder
      
      Builder()
      Constructs a new Builder with the defaults.
     
    
      Builder
      
      Builder(configuration: VolumeShaper.Configuration)
      Constructs a new Builder with settings copied from a given VolumeShaper.Configuration.
      
        
          
            | Parameters | 
          
            | configuration | VolumeShaper.Configuration: prototypical configuration which will be reused in the new Builder. This value cannot benull. | 
        
      
     
    Public methods
    
    
      invertVolumes
      
      fun invertVolumes(): VolumeShaper.Configuration.Builder
      Inverts the volume curve so that the max volume becomes the min volume and vice versa.
      
      
        
          
            | Exceptions | 
          
            | java.lang.IllegalStateException | if curve has not been set. | 
        
      
     
    
      reflectTimes
      
      fun reflectTimes(): VolumeShaper.Configuration.Builder
      Reflects the volume curve so that the shaper changes volume from the end to the start.
      
      
        
          
            | Exceptions | 
          
            | java.lang.IllegalStateException | if curve has not been set. | 
        
      
     
    
      scaleToEndVolume
      
      fun scaleToEndVolume(volume: Float): VolumeShaper.Configuration.Builder
      Scale the curve end volume to a target value. Keeps the start volume the same. This works best if the volume curve is monotonic.
      
        
          
            | Parameters | 
          
            | volume | Float: the target end volume to use. | 
        
      
      
      
        
          
            | Exceptions | 
          
            | java.lang.IllegalArgumentException | if volumeis not valid. | 
          
            | java.lang.IllegalStateException | if curve has not been set. | 
        
      
     
    
      scaleToStartVolume
      
      fun scaleToStartVolume(volume: Float): VolumeShaper.Configuration.Builder
      Scale the curve start volume to a target value. Keeps the end volume the same. This works best if the volume curve is monotonic.
      
        
          
            | Parameters | 
          
            | volume | Float: the target start volume to use. | 
        
      
      
      
        
          
            | Exceptions | 
          
            | java.lang.IllegalArgumentException | if volumeis not valid. | 
          
            | java.lang.IllegalStateException | if curve has not been set. | 
        
      
     
    
      setCurve
      
      fun setCurve(
    times: FloatArray, 
    volumes: FloatArray
): VolumeShaper.Configuration.Builder
      Sets the volume curve. The volume curve is represented by a set of control points given by two float arrays of equal length, one representing the time (x) coordinates and one corresponding to the volume (y) coordinates. The length must be at least 2 and no greater than VolumeShaper.Configuration.getMaximumCurvePoints(). 
       The volume curve is normalized as follows: time (x) coordinates should be monotonically increasing, from 0.f to 1.f; volume (y) coordinates must be within 0.f to 1.f. 
       The time scale is set by setDuration. 
      
      
        
          
            | Parameters | 
          
            | times | FloatArray: an array of float values representing the time line of the volume curve. This value cannot be null. | 
          
            | volumes | FloatArray: an array of float values representing the amplitude of the volume curve. This value cannot be null. | 
        
      
      
      
        
          
            | Exceptions | 
          
            | java.lang.IllegalArgumentException | if timesorvolumesis invalid. | 
        
      
     
    
      setDuration
      
      fun setDuration(durationMillis: Long): VolumeShaper.Configuration.Builder
      Sets the VolumeShaper duration in milliseconds. If omitted, the default duration is 1 second.
      
        
          
            | Parameters | 
          
            | durationMillis | Long: | 
        
      
      
      
        
          
            | Exceptions | 
          
            | java.lang.IllegalArgumentException | if durationMillisis not strictly positive. |