Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Open sidebar
VideoLAN
VLC-Android
Commits
e9102094
Commit
e9102094
authored
Jun 09, 2016
by
Alexandre Perraud
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
New playback speed behaviour
parent
d42ba975
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
58 additions
and
12 deletions
+58
-12
vlc-android/res/layout/dialog_playback_speed.xml
vlc-android/res/layout/dialog_playback_speed.xml
+6
-1
vlc-android/src/org/videolan/vlc/gui/dialogs/PlaybackSpeedDialog.java
...src/org/videolan/vlc/gui/dialogs/PlaybackSpeedDialog.java
+52
-11
No files found.
vlc-android/res/layout/dialog_playback_speed.xml
View file @
e9102094
...
...
@@ -83,7 +83,8 @@
android:max=
"200"
android:maxHeight=
"@dimen/seekbar_height"
android:minHeight=
"@dimen/seekbar_height"
android:nextFocusUp=
"@+id/playback_speed_reset"
android:nextFocusUp=
"@+id/playback_speed_icon"
android:nextFocusDown=
"@+id/playback_speed_plus"
android:progress=
"100"
android:progressDrawable=
"@drawable/po_seekbar"
android:splitTrack=
"false"
...
...
@@ -104,6 +105,8 @@
android:layout_marginBottom=
"@dimen/half_default_margin"
android:clickable=
"true"
android:focusable=
"true"
android:nextFocusUp=
"@+id/playback_speed_seek"
android:nextFocusDown=
"@+id/playback_speed_minus"
android:src=
"@drawable/ic_plus_circle"
/>
<ImageView
...
...
@@ -112,6 +115,8 @@
android:layout_height=
"wrap_content"
android:clickable=
"true"
android:focusable=
"true"
android:nextFocusUp=
"@+id/playback_speed_plus"
android:nextFocusDown=
"@+id/playback_speed_icon"
android:src=
"@drawable/ic_minus_circle"
/>
</LinearLayout>
...
...
vlc-android/src/org/videolan/vlc/gui/dialogs/PlaybackSpeedDialog.java
View file @
e9102094
...
...
@@ -45,7 +45,10 @@ public class PlaybackSpeedDialog extends DialogFragment implements PlaybackServi
private
TextView
mSpeedValue
;
private
SeekBar
mSeekSpeed
;
private
ImageView
mPlaybackSpeedIcon
;
private
ImageView
mPlaybackSpeedPlus
;
private
ImageView
mPlaybackSpeedMinus
;
private
boolean
mSeekBarAction
=
false
;
protected
PlaybackService
mService
;
protected
int
mTextColor
;
...
...
@@ -75,9 +78,13 @@ public class PlaybackSpeedDialog extends DialogFragment implements PlaybackServi
mSpeedValue
=
(
TextView
)
view
.
findViewById
(
R
.
id
.
playback_speed_value
);
mSeekSpeed
=
(
SeekBar
)
view
.
findViewById
(
R
.
id
.
playback_speed_seek
);
mPlaybackSpeedIcon
=
(
ImageView
)
view
.
findViewById
(
R
.
id
.
playback_speed_icon
);
mPlaybackSpeedPlus
=
(
ImageView
)
view
.
findViewById
(
R
.
id
.
playback_speed_plus
);
mPlaybackSpeedMinus
=
(
ImageView
)
view
.
findViewById
(
R
.
id
.
playback_speed_minus
);
mSeekSpeed
.
setOnSeekBarChangeListener
(
mSeekBarListener
);
mPlaybackSpeedIcon
.
setOnClickListener
(
mResetListener
);
mPlaybackSpeedPlus
.
setOnClickListener
(
mSpeedUpListener
);
mPlaybackSpeedMinus
.
setOnClickListener
(
mSpeedDownListener
);
mSpeedValue
.
setOnClickListener
(
mResetListener
);
mTextColor
=
mSpeedValue
.
getCurrentTextColor
();
...
...
@@ -94,10 +101,8 @@ public class PlaybackSpeedDialog extends DialogFragment implements PlaybackServi
private
void
setRateProgress
()
{
double
speed
=
mService
.
getRate
();
if
(
speed
!=
1.0d
)
{
speed
=
100
*
(
1
+
Math
.
log
(
speed
)
/
Math
.
log
(
4
));
mSeekSpeed
.
setProgress
((
int
)
speed
);
}
speed
=
100
*
(
1
+
Math
.
log
(
speed
)
/
Math
.
log
(
4
));
mSeekSpeed
.
setProgress
((
int
)
speed
);
updateInterface
();
}
...
...
@@ -106,17 +111,19 @@ public class PlaybackSpeedDialog extends DialogFragment implements PlaybackServi
public
void
onProgressChanged
(
SeekBar
seekBar
,
int
progress
,
boolean
fromUser
)
{
if
(
mService
==
null
)
return
;
float
rate
=
(
float
)
Math
.
pow
(
4
,
((
double
)
progress
/
(
double
)
100
)
-
1
);
mSpeedValue
.
setText
(
Strings
.
formatRateString
(
rate
)
)
;
mService
.
setRate
(
rate
);
updateInterface
();
if
(
mSeekBarAction
==
true
)
{
float
rate
=
(
float
)
Math
.
pow
(
4
,
((
double
)
progress
/
(
double
)
100
)
-
1
);
mService
.
setRate
(
rate
);
updateInterface
(
);
}
}
public
void
onStartTrackingTouch
(
SeekBar
seekBar
)
{
mSeekBarAction
=
true
;
}
public
void
onStopTrackingTouch
(
SeekBar
seekBar
)
{
mSeekBarAction
=
false
;
}
};
...
...
@@ -129,13 +136,47 @@ public class PlaybackSpeedDialog extends DialogFragment implements PlaybackServi
if
(
mService
.
getRate
()
==
1.0d
)
return
;
mSeekSpeed
.
setProgress
(
100
);
mService
.
setRate
(
1
);
setRateProgress
();
}
};
private
View
.
OnClickListener
mSpeedUpListener
=
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
mService
==
null
)
return
;
changeSpeed
(
0.05f
);
setRateProgress
();
}
};
private
View
.
OnClickListener
mSpeedDownListener
=
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
mService
==
null
)
return
;
changeSpeed
(-
0.05f
);
setRateProgress
();
}
};
public
void
changeSpeed
(
float
delta
){
double
initialRate
=
Math
.
round
(
mService
.
getRate
()
*
100
d
)
/
100
d
;
if
(
delta
>
0
)
initialRate
=
Math
.
floor
((
initialRate
+
0.005d
)
/
0.05d
)
*
0.05d
;
else
initialRate
=
Math
.
ceil
((
initialRate
-
0.005d
)
/
0.05d
)
*
0.05d
;
float
rate
=
Math
.
round
((
initialRate
+
delta
)
*
100
f
)
/
100
f
;
if
(
rate
<
0.25f
||
rate
>
4
f
)
return
;
mService
.
setRate
(
rate
);
}
private
void
updateInterface
()
{
if
(
mService
.
getRate
()
!=
1.0d
)
{
float
rate
=
mService
.
getRate
();
mSpeedValue
.
setText
(
Strings
.
formatRateString
(
rate
));
if
(
rate
!=
1.0f
)
{
mPlaybackSpeedIcon
.
setImageResource
(
R
.
drawable
.
ic_speed_reset
);
mSpeedValue
.
setTextColor
(
getResources
().
getColor
(
R
.
color
.
orange500
));
}
else
{
...
...
Alexandre Perraud
@Corbax
mentioned in commit
36f325ee
·
Jun 10, 2016
mentioned in commit
36f325ee
mentioned in commit 36f325ee07aa87f63e40101667a45164810cf522
Toggle commit list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment