From 368cd8808da6e4c13bc365caf2d6855b4952eeaa Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 7 May 2014 02:11:10 -0400 Subject: [PATCH] Add support for selecting stream bitrate. --- gen/com/limelight/R.java | 21 +++++---- libs/limelight-common.jar | Bin 190281 -> 197906 bytes res/layout/activity_connection.xml | 23 +++++++++- src/com/limelight/Connection.java | 69 +++++++++++++++++++++++++++-- src/com/limelight/Game.java | 19 +++++++- 5 files changed, 115 insertions(+), 17 deletions(-) diff --git a/gen/com/limelight/R.java b/gen/com/limelight/R.java index 0f98dead..8a61712a 100644 --- a/gen/com/limelight/R.java +++ b/gen/com/limelight/R.java @@ -35,18 +35,21 @@ or to a theme attribute in the form "?[package:][type:]na public static final int ic_launcher=0x7f020000; } public static final class id { - public static final int autoDec=0x7f080005; - public static final int config1080p30Selected=0x7f080009; - public static final int config1080p60Selected=0x7f08000a; - public static final int config720p30Selected=0x7f080007; - public static final int config720p60Selected=0x7f080008; - public static final int hardwareDec=0x7f080006; + public static final int autoDec=0x7f080006; + public static final int bitrateLabel=0x7f08000c; + public static final int bitrateSeekBar=0x7f08000d; + public static final int config1080p30Selected=0x7f08000a; + public static final int config1080p60Selected=0x7f08000b; + public static final int config720p30Selected=0x7f080008; + public static final int config720p60Selected=0x7f080009; + public static final int decoderConfigGroup=0x7f080003; + public static final int hardwareDec=0x7f080007; public static final int hostTextView=0x7f080000; public static final int pairButton=0x7f080002; - public static final int softwareDec=0x7f080004; + public static final int softwareDec=0x7f080005; public static final int statusButton=0x7f080001; - public static final int streamConfigGroup=0x7f080003; - public static final int surfaceView=0x7f08000b; + public static final int streamConfigGroup=0x7f080004; + public static final int surfaceView=0x7f08000e; } public static final class layout { public static final int activity_connection=0x7f030000; diff --git a/libs/limelight-common.jar b/libs/limelight-common.jar index 4dad3c62cdb174914c420c852bbfc4ab1f9629c4..ae7f3b41d40325e57ba56f231839fb29dc6ca252 100644 GIT binary patch delta 40191 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 delta 32180 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 w25Le<51Daey~MMFfi>&P_e=OA8BP$;s5{u diff --git a/res/layout/activity_connection.xml b/res/layout/activity_connection.xml index d8eabccc..580f562d 100644 --- a/res/layout/activity_connection.xml +++ b/res/layout/activity_connection.xml @@ -45,12 +45,13 @@ android:text="Pair with PC" /> + + + + diff --git a/src/com/limelight/Connection.java b/src/com/limelight/Connection.java index 57288c36..e2fbab37 100644 --- a/src/com/limelight/Connection.java +++ b/src/com/limelight/Connection.java @@ -20,6 +20,8 @@ import android.widget.Button; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.RadioButton; +import android.widget.SeekBar; +import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; import android.widget.Toast; import android.app.Activity; @@ -33,6 +35,8 @@ public class Connection extends Activity { private SharedPreferences prefs; private RadioButton rbutton720p30, rbutton720p60, rbutton1080p30, rbutton1080p60; private RadioButton forceSoftDec, autoDec, forceHardDec; + private SeekBar bitrateSlider; + private TextView bitrateLabel; private static final String DEFAULT_HOST = ""; public static final String HOST_KEY = "hostText"; @@ -42,6 +46,7 @@ public class Connection extends Activity { SharedPreferences.Editor editor = prefs.edit(); editor.putString(Connection.HOST_KEY, this.hostText.getText().toString()); + editor.putInt(Game.BITRATE_PREF_STRING, bitrateSlider.getProgress()); editor.apply(); super.onPause(); @@ -66,12 +71,18 @@ public class Connection extends Activity { this.forceSoftDec = (RadioButton) findViewById(R.id.softwareDec); this.autoDec = (RadioButton) findViewById(R.id.autoDec); this.forceHardDec = (RadioButton) findViewById(R.id.hardwareDec); + this.bitrateLabel = (TextView) findViewById(R.id.bitrateLabel); + this.bitrateSlider = (SeekBar) findViewById(R.id.bitrateSeekBar); prefs = getSharedPreferences(Game.PREFS_FILE_NAME, Context.MODE_MULTI_PROCESS); this.hostText.setText(prefs.getString(Connection.HOST_KEY, Connection.DEFAULT_HOST)); boolean res720p = prefs.getInt(Game.HEIGHT_PREF_STRING, Game.DEFAULT_HEIGHT) == 720; boolean fps30 = prefs.getInt(Game.REFRESH_RATE_PREF_STRING, Game.DEFAULT_REFRESH_RATE) == 30; + + bitrateSlider.setMax(Game.BITRATE_CEILING); + bitrateSlider.setProgress(prefs.getInt(Game.BITRATE_PREF_STRING, Game.DEFAULT_BITRATE)); + updateBitrateLabel(); rbutton720p30.setChecked(false); rbutton720p60.setChecked(false); @@ -124,22 +135,30 @@ public class Connection extends Activity { if (buttonView == rbutton720p30) { prefs.edit().putInt(Game.WIDTH_PREF_STRING, 1280). putInt(Game.HEIGHT_PREF_STRING, 720). - putInt(Game.REFRESH_RATE_PREF_STRING, 30).commit(); + putInt(Game.REFRESH_RATE_PREF_STRING, 30). + putInt(Game.BITRATE_PREF_STRING, Game.BITRATE_DEFAULT_720_30).commit(); + bitrateSlider.setProgress(Game.BITRATE_DEFAULT_720_30); } else if (buttonView == rbutton720p60) { prefs.edit().putInt(Game.WIDTH_PREF_STRING, 1280). putInt(Game.HEIGHT_PREF_STRING, 720). - putInt(Game.REFRESH_RATE_PREF_STRING, 60).commit(); + putInt(Game.REFRESH_RATE_PREF_STRING, 60). + putInt(Game.BITRATE_PREF_STRING, Game.BITRATE_DEFAULT_720_60).commit(); + bitrateSlider.setProgress(Game.BITRATE_DEFAULT_720_60); } else if (buttonView == rbutton1080p30) { prefs.edit().putInt(Game.WIDTH_PREF_STRING, 1920). putInt(Game.HEIGHT_PREF_STRING, 1080). - putInt(Game.REFRESH_RATE_PREF_STRING, 30).commit(); + putInt(Game.REFRESH_RATE_PREF_STRING, 30). + putInt(Game.BITRATE_PREF_STRING, Game.BITRATE_DEFAULT_1080_30).commit(); + bitrateSlider.setProgress(Game.BITRATE_DEFAULT_1080_30); } else if (buttonView == rbutton1080p60) { prefs.edit().putInt(Game.WIDTH_PREF_STRING, 1920). putInt(Game.HEIGHT_PREF_STRING, 1080). - putInt(Game.REFRESH_RATE_PREF_STRING, 60).commit(); + putInt(Game.REFRESH_RATE_PREF_STRING, 60). + putInt(Game.BITRATE_PREF_STRING, Game.BITRATE_DEFAULT_1080_60).commit(); + bitrateSlider.setProgress(Game.BITRATE_DEFAULT_1080_60); } else if (buttonView == forceSoftDec) { prefs.edit().putInt(Game.DECODER_PREF_STRING, Game.FORCE_SOFTWARE_DECODER).commit(); @@ -160,6 +179,45 @@ public class Connection extends Activity { forceHardDec.setOnCheckedChangeListener(occl); autoDec.setOnCheckedChangeListener(occl); + this.bitrateSlider.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, + boolean fromUser) { + + // Verify the user's selection + if (fromUser) { + int floor; + if (rbutton720p30.isChecked()) { + floor = Game.BITRATE_FLOOR_720_30; + } + else if (rbutton720p60.isChecked()){ + floor = Game.BITRATE_FLOOR_720_60; + } + else if (rbutton1080p30.isChecked()){ + floor = Game.BITRATE_FLOOR_1080_30; + } + else /*if (rbutton1080p60.isChecked())*/ { + floor = Game.BITRATE_FLOOR_1080_60; + } + + if (progress < floor) { + seekBar.setProgress(floor); + return; + } + } + + updateBitrateLabel(); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + } + }); + this.statusButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { @@ -240,4 +298,7 @@ public class Connection extends Activity { } + private void updateBitrateLabel() { + bitrateLabel.setText(bitrateSlider.getProgress()+" Mbps"); + } } diff --git a/src/com/limelight/Game.java b/src/com/limelight/Game.java index b151e810..fbf2f269 100644 --- a/src/com/limelight/Game.java +++ b/src/com/limelight/Game.java @@ -63,11 +63,25 @@ public class Game extends Activity implements SurfaceHolder.Callback, OnGenericM public static final String HEIGHT_PREF_STRING = "ResV"; public static final String REFRESH_RATE_PREF_STRING = "FPS"; public static final String DECODER_PREF_STRING = "Decoder"; + public static final String BITRATE_PREF_STRING = "Bitrate"; + + public static final int BITRATE_FLOOR_720_30 = 4; + public static final int BITRATE_FLOOR_720_60 = 8; + public static final int BITRATE_FLOOR_1080_30 = 10; + public static final int BITRATE_FLOOR_1080_60 = 20; + + public static final int BITRATE_DEFAULT_720_30 = 7; + public static final int BITRATE_DEFAULT_720_60 = 10; + public static final int BITRATE_DEFAULT_1080_30 = 16; + public static final int BITRATE_DEFAULT_1080_60 = 30; + + public static final int BITRATE_CEILING = 50; public static final int DEFAULT_WIDTH = 1280; public static final int DEFAULT_HEIGHT = 720; public static final int DEFAULT_REFRESH_RATE = 60; public static final int DEFAULT_DECODER = 0; + public static final int DEFAULT_BITRATE = BITRATE_DEFAULT_720_60; public static final int FORCE_HARDWARE_DECODER = -1; public static final int AUTOSELECT_DECODER = 0; @@ -116,10 +130,11 @@ public class Game extends Activity implements SurfaceHolder.Callback, OnGenericM break; } - int refreshRate; + int refreshRate, bitrate; width = prefs.getInt(WIDTH_PREF_STRING, DEFAULT_WIDTH); height = prefs.getInt(HEIGHT_PREF_STRING, DEFAULT_HEIGHT); refreshRate = prefs.getInt(REFRESH_RATE_PREF_STRING, DEFAULT_REFRESH_RATE); + bitrate = prefs.getInt(BITRATE_PREF_STRING, DEFAULT_BITRATE); sh.setFixedSize(width, height); Display display = getWindowManager().getDefaultDisplay(); @@ -130,7 +145,7 @@ public class Game extends Activity implements SurfaceHolder.Callback, OnGenericM // Start the connection conn = new NvConnection(Game.this.getIntent().getStringExtra("host"), Game.this, - new StreamConfiguration(width, height, refreshRate)); + new StreamConfiguration(width, height, refreshRate, bitrate * 1000)); keybTranslator = new KeyboardTranslator(conn); controllerHandler = new ControllerHandler(conn);