You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/09/29 06:17:02 UTC
openmeetings git commit: [OPENMEETINGS-1714] more issues are fixed
Repository: openmeetings
Updated Branches:
refs/heads/master 7bc1800f9 -> 381838de8
[OPENMEETINGS-1714] more issues are fixed
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/381838de
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/381838de
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/381838de
Branch: refs/heads/master
Commit: 381838de81b518b6330ada11c0ba81b426a28e1f
Parents: 7bc1800
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Fri Sep 29 13:16:53 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Fri Sep 29 13:16:53 2017 +0700
----------------------------------------------------------------------
.../db/dto/basic/ServiceResult.java | 4 +-
.../openmeetings/screenshare/CaptureScreen.java | 26 ++--
.../apache/openmeetings/screenshare/Core.java | 31 +++--
.../screenshare/ScreenV1Encoder.java | 30 ++---
.../screenshare/gui/ScreenDimensions.java | 120 +++++++++++++++----
.../gui/ScreenHeightMouseListener.java | 8 +-
.../screenshare/gui/ScreenMouseListener.java | 6 +-
.../screenshare/gui/ScreenSharerFrame.java | 100 +++++++++-------
.../gui/ScreenWidthMouseListener.java | 8 +-
.../screenshare/gui/ScreenXMouseListener.java | 6 +-
.../screenshare/gui/ScreenYMouseListener.java | 6 +-
.../openmeetings/screenshare/job/EncodeJob.java | 19 +--
.../openmeetings/screenshare/job/RemoteJob.java | 22 ++--
.../util/OpenmeetingsVariables.java | 5 +-
.../openmeetings/web/app/Application.java | 3 +-
15 files changed, 242 insertions(+), 152 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java
index eb617d1..1bed23b 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java
@@ -31,8 +31,8 @@ import org.apache.openmeetings.util.OmException;
@XmlAccessorType(XmlAccessType.FIELD)
public class ServiceResult implements Serializable {
private static final long serialVersionUID = 1L;
- public static ServiceResult UNKNOWN = new ServiceResult(OmException.UNKNOWN.getKey(), Type.ERROR);
- public static ServiceResult NO_PERMISSION = new ServiceResult("error.notallowed", Type.ERROR);
+ public static final ServiceResult UNKNOWN = new ServiceResult(OmException.UNKNOWN.getKey(), Type.ERROR);
+ public static final ServiceResult NO_PERMISSION = new ServiceResult("error.notallowed", Type.ERROR);
private String message;
private String type;
@XmlType(namespace="org.apache.openmeetings.db.dto.basic.type")
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/CaptureScreen.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/CaptureScreen.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/CaptureScreen.java
index 0ce3502..eb7fc8d 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/CaptureScreen.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/CaptureScreen.java
@@ -19,7 +19,6 @@
package org.apache.openmeetings.screenshare;
import static org.apache.openmeetings.screenshare.Core.QUARTZ_GROUP_NAME;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.FPS;
import static org.apache.openmeetings.screenshare.util.Util.getQurtzProps;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.slf4j.LoggerFactory.getLogger;
@@ -29,6 +28,7 @@ import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.openmeetings.screenshare.gui.ScreenDimensions;
import org.apache.openmeetings.screenshare.job.CursorJob;
import org.apache.openmeetings.screenshare.job.EncodeJob;
import org.apache.openmeetings.screenshare.job.SendJob;
@@ -50,7 +50,7 @@ public class CaptureScreen extends Thread {
private static final Logger log = getLogger(CaptureScreen.class);
private final static String QUARTZ_CURSOR_TRIGGER_NAME = "CursorTrigger";
private final static String QUARTZ_CURSOR_JOB_NAME = "CursorJob";
- private Core core;
+ private final Core core;
private int timestampDelta;
private volatile AtomicInteger timestamp = new AtomicInteger(0);
private volatile AtomicBoolean sendFrameGuard = new AtomicBoolean(false);
@@ -65,6 +65,8 @@ public class CaptureScreen extends Thread {
private Number streamId;
private boolean startPublish = false;
private Scheduler _scheduler;
+ private final JobDetail cursorJob;
+ private final Trigger cursorTrigger;
public CaptureScreen(Core coreScreenShare, IScreenShare client, String host, String app, int port) {
core = coreScreenShare;
@@ -72,6 +74,12 @@ public class CaptureScreen extends Thread {
this.host = host;
this.app = app;
this.port = port;
+ cursorJob = JobBuilder.newJob(CursorJob.class).withIdentity(QUARTZ_CURSOR_JOB_NAME, QUARTZ_GROUP_NAME).build();
+ cursorTrigger = TriggerBuilder.newTrigger()
+ .withIdentity(QUARTZ_CURSOR_TRIGGER_NAME, QUARTZ_GROUP_NAME)
+ .withSchedule(simpleSchedule().withIntervalInMilliseconds(1000 / Math.min(5, core.getDim().getFPS())).repeatForever())
+ .build();
+ cursorJob.getJobDataMap().put(CursorJob.CAPTURE_KEY, this);
}
private Scheduler getScheduler() {
@@ -107,8 +115,8 @@ public class CaptureScreen extends Thread {
Thread.sleep(60);
}
- timestampDelta = 1000 / FPS;
- se = new ScreenV1Encoder(3 * FPS); //send keyframe every 3 seconds
+ timestampDelta = 1000 / core.getDim().getFPS();
+ se = new ScreenV1Encoder(core.getDim()); //send keyframe every 3 seconds
startTime = System.currentTimeMillis();
JobDetail encodeJob = JobBuilder.newJob(EncodeJob.class).withIdentity("EncodeJob", QUARTZ_GROUP_NAME).build();
@@ -220,12 +228,6 @@ public class CaptureScreen extends Thread {
try {
Scheduler s = getScheduler();
if (sendCursor) {
- JobDetail cursorJob = JobBuilder.newJob(CursorJob.class).withIdentity(QUARTZ_CURSOR_JOB_NAME, QUARTZ_GROUP_NAME).build();
- Trigger cursorTrigger = TriggerBuilder.newTrigger()
- .withIdentity(QUARTZ_CURSOR_TRIGGER_NAME, QUARTZ_GROUP_NAME)
- .withSchedule(simpleSchedule().withIntervalInMilliseconds(1000 / Math.min(5, FPS)).repeatForever())
- .build();
- cursorJob.getJobDataMap().put(CursorJob.CAPTURE_KEY, this);
s.scheduleJob(cursorJob, cursorTrigger);
} else {
s.deleteJob(JobKey.jobKey(QUARTZ_CURSOR_JOB_NAME, QUARTZ_GROUP_NAME));
@@ -234,4 +236,8 @@ public class CaptureScreen extends Thread {
log.error("Unexpected Error schedule/unschedule cursor job", e);
}
}
+
+ public ScreenDimensions getDim() {
+ return core.getDim();
+ }
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java
index 86e76a8..08af0d1 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/Core.java
@@ -19,12 +19,6 @@
package org.apache.openmeetings.screenshare;
import static java.lang.Boolean.TRUE;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.resizeX;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.resizeY;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.spinnerHeight;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.spinnerWidth;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.spinnerX;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.spinnerY;
import static org.apache.openmeetings.screenshare.util.Util.getQurtzProps;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.slf4j.LoggerFactory.getLogger;
@@ -38,6 +32,7 @@ import java.util.Map;
import java.util.UUID;
import java.util.concurrent.LinkedBlockingQueue;
+import org.apache.openmeetings.screenshare.gui.ScreenDimensions;
import org.apache.openmeetings.screenshare.gui.ScreenSharerFrame;
import org.apache.openmeetings.screenshare.job.RemoteJob;
import org.quartz.JobBuilder;
@@ -65,7 +60,6 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
public class Core implements IPendingServiceCallback, INetStreamEventHandler {
private static final Logger log = getLogger(Core.class);
- public static float Ampl_factor = 1f;
final static String QUARTZ_GROUP_NAME = "ScreenShare";
final static String QUARTZ_REMOTE_JOB_NAME = "RemoteJob";
final static String QUARTZ_REMOTE_TRIGGER_NAME = "RemoteTrigger";
@@ -107,6 +101,7 @@ public class Core implements IPendingServiceCallback, INetStreamEventHandler {
private SchedulerFactory schdlrFactory;
private Scheduler schdlr;
private LinkedBlockingQueue<Map<String, Object>> remoteEvents = new LinkedBlockingQueue<>();
+ private final ScreenDimensions dim;
private CaptureScreen getCapture() {
if (_capture == null) {
@@ -121,6 +116,7 @@ public class Core implements IPendingServiceCallback, INetStreamEventHandler {
// ------------------------------------------------------------------------
public Core(String[] args) {
+ dim = new ScreenDimensions();
try {
System.setProperty("org.terracotta.quartz.skipUpdateCheck", "true");
for (String arg : args) {
@@ -222,11 +218,11 @@ public class Core implements IPendingServiceCallback, INetStreamEventHandler {
try {
Point mouseP = MouseInfo.getPointerInfo().getLocation();
- float scaleFactor = (1.0f * resizeX) / spinnerWidth;
+ float scaleFactor = (1.0f * dim.getResizeX()) / dim.getSpinnerWidth();
// Real size: Real mouse position = Resize : X
- int x = (int)(Ampl_factor * (mouseP.getX() - spinnerX) * scaleFactor);
- int y = (int)(Ampl_factor * (mouseP.getY() - spinnerY) * scaleFactor);
+ int x = (int)((mouseP.getX() - dim.getSpinnerX()) * scaleFactor);
+ int y = (int)((mouseP.getY() - dim.getSpinnerY()) * scaleFactor);
if (instance.getConnection() != null) {
if (Red5.getConnectionLocal() == null) {
@@ -256,8 +252,8 @@ public class Core implements IPendingServiceCallback, INetStreamEventHandler {
}
Map<String, Object> map = new HashMap<>();
- int scaledWidth = (int)(Ampl_factor * resizeX);
- int scaledHeight = (int)(Ampl_factor * resizeY);
+ int scaledWidth = dim.getResizeX();
+ int scaledHeight = dim.getResizeY();
map.put("screenWidth", scaledWidth);
map.put("screenHeight", scaledHeight);
@@ -329,6 +325,11 @@ public class Core implements IPendingServiceCallback, INetStreamEventHandler {
}
}
+ public void sharingStop() {
+ startSharing = false;
+ captureScreenStop("stopStreaming");
+ }
+
public void recordingStop() {
startRecording = false;
captureScreenStop("stopRecording");
@@ -540,7 +541,7 @@ public class Core implements IPendingServiceCallback, INetStreamEventHandler {
log.debug("createPublishStream result stream id: {}; name: {}", getCapture().getStreamId(), broadcastId);
instance.publish(getCapture().getStreamId(), broadcastId, "live", this);
- log.debug("setup capture thread spinnerWidth = {}; spinnerHeight = {};", spinnerWidth, spinnerHeight);
+ log.debug("setup capture thread spinnerWidth = {}; spinnerHeight = {};", dim.getSpinnerWidth(), dim.getSpinnerHeight());
if (!getCapture().isAlive()) {
getCapture().setSendCursor(startSharing);
@@ -603,4 +604,8 @@ public class Core implements IPendingServiceCallback, INetStreamEventHandler {
public LinkedBlockingQueue<Map<String, Object>> getRemoteEvents() {
return remoteEvents;
}
+
+ public ScreenDimensions getDim() {
+ return dim;
+ }
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/ScreenV1Encoder.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/ScreenV1Encoder.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/ScreenV1Encoder.java
index b5500bd..7fa9980 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/ScreenV1Encoder.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/ScreenV1Encoder.java
@@ -18,8 +18,6 @@
*/
package org.apache.openmeetings.screenshare;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.resizeX;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.resizeY;
import static org.red5.io.IoConstants.FLAG_CODEC_SCREEN;
import static org.red5.io.IoConstants.FLAG_FRAMETYPE_INTERFRAME;
import static org.red5.io.IoConstants.FLAG_FRAMETYPE_KEYFRAME;
@@ -33,38 +31,30 @@ import java.io.OutputStream;
import java.util.zip.Deflater;
import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.openmeetings.screenshare.gui.ScreenDimensions;
import org.red5.server.net.rtmp.event.VideoData;
public class ScreenV1Encoder extends BaseScreenEncoder {
private int[][] last = null;
- private static int KEY_FRAME_INDEX = 25;
private static int DEFAULT_BLOCK_SIZE = 32;
private static int DEFAULT_SCREEN_WIDTH = 1920;
private static int DEFAULT_SCREEN_HEIGHT = 1080;
private int keyFrameIndex;
private int frameCount = 0;
- private int blockSize;
+ private int blockSize = DEFAULT_BLOCK_SIZE;
private ByteArrayOutputStream ba = new ByteArrayOutputStream(50 + 3 * DEFAULT_SCREEN_WIDTH * DEFAULT_SCREEN_HEIGHT);
private byte[] areaBuf = null;
private Deflater d = new Deflater(Deflater.DEFAULT_COMPRESSION);
private byte[] zipBuf = null;
private VideoData unalteredFrame = null;
+ private final ScreenDimensions dim;
- public ScreenV1Encoder() {
- this(KEY_FRAME_INDEX, DEFAULT_BLOCK_SIZE);
- }
-
- public ScreenV1Encoder(int keyFrameIndex) {
- this(keyFrameIndex, DEFAULT_BLOCK_SIZE);
- }
-
- //will create square blocks
- public ScreenV1Encoder(int keyFrameIndex, int blockSize) {
- this.keyFrameIndex = keyFrameIndex;
+ public ScreenV1Encoder(ScreenDimensions dim) {
+ this.dim = dim;
+ this.keyFrameIndex = 3 * dim.getFPS();
if (blockSize < 16 || blockSize > 256 || blockSize % 16 != 0) {
throw new RuntimeException("Invalid block size passed: " + blockSize + " should be: 'from 16 to 256 in multiples of 16'");
}
- this.blockSize = blockSize;
areaBuf = new byte[3 * blockSize * blockSize];
zipBuf = new byte[3 * blockSize * blockSize];
@@ -86,7 +76,7 @@ public class ScreenV1Encoder extends BaseScreenEncoder {
if (unalteredFrame == null) {
ByteArrayOutputStream ba = new ByteArrayOutputStream(200);
- Rectangle _area = new Rectangle(resizeX, resizeY);
+ Rectangle _area = new Rectangle(dim.getResizeX(), dim.getResizeY());
//header
ba.write(getTag(FLAG_FRAMETYPE_INTERFRAME, FLAG_CODEC_SCREEN));
writeShort(ba, _area.width + ((blockSize / 16 - 1) << 12));
@@ -189,9 +179,9 @@ public class ScreenV1Encoder extends BaseScreenEncoder {
os.write( n & 0xFF);
}
- public static int[][] getImage(Rectangle screen, Robot robot) {
- int[][] buffer = new int[resizeX][resizeY];
- BufferedImage image = resize(robot.createScreenCapture(screen), new Rectangle(resizeX, resizeY));
+ public static int[][] getImage(ScreenDimensions dim, Rectangle screen, Robot robot) {
+ int[][] buffer = new int[dim.getResizeX()][dim.getResizeY()];
+ BufferedImage image = resize(robot.createScreenCapture(screen), new Rectangle(dim.getResizeX(), dim.getResizeY()));
for (int x = 0; x < image.getWidth(); ++x) {
for (int y = 0; y < image.getHeight(); ++y) {
buffer[x][y] = image.getRGB(x, y);
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenDimensions.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenDimensions.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenDimensions.java
index c23e5ef..14c5235 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenDimensions.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenDimensions.java
@@ -23,36 +23,41 @@ import java.awt.Toolkit;
public class ScreenDimensions {
public static final int ROUND_VALUE = 16;
+
+ public enum ScreenQuality {
+ VeryHigh
+ , High
+ , Medium
+ , Low
+ }
/**
* image recalcing value's from the virtual Screen drawer
*/
- public static int width = 200;
- public static int height = 0;
+ private int width = 200;
+ private int height = 0;
/**
* Values calced by the original Screen
*/
-
- public static double ratio = 0;
-
- public static int widthMax = 0;
- public static int heightMax = 0;
+ private double ratio;
+ private final int widthMax;
+ private final int heightMax;
/**
* Values set by the virtualScreen
*/
- public static int spinnerWidth = 0;
- public static int spinnerHeight = 0;
- public static int spinnerX = 0;
- public static int spinnerY = 0;
+ private int spinnerWidth;
+ private int spinnerHeight;
+ private int spinnerX;
+ private int spinnerY;
- public static ScreenQuality quality = ScreenQuality.Medium;
- public static int FPS = 10;
+ private ScreenQuality quality = ScreenQuality.Medium;
+ private int FPS = 10;
- public static int resizeX = 640;
- public static int resizeY = 480;
+ private int resizeX;
+ private int resizeY;
- static {
+ public ScreenDimensions() {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
ratio = screenSize.getHeight() / screenSize.getWidth();
widthMax = (int)screenSize.getWidth();
@@ -66,10 +71,83 @@ public class ScreenDimensions {
resizeY = 400;
}
- public enum ScreenQuality {
- VeryHigh
- , High
- , Medium
- , Low
+ public int getResizeX() {
+ return resizeX;
+ }
+
+ public void setResizeX(int resizeX) {
+ this.resizeX = resizeX;
+ }
+
+ public int getResizeY() {
+ return resizeY;
+ }
+
+ public void setResizeY(int resizeY) {
+ this.resizeY = resizeY;
+ }
+
+ public int getSpinnerWidth() {
+ return spinnerWidth;
+ }
+
+ public void setSpinnerWidth(int spinnerWidth) {
+ this.spinnerWidth = spinnerWidth;
+ }
+
+ public int getSpinnerHeight() {
+ return spinnerHeight;
+ }
+
+ public void setSpinnerHeight(int spinnerHeight) {
+ this.spinnerHeight = spinnerHeight;
+ }
+
+ public int getSpinnerX() {
+ return spinnerX;
+ }
+
+ public void setSpinnerX(int spinnerX) {
+ this.spinnerX = spinnerX;
+ }
+
+ public int getSpinnerY() {
+ return spinnerY;
+ }
+
+ public void setSpinnerY(int spinnerY) {
+ this.spinnerY = spinnerY;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public int getWidthMax() {
+ return widthMax;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public int getHeightMax() {
+ return heightMax;
+ }
+
+ public ScreenQuality getQuality() {
+ return quality;
+ }
+
+ public void setQuality(ScreenQuality quality) {
+ this.quality = quality;
+ }
+
+ public int getFPS() {
+ return FPS;
+ }
+
+ public void setFPS(int fPS) {
+ FPS = fPS;
}
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenHeightMouseListener.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenHeightMouseListener.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenHeightMouseListener.java
index ca7a61b..ee03bc5 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenHeightMouseListener.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenHeightMouseListener.java
@@ -25,7 +25,7 @@ import java.awt.event.MouseEvent;
import javax.swing.event.MouseInputAdapter;
public class ScreenHeightMouseListener extends MouseInputAdapter {
- private ScreenSharerFrame frame;
+ private final ScreenSharerFrame frame;
private double y = 0;
public ScreenHeightMouseListener(ScreenSharerFrame frame) {
@@ -60,10 +60,10 @@ public class ScreenHeightMouseListener extends MouseInputAdapter {
}
double newY = e.getY();
- int newHeight = ScreenDimensions.spinnerHeight - (int)(y - newY);
- int newSpinnerY = ScreenDimensions.spinnerY + newHeight;
+ int newHeight = frame.getDim().getSpinnerHeight() - (int)(y - newY);
+ int newSpinnerY = frame.getDim().getSpinnerY() + newHeight;
- if (newSpinnerY >= 0 && newSpinnerY <= ScreenDimensions.heightMax) {
+ if (newSpinnerY >= 0 && newSpinnerY <= frame.getDim().getHeightMax()) {
frame.setDoUpdateBounds(false);
frame.setSpinnerHeight(newHeight);
frame.setDoUpdateBounds(true);
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenMouseListener.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenMouseListener.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenMouseListener.java
index ced9963..ed561c3 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenMouseListener.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenMouseListener.java
@@ -25,7 +25,7 @@ import java.awt.event.MouseEvent;
import javax.swing.event.MouseInputAdapter;
public class ScreenMouseListener extends MouseInputAdapter {
- private ScreenSharerFrame frame;
+ private final ScreenSharerFrame frame;
private int x = 0;
private int y = 0;
@@ -63,8 +63,8 @@ public class ScreenMouseListener extends MouseInputAdapter {
int newX = e.getX();
int newY = e.getY();
- int newXPosition = ScreenDimensions.spinnerX - (this.x - newX);
- int newYPosition = ScreenDimensions.spinnerY - (this.y - newY);
+ int newXPosition = frame.getDim().getSpinnerX() - (this.x - newX);
+ int newYPosition = frame.getDim().getSpinnerY() - (this.y - newY);
if (newXPosition >= 0) {
frame.setSpinnerX(newXPosition);
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenSharerFrame.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenSharerFrame.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenSharerFrame.java
index 5f27998..c3d72ae 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenSharerFrame.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenSharerFrame.java
@@ -19,8 +19,6 @@
package org.apache.openmeetings.screenshare.gui;
import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.ROUND_VALUE;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.resizeX;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.resizeY;
import static org.slf4j.LoggerFactory.getLogger;
import java.awt.AWTException;
@@ -114,6 +112,7 @@ public class ScreenSharerFrame extends JFrame {
private String recordingTipLabel;
private String publishingTipLabel;
private JCheckBox audioNotify;
+ private final Core core;
private class PublishTextField extends JTextField {
private static final long serialVersionUID = 1L;
@@ -230,6 +229,7 @@ public class ScreenSharerFrame extends JFrame {
* @throws IOException
*/
public ScreenSharerFrame(final Core core, String[] textLabels) throws AWTException {
+ this.core = core;
setTitle(getTextLabel(textLabels, 0)); //#id 730
setBackground(Color.WHITE);
setResizable(false);
@@ -274,7 +274,7 @@ public class ScreenSharerFrame extends JFrame {
if (sharingStarted) {
if (!sharingActionRequested) {
sharingActionRequested = true;
- core.stopSharing();
+ core.sharingStop();
} else {
logger.warn("Sharing action is already requested");
}
@@ -351,8 +351,8 @@ public class ScreenSharerFrame extends JFrame {
panelScreen.setLayout(null);
panelScreen.setBackground(Color.WHITE);
- int width = ScreenDimensions.width;
- int height = ScreenDimensions.height;
+ int width = getDim().getWidth();
+ int height = getDim().getHeight();
//Sliders
upSlider.addListener(new ScreenYMouseListener(this));
@@ -387,7 +387,7 @@ public class ScreenSharerFrame extends JFrame {
vscreenWidthLabel.setBounds(250, 20, 150, 24);
panelScreen.add(vscreenWidthLabel);
- spinnerWidth = new NumberSpinner(ScreenDimensions.spinnerWidth, 0, ScreenDimensions.widthMax, 1);
+ spinnerWidth = new NumberSpinner(getDim().getSpinnerWidth(), 0, getDim().getWidthMax(), 1);
spinnerWidth.setBounds(400, 20, 60, 24);
spinnerWidth.addChangeListener( new ChangeListener(){
@Override
@@ -403,7 +403,7 @@ public class ScreenSharerFrame extends JFrame {
labelHeight.setBounds(250, 50, 150, 24);
panelScreen.add(labelHeight);
- spinnerHeight = new NumberSpinner(ScreenDimensions.spinnerHeight, 0, ScreenDimensions.heightMax, 1);
+ spinnerHeight = new NumberSpinner(getDim().getSpinnerHeight(), 0, getDim().getHeightMax(), 1);
spinnerHeight.setBounds(400, 50, 60, 24);
spinnerHeight.addChangeListener( new ChangeListener(){
@Override
@@ -419,9 +419,9 @@ public class ScreenSharerFrame extends JFrame {
labelX.setBounds(250, 80, 150, 24);
panelScreen.add(labelX);
- spinnerX = new NumberSpinner(ScreenDimensions.spinnerX, 0, ScreenDimensions.widthMax, 1);
+ spinnerX = new NumberSpinner(getDim().getSpinnerX(), 0, getDim().getWidthMax(), 1);
spinnerX.setBounds(400, 80, 60, 24);
- spinnerX.addChangeListener( new ChangeListener(){
+ spinnerX.addChangeListener(new ChangeListener(){
@Override
public void stateChanged(ChangeEvent arg0) {
calcNewValueXSpin();
@@ -435,9 +435,9 @@ public class ScreenSharerFrame extends JFrame {
labelY.setBounds(250, 110, 150, 24);
panelScreen.add(labelY);
- spinnerY = new NumberSpinner(ScreenDimensions.spinnerY, 0, ScreenDimensions.heightMax, 1);
+ spinnerY = new NumberSpinner(getDim().getSpinnerY(), 0, getDim().getHeightMax(), 1);
spinnerY.setBounds(400, 110, 60, 24);
- spinnerY.addChangeListener( new ChangeListener(){
+ spinnerY.addChangeListener(new ChangeListener(){
@Override
public void stateChanged(ChangeEvent arg0) {
calcNewValueYSpin();
@@ -461,7 +461,7 @@ public class ScreenSharerFrame extends JFrame {
@Override
@SuppressWarnings("unchecked")
public void actionPerformed(ActionEvent e) {
- ScreenDimensions.quality = ((KeyValue<ScreenQuality>)comboQuality.getSelectedItem()).getValue();
+ getDim().setQuality(((KeyValue<ScreenQuality>)comboQuality.getSelectedItem()).getValue());
calcRescaleFactors();
}
});
@@ -479,7 +479,7 @@ public class ScreenSharerFrame extends JFrame {
@Override
@SuppressWarnings("unchecked")
public void actionPerformed(ActionEvent e) {
- ScreenDimensions.FPS = ((KeyValue<Integer>)comboFPS.getSelectedItem()).getValue();
+ getDim().setFPS(((KeyValue<Integer>)comboFPS.getSelectedItem()).getValue());
calcRescaleFactors();
}
});
@@ -733,18 +733,19 @@ public class ScreenSharerFrame extends JFrame {
void calcNewValueXSpin() {
if (doUpdateBounds) {
int newX = spinnerX.getValue();
- if (ScreenDimensions.spinnerWidth + newX > ScreenDimensions.widthMax) {
- newX = ScreenDimensions.widthMax - ScreenDimensions.spinnerWidth;
+ int val = getDim().getWidthMax() - getDim().getSpinnerWidth();
+ if (newX > val) {
+ newX = val;
spinnerX.setValue(newX);
if (showWarning) {
setStatus(reduceWidthLabel);
}
} else {
- ScreenDimensions.spinnerX = newX;
+ getDim().setSpinnerX(newX);
updateVScreenBounds();
}
} else {
- ScreenDimensions.spinnerX = spinnerX.getValue();
+ getDim().setSpinnerX(spinnerX.getValue());
}
calcRescaleFactors();
@@ -753,18 +754,19 @@ public class ScreenSharerFrame extends JFrame {
void calcNewValueYSpin() {
if (doUpdateBounds) {
int newY = spinnerY.getValue();
- if (ScreenDimensions.spinnerHeight + newY > ScreenDimensions.heightMax) {
- newY = ScreenDimensions.heightMax - ScreenDimensions.spinnerHeight;
+ int val = getDim().getHeightMax() - getDim().getSpinnerHeight();
+ if (newY > val) {
+ newY = val;
spinnerY.setValue(newY);
if (showWarning) {
setStatus(reduceHeightLabel);
}
} else {
- ScreenDimensions.spinnerY = newY;
+ getDim().setSpinnerY(newY);
updateVScreenBounds();
}
} else {
- ScreenDimensions.spinnerY = spinnerY.getValue();
+ getDim().setSpinnerY(spinnerY.getValue());
}
calcRescaleFactors();
@@ -773,18 +775,19 @@ public class ScreenSharerFrame extends JFrame {
void calcNewValueWidthSpin() {
if (doUpdateBounds) {
int newWidth = spinnerWidth.getValue();
- if (ScreenDimensions.spinnerX + newWidth > ScreenDimensions.widthMax) {
- newWidth = ScreenDimensions.widthMax - ScreenDimensions.spinnerX;
+ int val = getDim().getWidthMax() - getDim().getSpinnerX();
+ if (newWidth > val) {
+ newWidth = val;
spinnerWidth.setValue(newWidth);
if (showWarning) {
setStatus(reduceXLabel);
}
} else {
- ScreenDimensions.spinnerWidth = newWidth;
+ getDim().setSpinnerWidth(newWidth);
updateVScreenBounds();
}
} else {
- ScreenDimensions.spinnerWidth = spinnerWidth.getValue();
+ getDim().setSpinnerWidth(spinnerWidth.getValue());
}
calcRescaleFactors();
@@ -793,18 +796,19 @@ public class ScreenSharerFrame extends JFrame {
void calcNewValueHeightSpin() {
if (doUpdateBounds) {
int newHeight = spinnerHeight.getValue();
- if (ScreenDimensions.spinnerY + newHeight > ScreenDimensions.heightMax) {
- newHeight = ScreenDimensions.heightMax - ScreenDimensions.spinnerY;
+ int val = getDim().getHeightMax() - getDim().getSpinnerY();
+ if (newHeight > val) {
+ newHeight = val;
spinnerHeight.setValue(newHeight);
if (showWarning) {
setStatus(reduceYLabel);
}
} else {
- ScreenDimensions.spinnerHeight = newHeight;
+ getDim().setSpinnerHeight(newHeight);
updateVScreenBounds();
}
} else {
- ScreenDimensions.spinnerHeight = spinnerHeight.getValue();
+ getDim().setSpinnerHeight(spinnerHeight.getValue());
}
calcRescaleFactors();
@@ -815,20 +819,20 @@ public class ScreenSharerFrame extends JFrame {
*/
void calcRescaleFactors() {
logger.trace("calcRescaleFactors -- ");
- resizeX = spinnerWidth.getValue();
- resizeY = spinnerHeight.getValue();
- switch (ScreenDimensions.quality) {
+ int resizeX = spinnerWidth.getValue();
+ int resizeY = spinnerHeight.getValue();
+ switch (getDim().getQuality()) {
case Low:
- resizeX = (int)(2.0 * ScreenDimensions.resizeX / 8);
- resizeY = (int)(2.0 * ScreenDimensions.resizeY / 8);
+ resizeX = (int)(2.0 * resizeX / 8);
+ resizeY = (int)(2.0 * resizeY / 8);
break;
case Medium:
- resizeX = (int)(4.0 * ScreenDimensions.resizeX / 8);
- resizeY = (int)(4.0 * ScreenDimensions.resizeY / 8);
+ resizeX = (int)(4.0 * resizeX / 8);
+ resizeY = (int)(4.0 * resizeY / 8);
break;
case High:
- resizeX = (int)(6.0 * ScreenDimensions.resizeX / 8);
- resizeY = (int)(6.0 * ScreenDimensions.resizeY / 8);
+ resizeX = (int)(6.0 * resizeX / 8);
+ resizeY = (int)(6.0 * resizeY / 8);
break;
case VeryHigh:
default:
@@ -838,7 +842,9 @@ public class ScreenSharerFrame extends JFrame {
int dY = resizeY % ROUND_VALUE;
resizeX += dX == 0 ? 0 : ROUND_VALUE - dX;
resizeY += dY == 0 ? 0 : ROUND_VALUE - dY;
- logger.trace("resize: X:" + resizeX + " Y: " + resizeY);
+ logger.trace("resize: X: {} Y: {}", resizeX, resizeY);
+ getDim().setResizeX(resizeX);
+ getDim().setResizeY(resizeY);
updateVScreenBounds();
}
@@ -848,7 +854,7 @@ public class ScreenSharerFrame extends JFrame {
upSlider.setBounds(x + vScreenX + (width / 2) - 8, y + vScreenY - 16, 16, 32);
downSlider.setBounds(x + vScreenX + (width / 2) - 8, y + vScreenY - 16 + height, 16, 32);
- virtualScreen.setText(ScreenDimensions.spinnerWidth + ":" + ScreenDimensions.spinnerHeight);
+ virtualScreen.setText(String.format("%s:%s", getDim().getSpinnerWidth(), getDim().getSpinnerHeight()));
virtualScreen.setBounds(x + vScreenX, y + vScreenY, width, height);
}
@@ -858,13 +864,17 @@ public class ScreenSharerFrame extends JFrame {
*
*/
void updateVScreenBounds() {
- double ratio = ((double)ScreenDimensions.width) / ScreenDimensions.widthMax;
- int newWidth = (int)(ScreenDimensions.spinnerWidth * ratio);
- int newX = (int)(ScreenDimensions.spinnerX * ratio);
+ double ratio = ((double)getDim().getWidth()) / getDim().getWidthMax();
+ int newWidth = (int)(getDim().getSpinnerWidth() * ratio);
+ int newX = (int)(getDim().getSpinnerX() * ratio);
- int newHeight = (int)(ScreenDimensions.spinnerHeight * ratio);
- int newY = (int)(ScreenDimensions.spinnerY * ratio);
+ int newHeight = (int)(getDim().getSpinnerHeight() * ratio);
+ int newY = (int)(getDim().getSpinnerY() * ratio);
setVScreenBounds(newX, newY, newWidth, newHeight);
}
+
+ public ScreenDimensions getDim() {
+ return core.getDim();
+ }
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenWidthMouseListener.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenWidthMouseListener.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenWidthMouseListener.java
index 27862fa..404887c 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenWidthMouseListener.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenWidthMouseListener.java
@@ -25,7 +25,7 @@ import java.awt.event.MouseEvent;
import javax.swing.event.MouseInputAdapter;
public class ScreenWidthMouseListener extends MouseInputAdapter {
- private ScreenSharerFrame frame;
+ private final ScreenSharerFrame frame;
private double x = 0;
public ScreenWidthMouseListener(ScreenSharerFrame frame) {
@@ -60,10 +60,10 @@ public class ScreenWidthMouseListener extends MouseInputAdapter {
}
double newX = e.getX();
- int newWidth = ScreenDimensions.spinnerWidth - (int)(x - newX);
- int newSpinnerX = ScreenDimensions.spinnerX + newWidth;
+ int newWidth = frame.getDim().getSpinnerWidth() - (int)(x - newX);
+ int newSpinnerX = frame.getDim().getSpinnerX() + newWidth;
- if (0 <= newSpinnerX && newSpinnerX <= ScreenDimensions.widthMax) {
+ if (0 <= newSpinnerX && newSpinnerX <= frame.getDim().getWidthMax()) {
frame.setDoUpdateBounds(false);
frame.setSpinnerWidth(newWidth);
frame.setDoUpdateBounds(true);
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenXMouseListener.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenXMouseListener.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenXMouseListener.java
index 0e615f7..66106d2 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenXMouseListener.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenXMouseListener.java
@@ -25,7 +25,7 @@ import java.awt.event.MouseEvent;
import javax.swing.event.MouseInputAdapter;
public class ScreenXMouseListener extends MouseInputAdapter {
- private ScreenSharerFrame frame;
+ private final ScreenSharerFrame frame;
private double x = 0;
public ScreenXMouseListener(ScreenSharerFrame frame) {
@@ -60,8 +60,8 @@ public class ScreenXMouseListener extends MouseInputAdapter {
}
double newX = e.getX();
int delta = (int) (x - newX);
- int newXPosition = ScreenDimensions.spinnerX - delta;
- int newWidth = ScreenDimensions.spinnerWidth + delta;
+ int newXPosition = frame.getDim().getSpinnerX() - delta;
+ int newWidth = frame.getDim().getSpinnerWidth() + delta;
if (newXPosition >= 0 && newWidth >= 0) {
frame.setDoUpdateBounds(false);
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenYMouseListener.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenYMouseListener.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenYMouseListener.java
index 75ead4d..d1faf4b 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenYMouseListener.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/gui/ScreenYMouseListener.java
@@ -25,7 +25,7 @@ import java.awt.event.MouseEvent;
import javax.swing.event.MouseInputAdapter;
public class ScreenYMouseListener extends MouseInputAdapter {
- private ScreenSharerFrame frame;
+ private final ScreenSharerFrame frame;
private double y = 0;
public ScreenYMouseListener(ScreenSharerFrame frame) {
@@ -61,8 +61,8 @@ public class ScreenYMouseListener extends MouseInputAdapter {
double newY = e.getY();
int delta = (int) (y - newY);
- int newYPosition = ScreenDimensions.spinnerY - delta;
- int newHeight = ScreenDimensions.spinnerHeight + delta;
+ int newYPosition = frame.getDim().getSpinnerY() - delta;
+ int newHeight = frame.getDim().getSpinnerHeight() + delta;
if (newYPosition >= 0 && newHeight >= 0) {
frame.setDoUpdateBounds(false);
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/job/EncodeJob.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/job/EncodeJob.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/job/EncodeJob.java
index f211457..84c44ff 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/job/EncodeJob.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/job/EncodeJob.java
@@ -18,10 +18,6 @@
*/
package org.apache.openmeetings.screenshare.job;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.spinnerHeight;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.spinnerWidth;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.spinnerX;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.spinnerY;
import static org.slf4j.LoggerFactory.getLogger;
import java.awt.AWTException;
@@ -30,6 +26,7 @@ import java.awt.Robot;
import org.apache.openmeetings.screenshare.CaptureScreen;
import org.apache.openmeetings.screenshare.ScreenV1Encoder;
+import org.apache.openmeetings.screenshare.gui.ScreenDimensions;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job;
import org.quartz.JobDataMap;
@@ -42,9 +39,10 @@ import org.slf4j.Logger;
public class EncodeJob implements Job {
private static final Logger log = getLogger(EncodeJob.class);
public static final String CAPTURE_KEY = "capture";
- Robot robot;
- Rectangle screen = new Rectangle(spinnerX, spinnerY, spinnerWidth, spinnerHeight);
- int[][] image = null;
+ private Robot robot;
+ private ScreenDimensions dim;
+ private Rectangle screen = null;
+ private int[][] image = null;
public EncodeJob() {
try {
@@ -58,12 +56,17 @@ public class EncodeJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
JobDataMap data = context.getJobDetail().getJobDataMap();
CaptureScreen capture = (CaptureScreen)data.get(CAPTURE_KEY);
+ if (screen == null) {
+ dim = capture.getDim();
+ screen = new Rectangle(dim.getSpinnerX(), dim.getSpinnerY()
+ , dim.getSpinnerWidth(), dim.getSpinnerHeight());
+ }
long start = 0;
if (log.isTraceEnabled()) {
start = System.currentTimeMillis();
}
- image = ScreenV1Encoder.getImage(screen, robot);
+ image = ScreenV1Encoder.getImage(dim, screen, robot);
if (log.isTraceEnabled()) {
log.trace(String.format("encode: Image was captured in %s ms, size %sk", System.currentTimeMillis() - start, 4 * image.length * image[0].length / 1024));
start = System.currentTimeMillis();
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/job/RemoteJob.java
----------------------------------------------------------------------
diff --git a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/job/RemoteJob.java b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/job/RemoteJob.java
index 39f1357..122fffd 100644
--- a/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/job/RemoteJob.java
+++ b/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screenshare/job/RemoteJob.java
@@ -20,13 +20,6 @@ package org.apache.openmeetings.screenshare.job;
import static java.awt.Toolkit.getDefaultToolkit;
import static java.awt.datatransfer.DataFlavor.stringFlavor;
-import static org.apache.openmeetings.screenshare.Core.Ampl_factor;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.resizeX;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.resizeY;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.spinnerHeight;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.spinnerWidth;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.spinnerX;
-import static org.apache.openmeetings.screenshare.gui.ScreenDimensions.spinnerY;
import static org.apache.openmeetings.screenshare.util.Util.getFloat;
import static org.slf4j.LoggerFactory.getLogger;
@@ -45,6 +38,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.commons.lang3.SystemUtils;
import org.apache.openmeetings.screenshare.Core;
+import org.apache.openmeetings.screenshare.gui.ScreenDimensions;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job;
import org.quartz.JobDataMap;
@@ -57,6 +51,7 @@ public class RemoteJob implements Job {
private static final Logger log = getLogger(RemoteJob.class);
public static final String CORE_KEY = "core";
private Robot robot = null;
+ private ScreenDimensions dim = null;
public RemoteJob() {
try {
@@ -71,6 +66,9 @@ public class RemoteJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
JobDataMap data = context.getJobDetail().getJobDataMap();
Core core = (Core)data.get(CORE_KEY);
+ if (dim == null) {
+ dim = core.getDim();
+ }
try {
Map<String, Object> obj;
while ((obj = core.getRemoteEvents().poll(1, TimeUnit.MILLISECONDS)) != null) {
@@ -189,12 +187,12 @@ public class RemoteJob implements Job {
}
}
- private static Point getCoordinates(Map<String, Object> obj) {
- float scaleFactorX = spinnerWidth / (Ampl_factor * resizeX);
- float scaleFactorY = spinnerHeight / (Ampl_factor * resizeY);
+ private Point getCoordinates(Map<String, Object> obj) {
+ float scaleFactorX = dim.getSpinnerWidth() / dim.getResizeX();
+ float scaleFactorY = dim.getSpinnerHeight() / dim.getResizeY();
- int x = Math.round(scaleFactorX * getFloat(obj, "x") + spinnerX);
- int y = Math.round(scaleFactorY * getFloat(obj, "y") + spinnerY);
+ int x = Math.round(scaleFactorX * getFloat(obj, "x") + dim.getSpinnerX());
+ int y = Math.round(scaleFactorY * getFloat(obj, "y") + dim.getSpinnerY());
return new Point(x, y);
}
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
----------------------------------------------------------------------
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
index dc0556f..4d18b34 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
@@ -105,9 +105,8 @@ public class OpenmeetingsVariables {
public static final String FLASH_QUALITY = "quality";
public static final String FLASH_ECHO_PATH = "echoPath";
public static final String FLASH_MIC_RATE = "micRate";
-
- public static int DEFAULT_MINUTES_REMINDER_SEND = 15;
- public static String DEFAULT_BASE_URL = "http://localhost:5080/openmeetings/";
+ public static final int DEFAULT_MINUTES_REMINDER_SEND = 15;
+ public static final String DEFAULT_BASE_URL = "http://localhost:5080/openmeetings/";
public static String webAppRootKey = null;
public static String webAppRootPath = null;
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/381838de/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index 472934c..42fb8ea 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
@@ -688,7 +688,8 @@ public class Application extends AuthenticatedWebApplication implements IApplica
Set<String> clients = get().getRooms().get(roomId);
if (clients != null) {
for (String uid : clients) {
- if (getOnlineClient(uid).getUserId().equals(userId)) {
+ Client c = getOnlineClient(uid);
+ if (c != null && c.getUserId().equals(userId)) {
return true;
}
}