summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorguest <guest@f059d3a0-6783-47b7-97ff-1fe0bbf25129>2008-09-29 17:27:17 +0000
committerguest <guest@f059d3a0-6783-47b7-97ff-1fe0bbf25129>2008-09-29 17:27:17 +0000
commit408445cc49f360b979266ea93cf3bcb25a50a8e4 (patch)
treef04ddd775d23205e603f552693e448600b9b937d
parent1124d590a9db28e5a4088f8e84557469e7ee4bb2 (diff)
fixed crash introtuced in last commit
git-svn-id: http://manut.eu/svn/yalp/trunk@7 f059d3a0-6783-47b7-97ff-1fe0bbf25129
-rw-r--r--src/YalpClients/SwtClient/GUI/GUI.java7
-rwxr-xr-xsrc/YalpClients/SwtClient/Model.java70
-rw-r--r--src/YalpInputs/YalpPGSqlInput/PGSqlInput.java8
-rw-r--r--src/YalpInputs/YalpPGSqlInput/YalpInputPluginImpl.java87
-rwxr-xr-xsrc/YalpServer/ServerControlImpl.java9
5 files changed, 125 insertions, 56 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;
}
diff --git a/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java b/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java
index 531f53d..339ee4c 100644
--- a/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java
+++ b/src/YalpInputs/YalpPGSqlInput/PGSqlInput.java
@@ -108,9 +108,13 @@ public class PGSqlInput {
pluginInfo = tmp.value;
if(err.value.code != YalpErrorCode.OK)
+ {
System.out.println("registring inputplugin failed");
- else
- System.out.println("input plugin registered");
+ return;
+ }
+
+ psql.setInfo(pluginInfo);
+ System.out.println("input plugin registered");
orb.run();
diff --git a/src/YalpInputs/YalpPGSqlInput/YalpInputPluginImpl.java b/src/YalpInputs/YalpPGSqlInput/YalpInputPluginImpl.java
index 573c587..ef18b31 100644
--- a/src/YalpInputs/YalpPGSqlInput/YalpInputPluginImpl.java
+++ b/src/YalpInputs/YalpPGSqlInput/YalpInputPluginImpl.java
@@ -38,6 +38,12 @@ public class YalpInputPluginImpl extends InputPluginInterfacePOA {
logger.debug("YalpInputPluginImpl()");
}
+ public void setInfo(PluginInfo info)
+ {
+ logger.debug("interfaceImpl - setInfo(): "+info.id);
+ pluginInfo = info;
+ }
+
public void setORB(ORB _orb)
{
orb = _orb;
@@ -88,6 +94,13 @@ public class YalpInputPluginImpl extends InputPluginInterfacePOA {
logger.debug("search("+str+")");
+ YalpError error = new YalpError();
+ error.descr = "";
+ error.msg = "";
+ error.level = YalpErrorLevel.ERROR_LEVEL_INFO;
+ error.code = YalpErrorCode.OK;
+ err.value = error;
+
ArrayList <String> searchWords = stringCut(str);
String query = new String();
Boolean first, doIntersect, sound, video, image;
@@ -112,7 +125,6 @@ public class YalpInputPluginImpl extends InputPluginInterfacePOA {
}
}
- //for( int i = 0; i < searchWords.size(); i++ ) {
for( String pattern : searchWords ) {
first = true;
@@ -162,42 +174,73 @@ public class YalpInputPluginImpl extends InputPluginInterfacePOA {
logger.debug("sending SQL request: "+query);
+ ArrayList<Media> foundMedias = new ArrayList<Media>();
+
try {
Statement stat = con.createStatement();
ResultSet sqlResult = stat.executeQuery(query);
System.out.println("found: ");
+ MediaType type;
+
while( sqlResult.next() ) {
System.out.print(sqlResult.getString(3)+": ");
System.out.print(sqlResult.getString(4)+"\t| ");
System.out.println(sqlResult.getString(6));
- /*
- result.add(
- new Result( sqlResult.getInt(1),
- sqlResult.getString(2),
- --->
- result.getString(3),
- result.getString(4),
- result.getString(5),
- result.getString(6),
- result.getString(7),
- result.getString(8),
- result.getInt(9),
- result.getInt(10),
- result.getString(11),
- result.getInt(12),
- result.getString(13),
- result.getString(14),
- result.getString(15) ) );
- */
- }
- System.out.println();
+ switch( sqlResult.getString(2).charAt(0) ) {
+ case 's':
+ type = MediaType.SOUND;
+ break;
+ case 'v':
+ type = MediaType.VIDEO;
+ break;
+ case 'i':
+ type = MediaType.IMAGE;
+ break;
+ default:
+ type = MediaType.OTHER;
+ }
+
+ StringProperty[] strProp = new StringProperty[1];
+ strProp[0] = new StringProperty("","");
+
+ IntProperty[] intProp = new IntProperty[1];
+ intProp[0] = new IntProperty("", 0);
+
+ String[] tags = new String[1];
+ tags[0] = "blubb";
+
+ YalpUser owner = new YalpUser( 0, // user id
+ "huhu", // name
+ "manut", // real name
+ AccessRights.ADMIN );
+
+ Media newMedia = new Media( sqlResult.getString(6),
+ sqlResult.getInt(1),
+ type,
+ pluginInfo.id,
+ owner,
+ "", // last edit
+ sqlResult.getString(3),
+ sqlResult.getString(4),
+ sqlResult.getString(5),
+ strProp,
+ intProp,
+ tags );
+
+ foundMedias.add(newMedia);
+ logger.debug( sqlResult.getString(6) + "added to foundMedias");
+ }
} catch( SQLException e ) {
System.out.println("Exception in PGSqlInput.search: "+e);
}
+ Media[] m = new Media[foundMedias.size()];
+ result.value = foundMedias.toArray(m);
+
+ logger.debug("psql search done");
}
// == REIMPLEMENTATION NEEDED : == //
diff --git a/src/YalpServer/ServerControlImpl.java b/src/YalpServer/ServerControlImpl.java
index 3947cdd..44984c7 100755
--- a/src/YalpServer/ServerControlImpl.java
+++ b/src/YalpServer/ServerControlImpl.java
@@ -186,7 +186,14 @@ public ServerControlImpl() {
logger.debug("control()");
YalpError error = new YalpError();
error.code = YalpErrorCode.OK;
- err = new YalpErrorHolder(error);
+ error.descr = "streaming ;-)";
+ error.msg = "nice isn't it";
+ error.level = YalpErrorLevel.ERROR_LEVEL_INFO;
+ err.value = error;
+
+ Output out = new Output();
+ out = ctlOutput.value;
+ ctlOutput.value = out;
}
/*