//Type typeFromClsid = Type.GetTypeFromCLSID(new Guid("CCE7BD95-3BC4-4cfb-9664-0BF83201BE09"));\r
//splitter = (IBaseFilter)Activator.CreateInstance(typeFromClsid);\r
//m_FilterGraph.AddFilter(splitter, "MXF Splitter");\r
- splitter = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "Sony MXF Splitter");\r
+ //splitter = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "Sony MXF Splitter");\r
\r
\r
- //splitter = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "LAV Splitter");\r
+ splitter = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "LAV Splitter");\r
if (splitter == null)\r
throw new Exception("No splitter!");\r
\r
#endif\r
}\r
\r
- private void SetupGraphSONY(Control hWin) {\r
- int hr;\r
-\r
- m_videoWidth = MediaDescription.Resolution.Width;\r
- m_videoHeight = MediaDescription.Resolution.Height;\r
-\r
- try {\r
- m_FilterGraph = new FilterGraph() as IFilterGraph2;\r
-\r
- IGraphBuilder graphBuilder = m_FilterGraph as IGraphBuilder;\r
- m_mediaSeek = m_FilterGraph as IMediaSeeking;\r
- m_mediaPosition = m_FilterGraph as IMediaPosition;\r
- m_mediaEvent = m_FilterGraph as IMediaEvent;\r
- m_mediaCtrl = m_FilterGraph as IMediaControl;\r
- m_videoWindow = m_FilterGraph as IVideoWindow;\r
-\r
- IBaseFilter sourceFilter = null;\r
- hr = m_FilterGraph.AddSourceFilter(MediaDescription.FileName, MediaDescription.FileName, out sourceFilter);\r
- DsError.ThrowExceptionForHR(hr);\r
-\r
- Type typeFromClsid = Type.GetTypeFromCLSID(new Guid("CCE7BD95-3BC4-4cfb-9664-0BF83201BE09"));\r
- //IBaseFilter splitter = (IBaseFilter)Activator.CreateInstance(typeFromClsid);\r
-\r
- IBaseFilter splitter = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "Sony MXF Splitter");\r
- if (splitter == null)\r
- throw new Exception("No splitter!");\r
-\r
- FilterGraphTools.ConnectFilters(graphBuilder, sourceFilter, "Output", splitter, "Input", true);\r
-\r
- IBaseFilter videoDecoder = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "Sony MPEG Video Decoder Pro");\r
- if (videoDecoder == null)\r
- throw new Exception("No video decoder!");\r
-\r
- FilterGraphTools.ConnectFilters(graphBuilder, splitter, "Video", videoDecoder, "Input", true);\r
-\r
- IBaseFilter sampGrabber = (IBaseFilter)new SampleGrabber();\r
- ConfigureSampleGrabber((ISampleGrabber)sampGrabber);\r
- hr = m_FilterGraph.AddFilter(sampGrabber, "Sample Grabber");\r
- DsError.ThrowExceptionForHR(hr);\r
-\r
- FilterGraphTools.ConnectFilters(graphBuilder, videoDecoder, "Output", sampGrabber, "Input", true);\r
-\r
- m_videoRenderer = (IBaseFilter)new VideoMixingRenderer9();\r
- hr = m_FilterGraph.AddFilter(m_videoRenderer, "Video Mixing Renderer 9");\r
- DsError.ThrowExceptionForHR(hr);\r
-\r
- FilterGraphTools.ConnectFilters(graphBuilder, sampGrabber, "Output", m_videoRenderer, "VMR Input0", true);\r
-\r
- ConfigureVideoWindow(hWin);\r
-\r
- if (DsFindPin.ByName(splitter, "Audio") != null) {\r
- IBaseFilter audioDecoder = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "SONY Audio Mixer");\r
- if (audioDecoder == null)\r
- throw new Exception("No audio decoder!");\r
-\r
- FilterGraphTools.ConnectFilters(graphBuilder, splitter, "Audio", audioDecoder, "Input", true);\r
- FilterGraphTools.RenderPin(graphBuilder, audioDecoder, "Output");\r
- }\r
-\r
- SaveSizeInfo(sampGrabber as ISampleGrabber);\r
-\r
- }\r
- catch (Exception e) {\r
- Debug.WriteLine(e.Message);\r
- }\r
- finally {\r
- }\r
- }\r
\r
// Configure the video window\r
private void ConfigureVideoWindow(Control hWin) {\r
public static MediaDescription GetDescription(string fileName) {\r
MediaDescription mediaDesc = new MediaDescription();\r
mediaDesc.fileName = fileName;\r
- return mediaDesc;\r
+ //return mediaDesc;\r
logger.Debug("Start MediaInfo");\r
MediaInfo MI = new MediaInfo();\r
MI.Open(fileName);\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<jobtemplate multiInstance="true">\r
+<commands>\r
+ <calljobstep type="user.jobengine.server.steps.FakeNoParamsStep" weight="1" />\r
+</commands>\r
+</jobtemplate>
\ No newline at end of file
--- /dev/null
+package user.jobengine.server.steps;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+import user.jobengine.server.IJobEngine;\r
+import user.jobengine.server.IJobRuntime;\r
+\r
+public class FakeNoParamsStep extends JobStep {\r
+ private static final Logger logger = LogManager.getLogger();\r
+ int count = 10;\r
+\r
+ @StepEntry\r
+ public Object[] execute(IJobEngine jobEngine, IJobRuntime jobRuntime) {\r
+ try {\r
+ logger.warn("| + | FakeNoParams step");\r
+ jobRuntime.incrementProgress(50);\r
+ Thread.sleep(15000);\r
+ jobRuntime.incrementProgress(100);\r
+ logger.warn("| - | FakeNoParams step");\r
+ } catch (Exception e) {\r
+ logger.error(e.getMessage());\r
+ }\r
+ return null;\r
+ }\r
+\r
+}\r
@StepEntry\r
public Object[] execute(long itemID, IJobEngine jobEngine, IJobRuntime jobRuntime) {\r
try {\r
- logger.warn(getMarker(), "Starting Fake step");\r
+ logger.warn("Starting Fake step");\r
String json = "{ houseID: '111222' }";\r
BasicDBObject o = (BasicDBObject) JSONUtil.jsonToDbObject(json);\r
for (int i = 0; i < count; i++) {\r
if (!canContinue())\r
break;\r
- Thread.sleep(1000);\r
jobRuntime.incrementProgress((i + 1) * count);\r
+ Thread.sleep(10000);\r
// logger.info("Progress {}", jobRuntime.getProgress());\r
}\r
} catch (Exception e) {\r
package user.commons.nexio.api;
-import user.commons.nexio.server.protocol.*;
-
import java.io.IOException;
-import java.util.ArrayList;
import java.util.Iterator;
-import java.util.List;
+
+import user.commons.nexio.server.protocol.Id;
+import user.commons.nexio.server.protocol.NexioServerProtocol;
+import user.commons.nexio.server.protocol.ProtocolException;
+import user.commons.nexio.server.protocol.Xid;
class MediabaseImpl implements Mediabase {
+ private class Itr implements Iterator<Clip> {
+
+ private Clip next;
+
+ public Itr() throws IOException, ProtocolException {
+ Id id = protocol.executeListFirstIDHandle();
+ next = id != null ? new ClipImpl(protocol, id) : null;
+ }
+
+ @Override
+ public boolean hasNext() {
+ return next != null;
+ }
+
+ @Override
+ public Clip next() {
+ if (next == null) {
+ return null;
+ }
+ final Clip c = next;
+ try {
+ Id id = protocol.executeListNextIDHandle();
+
+ //next = id != null ? new ClipImpl(protocol, id) : null;
+ if (id != null) {
+ next = new ClipImpl(protocol, id);
+ } else {
+ next = null;
+ }
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ } catch (ProtocolException e) {
+ throw new RuntimeException(e);
+ }
+
+ return c;
+ }
+
+ @Override
+ public void remove() {
+ }
+
+ }
+
private static final String ID = "id";
private final NexioServerProtocol protocol;
- private MediaListener mediaListener = null;
-
+
+ private MediaListener mediaListener = null;
+
//KONSTRUKTOR
public MediabaseImpl(NexioServerProtocol protocol) {
this.protocol = protocol;
public MediabaseImpl(NexioServerProtocol protocol, boolean startMediaListener) {
this.protocol = protocol;
- if(startMediaListener){
- this.mediaListener = new MediaListener(this, protocol.getConnection().getHost(), protocol.getConnection().getPort());
- }
- }
-
- public void startMediaListener(){
- if(this.mediaListener == null){
+ if (startMediaListener) {
this.mediaListener = new MediaListener(this, protocol.getConnection().getHost(), protocol.getConnection().getPort());
}
}
-
+
@Override
public Clip getClip(Id id) throws IOException, ProtocolException {
if (id == null) {
public MediaListener getMediaListener() {
return this.mediaListener;
}
-
+
@Override
public NexioServerProtocol getProtocol() {
return this.protocol;
}
- private class Itr implements Iterator<Clip> {
-
- private Clip next;
- public Itr() throws IOException, ProtocolException {
- Id id = protocol.executeListFirstIDHandle();
- next = id != null ? new ClipImpl(protocol, id) : null;
- }
-
- @Override
- public boolean hasNext() {
- return next != null;
- }
-
- @Override
- public Clip next() {
- if (next == null) {
- return null;
- }
- final Clip c = next;
- try {
- Id id = protocol.executeListNextIDHandle();
-
- //next = id != null ? new ClipImpl(protocol, id) : null;
- if(id != null){
- next = new ClipImpl(protocol, id);
- }else{
- next = null;
- }
- } catch (IOException e) {
- throw new RuntimeException(e);
- } catch (ProtocolException e) {
- throw new RuntimeException(e);
- }
-
- return c;
- }
-
- @Override
- public void remove() {
+ @Override
+ public void startMediaListener() {
+ if (this.mediaListener == null) {
+ this.mediaListener = new MediaListener(this, protocol.getConnection().getHost(), protocol.getConnection().getPort());
}
-
}
-
-
}
public Connection getConnection();
+ void setDescription(String id, String description) throws IOException;
+
}
@Override
public Connection getConnection() {
- ;
return this.connection;
}
+ @Override
+ public void setDescription(String id, String description) throws IOException {
+ byte[] SET_DESCRIPTION = ("...." + id + description).getBytes();
+ SET_DESCRIPTION[0] = (byte) 0xCF;
+ SET_DESCRIPTION[1] = (byte) 0xCC;
+ SET_DESCRIPTION[2] = (byte) 0xBC;
+ SET_DESCRIPTION[3] = (byte) 0x12;
+ connection.write(SET_DESCRIPTION);
+ connection.flush();
+ }
}
import org.junit.Test;\r
\r
import user.commons.nexio.NexioDataMiner;\r
+import user.commons.nexio.api.Controller;\r
\r
public class NexioDataMinerTest {\r
- private NexioDataMiner sut;\r
-\r
@BeforeClass\r
public static void initialize() throws Exception {\r
//Naplozas\r
System.getProperties().putAll(properties);\r
}\r
\r
+ private NexioDataMiner sut;\r
+\r
+ @Test\r
+ public void reset() {\r
+ sut = new NexioDataMiner();\r
+ sut.reset();\r
+ }\r
+\r
@Test\r
public void run() {\r
sut = new NexioDataMiner();\r
}\r
\r
@Test\r
- public void reset() {\r
- sut = new NexioDataMiner();\r
- sut.reset();\r
+ public void setDesc() throws Exception {\r
+ Controller c = new Controller("10.10.1.56");\r
+ c.connect();\r
+ c.getMediabase().getProtocol().setDescription("%0000205", "VALAMI");\r
}\r
}\r
}
}
+ private void bootstrap() throws JobEngineException {
+ submit("fake-noparams.xml", "Bootstrap", null);
+ }
+
protected Map<Long, IJobRuntime> createJobs() {
return new ConcurrentHashMap<Long, IJobRuntime>();
}
schedulerService = new SchedulerService(this);
schedulerService.statrtup();
+ bootstrap();
} catch (Exception e) {
logger.error(e);
}
logger.info("JobEngine started");
+
}
private void submit(IJobRuntime runtime) {
try {
this.join();
} catch (InterruptedException e) {
+ logger.catching(e);
}
}
}