Skip to content

Commit 4ce6bab

Browse files
committed
Set setting spinners with video settings
1 parent ca279e6 commit 4ce6bab

File tree

4 files changed

+91
-0
lines changed

4 files changed

+91
-0
lines changed

app/src/main/java/protect/videotranscoder/activity/MainActivity.java

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,19 @@ protected void onResume()
300300
startVideoPlayback();
301301
}
302302

303+
private void setSpinnerSelection(Spinner spinner, String value)
304+
{
305+
for(int index = 0; index < spinner.getCount(); index++)
306+
{
307+
String item = spinner.getItemAtPosition(index).toString();
308+
if(item.equals(value))
309+
{
310+
spinner.setSelection(index);
311+
break;
312+
}
313+
}
314+
}
315+
303316
private void populateOptionDefaults()
304317
{
305318
for(int id : BASIC_SETTINGS_IDS)
@@ -329,8 +342,21 @@ public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int
329342
findViewById(resId).setVisibility(visibility);
330343
}
331344

345+
VideoCodec currentVideoSelection = (VideoCodec)videoCodecSpinner.getSelectedItem();
346+
AudioCodec currentAudioSelection = (AudioCodec)audioCodecSpinner.getSelectedItem();
347+
332348
videoCodecSpinner.setAdapter(new ArrayAdapter<>(MainActivity.this, R.layout.spinner_textview, container.supportedVideoCodecs));
333349
audioCodecSpinner.setAdapter(new ArrayAdapter<>(MainActivity.this, R.layout.spinner_textview, container.supportedAudioCodecs));
350+
351+
// Attempt to set the same settings again, if they exist
352+
if(currentVideoSelection != null)
353+
{
354+
setSpinnerSelection(videoCodecSpinner, currentVideoSelection.toString());
355+
}
356+
if(currentAudioSelection != null)
357+
{
358+
setSpinnerSelection(audioCodecSpinner, currentAudioSelection.toString());
359+
}
334360
}
335361

336362
@Override
@@ -356,7 +382,12 @@ public void onNothingSelected(AdapterView<?> parentView)
356382
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id)
357383
{
358384
AudioCodec audioCodec = (AudioCodec) parentView.getItemAtPosition(position);
385+
386+
String currentSelection = (String)audioChannelSpinner.getSelectedItem();
359387
audioChannelSpinner.setAdapter(new ArrayAdapter<>(MainActivity.this, R.layout.spinner_textview, audioCodec.supportedChannels));
388+
389+
// Attempt to set the same setting as before, if it exists
390+
setSpinnerSelection(audioChannelSpinner, currentSelection);
360391
}
361392

362393
@Override
@@ -374,6 +405,48 @@ public void onNothingSelected(AdapterView<?> parentView)
374405

375406
String [] channels = new String[] {"1", "2"};
376407
audioChannelSpinner.setAdapter(new ArrayAdapter<>(this, R.layout.spinner_textview, channels));
408+
409+
if(videoInfo.container != null)
410+
{
411+
setSpinnerSelection(containerSpinner, videoInfo.container.toString());
412+
}
413+
414+
if(videoInfo.videoCodec != null)
415+
{
416+
setSpinnerSelection(videoCodecSpinner, videoInfo.videoCodec.toString());
417+
}
418+
419+
if(videoInfo.videoFramerate != null)
420+
{
421+
setSpinnerSelection(fpsSpinner, videoInfo.videoFramerate);
422+
}
423+
424+
if(videoInfo.videoResolution != null)
425+
{
426+
setSpinnerSelection(resolutionSpinner, videoInfo.videoResolution);
427+
}
428+
429+
if(videoInfo.videoBitrate != null)
430+
{
431+
setSpinnerSelection(videoBitrateSpinner, videoInfo.videoBitrate);
432+
}
433+
434+
if(videoInfo.audioCodec != null)
435+
{
436+
setSpinnerSelection(audioCodecSpinner, videoInfo.audioCodec.toString());
437+
}
438+
439+
if(videoInfo.audioBitrate != null)
440+
{
441+
setSpinnerSelection(audioBitrateSpinner, videoInfo.audioBitrate);
442+
}
443+
444+
if(videoInfo.audioSampleRate != null)
445+
{
446+
setSpinnerSelection(audioSampleRateSpinner, videoInfo.audioSampleRate);
447+
}
448+
449+
setSpinnerSelection(audioChannelSpinner, Integer.toString(videoInfo.audioChannels));
377450
}
378451

379452
@Override

app/src/main/java/protect/videotranscoder/media/AudioCodec.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,10 @@ public static AudioCodec fromName(String name)
3939
return null;
4040
}
4141

42+
@Override
43+
public String toString()
44+
{
45+
return ffmpegName;
46+
}
47+
4248
}

app/src/main/java/protect/videotranscoder/media/MediaContainer.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,10 @@ public static MediaContainer fromName(String ffmpegName)
4747

4848
return null;
4949
}
50+
51+
@Override
52+
public String toString()
53+
{
54+
return ffmpegName;
55+
}
5056
}

app/src/main/java/protect/videotranscoder/media/VideoCodec.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,10 @@ public static VideoCodec fromName(String name)
3232
return null;
3333
}
3434

35+
@Override
36+
public String toString()
37+
{
38+
return ffmpegName;
39+
}
40+
3541
}

0 commit comments

Comments
 (0)