From 8ce25304430c16ff8d06de9a7d9b43efc02dd394 Mon Sep 17 00:00:00 2001 From: aNNiMON Date: Fri, 20 Oct 2023 15:21:16 +0300 Subject: [PATCH] Change buttons column count based on parameter preferences --- .../commands/ffmpeg/MediaProcessingKeyboard.java | 3 ++- .../com/annimon/ffmpegbot/parameters/AudioBitrate.java | 5 +++++ .../com/annimon/ffmpegbot/parameters/AudioEffect.java | 5 +++++ .../com/annimon/ffmpegbot/parameters/AudioPitch.java | 7 ++++++- .../ffmpegbot/parameters/AudioStreamByLanguage.java | 5 +++++ .../com/annimon/ffmpegbot/parameters/AudioVolume.java | 9 ++++++++- .../java/com/annimon/ffmpegbot/parameters/Parameter.java | 4 ++++ .../com/annimon/ffmpegbot/parameters/SpeedFactor.java | 5 +++++ .../com/annimon/ffmpegbot/parameters/VideoBitrate.java | 5 +++++ .../com/annimon/ffmpegbot/parameters/VideoFrameRate.java | 5 +++++ .../com/annimon/ffmpegbot/parameters/VideoScale.java | 5 +++++ 11 files changed, 55 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/annimon/ffmpegbot/commands/ffmpeg/MediaProcessingKeyboard.java b/src/main/java/com/annimon/ffmpegbot/commands/ffmpeg/MediaProcessingKeyboard.java index 250c8e2..8db1d75 100644 --- a/src/main/java/com/annimon/ffmpegbot/commands/ffmpeg/MediaProcessingKeyboard.java +++ b/src/main/java/com/annimon/ffmpegbot/commands/ffmpeg/MediaProcessingKeyboard.java @@ -49,9 +49,10 @@ public class MediaProcessingKeyboard { final String paramId = param.getId(); final int maxSize = param.getPossibleValuesSize(); int index = 0; + final int columnsCount = param.defaultColumnsCount(); while (index < maxSize) { final var row = new ArrayList(); - for (int i = 0; i < BUTTON_COLUMNS; i++) { + for (int i = 0; i < columnsCount; i++) { if (index < maxSize) { String value = param.describeValueByIndex(index); row.add(inlineKeyboardButton(value, callbackData(PARAMETER, callbackParams(paramId, index)))); diff --git a/src/main/java/com/annimon/ffmpegbot/parameters/AudioBitrate.java b/src/main/java/com/annimon/ffmpegbot/parameters/AudioBitrate.java index d2003b2..abb41be 100644 --- a/src/main/java/com/annimon/ffmpegbot/parameters/AudioBitrate.java +++ b/src/main/java/com/annimon/ffmpegbot/parameters/AudioBitrate.java @@ -23,6 +23,11 @@ public class AudioBitrate extends StringParameter { } } + @Override + public int defaultColumnsCount() { + return 3; + } + @Override public void accept(Visitor visitor, I input) { visitor.visit(this, input); diff --git a/src/main/java/com/annimon/ffmpegbot/parameters/AudioEffect.java b/src/main/java/com/annimon/ffmpegbot/parameters/AudioEffect.java index 819711f..9181926 100644 --- a/src/main/java/com/annimon/ffmpegbot/parameters/AudioEffect.java +++ b/src/main/java/com/annimon/ffmpegbot/parameters/AudioEffect.java @@ -28,6 +28,11 @@ public class AudioEffect extends StringParameter { } } + @Override + public int defaultColumnsCount() { + return 3; + } + @Override public void accept(Visitor visitor, I input) { visitor.visit(this, input); diff --git a/src/main/java/com/annimon/ffmpegbot/parameters/AudioPitch.java b/src/main/java/com/annimon/ffmpegbot/parameters/AudioPitch.java index ba32942..bc9f4a8 100644 --- a/src/main/java/com/annimon/ffmpegbot/parameters/AudioPitch.java +++ b/src/main/java/com/annimon/ffmpegbot/parameters/AudioPitch.java @@ -8,13 +8,18 @@ public class AudioPitch extends StringParameter { private static final List VALUES = List.of( "0.6", "0.8", "0.9", "1", - "1.15", "1.25", "1.5" + "1.15", "1.25", "1.5", "2" ); public AudioPitch() { super("apitch", "Audio pitch", VALUES, "1"); } + @Override + public int defaultColumnsCount() { + return 4; + } + @Override public void accept(Visitor visitor, I input) { visitor.visit(this, input); diff --git a/src/main/java/com/annimon/ffmpegbot/parameters/AudioStreamByLanguage.java b/src/main/java/com/annimon/ffmpegbot/parameters/AudioStreamByLanguage.java index 563c14e..6c485e0 100644 --- a/src/main/java/com/annimon/ffmpegbot/parameters/AudioStreamByLanguage.java +++ b/src/main/java/com/annimon/ffmpegbot/parameters/AudioStreamByLanguage.java @@ -22,6 +22,11 @@ public class AudioStreamByLanguage extends StringParameter { } } + @Override + public int defaultColumnsCount() { + return 3; + } + @Override public void accept(Visitor visitor, I input) { visitor.visit(this, input); diff --git a/src/main/java/com/annimon/ffmpegbot/parameters/AudioVolume.java b/src/main/java/com/annimon/ffmpegbot/parameters/AudioVolume.java index fc305e7..48be918 100644 --- a/src/main/java/com/annimon/ffmpegbot/parameters/AudioVolume.java +++ b/src/main/java/com/annimon/ffmpegbot/parameters/AudioVolume.java @@ -6,7 +6,9 @@ import java.util.List; public class AudioVolume extends StringParameter { private static final List VALUES = List.of( - "-15dB", "-10dB", "-5dB", "-2dB", "", "2dB", "5dB", "10dB", "15dB" + "-15dB", "-10dB", "-5dB", "-2dB", + "", "2dB", "5dB", "10dB", + "15dB", "30dB", "50dB" ); public AudioVolume() { @@ -22,6 +24,11 @@ public class AudioVolume extends StringParameter { } } + @Override + public int defaultColumnsCount() { + return 4; + } + @Override public void accept(Visitor visitor, I input) { visitor.visit(this, input); diff --git a/src/main/java/com/annimon/ffmpegbot/parameters/Parameter.java b/src/main/java/com/annimon/ffmpegbot/parameters/Parameter.java index 53ec19a..4141eb5 100644 --- a/src/main/java/com/annimon/ffmpegbot/parameters/Parameter.java +++ b/src/main/java/com/annimon/ffmpegbot/parameters/Parameter.java @@ -53,6 +53,10 @@ public abstract class Parameter { value = safeGet(index); } + public int defaultColumnsCount() { + return 2; + } + @Override public String toString() { return "[" + id + "] " + displayName + ": " + value; diff --git a/src/main/java/com/annimon/ffmpegbot/parameters/SpeedFactor.java b/src/main/java/com/annimon/ffmpegbot/parameters/SpeedFactor.java index 4f9fb5c..a11f887 100644 --- a/src/main/java/com/annimon/ffmpegbot/parameters/SpeedFactor.java +++ b/src/main/java/com/annimon/ffmpegbot/parameters/SpeedFactor.java @@ -15,6 +15,11 @@ public class SpeedFactor extends StringParameter { super("speed", "Speed", VALUES, "1"); } + @Override + public int defaultColumnsCount() { + return 4; + } + @Override public void accept(Visitor visitor, I input) { visitor.visit(this, input); diff --git a/src/main/java/com/annimon/ffmpegbot/parameters/VideoBitrate.java b/src/main/java/com/annimon/ffmpegbot/parameters/VideoBitrate.java index b2c1989..5b88ac2 100644 --- a/src/main/java/com/annimon/ffmpegbot/parameters/VideoBitrate.java +++ b/src/main/java/com/annimon/ffmpegbot/parameters/VideoBitrate.java @@ -23,6 +23,11 @@ public class VideoBitrate extends StringParameter { } } + @Override + public int defaultColumnsCount() { + return 4; + } + @Override public void accept(Visitor visitor, I input) { visitor.visit(this, input); diff --git a/src/main/java/com/annimon/ffmpegbot/parameters/VideoFrameRate.java b/src/main/java/com/annimon/ffmpegbot/parameters/VideoFrameRate.java index 6e7ce69..d01cfb6 100644 --- a/src/main/java/com/annimon/ffmpegbot/parameters/VideoFrameRate.java +++ b/src/main/java/com/annimon/ffmpegbot/parameters/VideoFrameRate.java @@ -22,6 +22,11 @@ public class VideoFrameRate extends StringParameter { } } + @Override + public int defaultColumnsCount() { + return 3; + } + @Override public void accept(Visitor visitor, I input) { visitor.visit(this, input); diff --git a/src/main/java/com/annimon/ffmpegbot/parameters/VideoScale.java b/src/main/java/com/annimon/ffmpegbot/parameters/VideoScale.java index 721671a..515c8a3 100644 --- a/src/main/java/com/annimon/ffmpegbot/parameters/VideoScale.java +++ b/src/main/java/com/annimon/ffmpegbot/parameters/VideoScale.java @@ -22,6 +22,11 @@ public class VideoScale extends StringParameter { } } + @Override + public int defaultColumnsCount() { + return 3; + } + @Override public void accept(Visitor visitor, I input) { visitor.visit(this, input);