diff options
Diffstat (limited to 'src/YalpClients')
| -rw-r--r-- | src/YalpClients/SwtClient/GUI/GUI.java | 7 | ||||
| -rwxr-xr-x | src/YalpClients/SwtClient/Model.java | 70 |
2 files changed, 46 insertions, 31 deletions
diff --git a/src/YalpClients/SwtClient/GUI/GUI.java b/src/YalpClients/SwtClient/GUI/GUI.java index 4c0e474..475f09b 100644 --- a/src/YalpClients/SwtClient/GUI/GUI.java +++ b/src/YalpClients/SwtClient/GUI/GUI.java @@ -1995,8 +1995,11 @@ public class GUI extends org.eclipse.swt.widgets.Composite { }
}
returnVal= model.search(search, types, tab);
- ArrayList<Media>resultList=model.getMedia(tab);
- for(int i=0;i<resultList.size();i++){
+ ArrayList<Media>resultList = model.getMedia(tab);
+ for( int i = 0;
+ (resultList != null) && (i < resultList.size());
+ i++ )
+ {
TableItem item;
Media result=resultList.get(i);
if (tab==1) item=new TableItem(resultTable1,SWT.NONE);
diff --git a/src/YalpClients/SwtClient/Model.java b/src/YalpClients/SwtClient/Model.java index 3c48615..912a3bb 100755 --- a/src/YalpClients/SwtClient/Model.java +++ b/src/YalpClients/SwtClient/Model.java @@ -48,13 +48,13 @@ public class Model { public ServerControlInterface srvCon;
private Process vlcPlayer;
- private Output actualStream;
- private Output streamInfo;
- private ArrayList<Media> findMedia;
- private ArrayList<Media> editMedia;
- private ArrayList<Media> toPlaylist;
- private ArrayList<Media> playList;
- private ArrayList<YalpUser> userList;
+ private Output actualStream = new Output();
+ private Output streamInfo = new Output();
+ private ArrayList<Media> findMedia = new ArrayList<Media>();
+ private ArrayList<Media> editMedia = new ArrayList<Media>();
+ private ArrayList<Media> toPlaylist = new ArrayList<Media>();
+ private ArrayList<Media> playList = new ArrayList<Media>();
+ private ArrayList<YalpUser> userList = new ArrayList<YalpUser>();
private ClientConfiguration settings;
private String clientIP;
private String curPasswd;
@@ -62,7 +62,7 @@ public class Model { private String userName;
private Boolean playback = false;
private Boolean logoff= false;
- private Session session;
+ private Session session = new Session();
/*
* Instances srvConnection to Registry, DbConnection, ServerControl
* and VlcStreamer. Also instances Class variables
@@ -350,9 +350,9 @@ public class Model { */
public Output createOutput(){
/* t.b.d. former createStream */
- this.streamInfo.outputAction = Action.CREATE;
+ streamInfo.outputAction = Action.CREATE;
Media[] a = {};
- this.streamInfo.playlist = this.playList.toArray(a);
+ streamInfo.playlist = this.playList.toArray(a);
return this.streamInfo;
}
@@ -374,15 +374,16 @@ public class Model { if (kind == 1){
srvCon.search(request, types.toArray(a), result, err);
for(int i = 0; i < result.value.length; i++)
- this.findMedia.add(result.value[i]);
- return this.findMedia.size();
+ findMedia.add(result.value[i]);
+ return findMedia.size();
} else {
srvCon.search(request, types.toArray(a), result, err);
for(int i = 0; i < result.value.length; i++)
- this.editMedia.add(result.value[i]);
- return this.editMedia.size();
+ editMedia.add(result.value[i]);
+ return editMedia.size();
}
} catch(Exception e){
+ e.printStackTrace();
System.out.println("Exceoption in Model search "+ e);
return 0;
}
@@ -489,7 +490,7 @@ public class Model { * stream to srvControl via play, pause, etc
*/
public void setActualStream(Output aStream){
- this.actualStream = aStream;
+ actualStream = aStream;
}
/*
@@ -514,7 +515,7 @@ public class Model { "client.Model.startVLC: playback this type is not supported" );
}
*/
- vlcCmd += this.actualStream.info.params;
+ vlcCmd += actualStream.info.params;
System.out.println(vlcCmd);
try {
@@ -531,8 +532,9 @@ public class Model { *
*/
private void stopVLC(){
- this.playback = false;
- this.vlcPlayer.destroy();
+ playback = false;
+ if(vlcPlayer != null)
+ vlcPlayer.destroy();
}
/*
@@ -542,22 +544,32 @@ public class Model { */
public boolean play(){
- this.playback = true;
+ playback = true;
+
+ actualStream.outputAction = Action.CREATE;
+ actualStream.info = new AccessInfo( "bam",
+ "bam",
+ "vlc",
+ "params",
+ AccessType.STREAM );
- this.actualStream = this.createOutput();
- this.actualStream.destIp = this.clientIP;
+ Media[] a = new Media[playList.size()];
+ actualStream.playlist = playList.toArray(a);
+ actualStream.destIp = clientIP;
YalpErrorHolder err = new YalpErrorHolder();
- OutputHolder tmp = new OutputHolder(this.actualStream);
- this.srvCon.control(tmp, err);
- this.actualStream = tmp.value;
+ OutputHolder tmp = new OutputHolder();
+ tmp.value = actualStream;
+
+ srvCon.control(tmp, err);
+ actualStream = tmp.value;
- this.actualStream.outputAction = Action.START;
- OutputHolder tmp2 = new OutputHolder(this.actualStream);
- this.srvCon.control(tmp2, err);
- this.actualStream = tmp2.value;
- this.startVLC();
+ actualStream.outputAction = Action.START;
+ OutputHolder tmp2 = new OutputHolder(actualStream);
+ srvCon.control(tmp2, err);
+ actualStream = tmp2.value;
+ startVLC();
return true;
}
|
