mirror of
https://github.com/moonlight-stream/moonlight-embedded.git
synced 2026-04-18 06:20:05 +00:00
Better error messaging when input can't be used
This commit is contained in:
@@ -45,18 +45,24 @@ public class Limelight implements NvConnectionListener {
|
|||||||
*/
|
*/
|
||||||
private void startUp(StreamConfiguration streamConfig, List<String> inputs) {
|
private void startUp(StreamConfiguration streamConfig, List<String> inputs) {
|
||||||
conn = new NvConnection(host, this, streamConfig);
|
conn = new NvConnection(host, this, streamConfig);
|
||||||
conn.start(PlatformBinding.getDeviceName(), null,
|
|
||||||
VideoDecoderRenderer.FLAG_PREFER_QUALITY,
|
|
||||||
PlatformBinding.getAudioRenderer(),
|
|
||||||
PlatformBinding.getVideoDecoderRenderer());
|
|
||||||
|
|
||||||
for (String input:inputs) {
|
for (String input:inputs) {
|
||||||
try {
|
try {
|
||||||
new EvdevHandler(conn, input).start();
|
new EvdevHandler(conn, input).start();
|
||||||
} catch (FileNotFoundException ex) {
|
} catch (FileNotFoundException ex) {
|
||||||
displayError("Input", "Input (" + input + ") could not be found");
|
displayError("Input", "Input (" + input + ") could not be found");
|
||||||
|
return;
|
||||||
|
} catch (IOException ex) {
|
||||||
|
displayError("Input", "Input (" + input + ") could not be read");
|
||||||
|
displayError("Input", "Are you running as root?");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
conn.start(PlatformBinding.getDeviceName(), null,
|
||||||
|
VideoDecoderRenderer.FLAG_PREFER_QUALITY,
|
||||||
|
PlatformBinding.getAudioRenderer(),
|
||||||
|
PlatformBinding.getVideoDecoderRenderer());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void pair() {
|
private void pair() {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.limelight.nvstream.NvConnection;
|
|||||||
import com.limelight.nvstream.input.KeyboardPacket;
|
import com.limelight.nvstream.input.KeyboardPacket;
|
||||||
import com.limelight.nvstream.input.MouseButtonPacket;
|
import com.limelight.nvstream.input.MouseButtonPacket;
|
||||||
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyEvent;
|
||||||
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -167,9 +168,15 @@ public class EvdevHandler implements Runnable {
|
|||||||
private FileChannel deviceInput;
|
private FileChannel deviceInput;
|
||||||
private ByteBuffer inputBuffer;
|
private ByteBuffer inputBuffer;
|
||||||
|
|
||||||
public EvdevHandler(NvConnection conn, String device) throws FileNotFoundException {
|
public EvdevHandler(NvConnection conn, String device) throws FileNotFoundException, IOException {
|
||||||
this.conn = conn;
|
this.conn = conn;
|
||||||
FileInputStream in = new FileInputStream(device);
|
File file = new File(device);
|
||||||
|
if (!file.exists())
|
||||||
|
throw new FileNotFoundException("File " + device + " not found");
|
||||||
|
if (!file.canRead())
|
||||||
|
throw new IOException("Can't read from " + device);
|
||||||
|
|
||||||
|
FileInputStream in = new FileInputStream(file);
|
||||||
deviceInput = in.getChannel();
|
deviceInput = in.getChannel();
|
||||||
inputBuffer = ByteBuffer.allocate(MAX_STRUCT_SIZE_BYTES);
|
inputBuffer = ByteBuffer.allocate(MAX_STRUCT_SIZE_BYTES);
|
||||||
inputBuffer.order(ByteOrder.nativeOrder());
|
inputBuffer.order(ByteOrder.nativeOrder());
|
||||||
|
|||||||
Reference in New Issue
Block a user