MCPcopy Index your code
hub / github.com/artsmvch/WaveformSeekBar

github.com/artsmvch/WaveformSeekBar @1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.1 ↗ · + Follow
45 symbols 89 edges 1 files 13 documented · 29%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

WaveformSeekBar

SeekBar variant that shows waveform data

WaveformSeekBar

Getting started

Setting up the dependency

First of all, include the library in your project.

  1. Add it in your root build.gradle at the end of repositories:
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
  1. Add the dependency:
implementation 'com.github.alexei-frolo:WaveformSeekBar:1.0'

WaveformSeekBar example

This section explains how to use WaveformSeekBar.

First, add the view to xml layout:

...

<com.frolo.waveformseekbar.WaveformSeekBar
    android:id="@+id/waveform_seek_bar"
    android:layout_width="match_parent"
    android:layout_gravity="center"
    android:layout_height="100dp"
    android:layout_margin="16dp"/>

...

Then you can set up waveform data and listen to progress changes as shown below:

...
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_waveformseekbar_example);

    final WaveformSeekBar seekBar = findViewById(R.id.waveform_seek_bar);
    seekBar.setOnSeekBarChangeListener(new WaveformSeekBar.Callback() {
        @Override
        public void onProgressChanged(WaveformSeekBar seekBar, float percent, boolean fromUser) {

        }

        @Override
        public void onStartTrackingTouch(WaveformSeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(WaveformSeekBar seekBar) {
            Toast.makeText(
                    WaveformSeekBarExampleActivity.this,
                    "Tracked: percent=" + seekBar.getProgressPercent(),
                    Toast.LENGTH_SHORT).show();
        }
    });
    seekBar.setWaveform(createWaveform(), true);

    findViewById(R.id.btn_regenerate).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            seekBar.setWaveform(createWaveform(), true);
        }
    });
}

private int[] createWaveform() {
    //final Random random = new Random(System.currentTimeMillis());

    final int length = 50;
    final int[] values = new int[length];
    int maxValue = 0;

    for (int i = 0; i < length; i++) {
        final int newValue = 5 + random.nextInt(50);
        if (newValue > maxValue) {
            maxValue = newValue;
        }
        values[i] = newValue;
    }
    return values;
}
...

Extension points exported contracts — how you extend this code

Waveform (Interface)
(no doc) [2 implementers]
WaveformSeekBar/src/main/java/com/frolo/waveformseekbar/WaveformSeekBar.java
Callback (Interface)
(no doc)
WaveformSeekBar/src/main/java/com/frolo/waveformseekbar/WaveformSeekBar.java

Core symbols most depended-on inside this repo

getWaveCount
called by 7
WaveformSeekBar/src/main/java/com/frolo/waveformseekbar/WaveformSeekBar.java
getWaveCount
called by 5
WaveformSeekBar/src/main/java/com/frolo/waveformseekbar/WaveformSeekBar.java
getWaveAt
called by 5
WaveformSeekBar/src/main/java/com/frolo/waveformseekbar/WaveformSeekBar.java
getMaxWave
called by 5
WaveformSeekBar/src/main/java/com/frolo/waveformseekbar/WaveformSeekBar.java
createWaveform
called by 3
WaveformSeekBar/src/main/java/com/frolo/waveformseekbar/WaveformSeekBar.java
dpToPx
called by 3
WaveformSeekBar/src/main/java/com/frolo/waveformseekbar/WaveformSeekBar.java
calculateWaveDimensions
called by 3
WaveformSeekBar/src/main/java/com/frolo/waveformseekbar/WaveformSeekBar.java
calculateWaveCornerRadius
called by 3
WaveformSeekBar/src/main/java/com/frolo/waveformseekbar/WaveformSeekBar.java

Shape

Method 40
Class 2
Interface 2
Enum 1

Languages

Java100%

Modules by API surface

WaveformSeekBar/src/main/java/com/frolo/waveformseekbar/WaveformSeekBar.java45 symbols

For agents

$ claude mcp add WaveformSeekBar \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page