summaryrefslogtreecommitdiff
path: root/src/yalp.idl
diff options
context:
space:
mode:
authorguest <guest@f059d3a0-6783-47b7-97ff-1fe0bbf25129>2008-09-23 21:29:27 +0000
committerguest <guest@f059d3a0-6783-47b7-97ff-1fe0bbf25129>2008-09-23 21:29:27 +0000
commitd6fa96b4cd67cf4fa18b5b9b6739f9bc2494a9f4 (patch)
tree00aa9a27acb6b4c8d9868795a5295e9231f1eb20 /src/yalp.idl
initial import
git-svn-id: http://manut.eu/svn/yalp/trunk@1 f059d3a0-6783-47b7-97ff-1fe0bbf25129
Diffstat (limited to 'src/yalp.idl')
-rw-r--r--src/yalp.idl265
1 files changed, 265 insertions, 0 deletions
diff --git a/src/yalp.idl b/src/yalp.idl
new file mode 100644
index 0000000..6fb5203
--- /dev/null
+++ b/src/yalp.idl
@@ -0,0 +1,265 @@
+module YalpInterfaces
+{
+
+enum YalpErrorCode {
+ OK,
+ ERROR_SQL,
+ ERROR_UNDEFINED
+};
+
+enum YalpErrorLevel {
+ ERROR_LEVEL_DEBUG,
+ ERROR_LEVEL_INFO,
+ ERROR_LEVEL_ERROR,
+ ERROR_LEVEL_CRITICAL
+};
+
+struct YalpError {
+ string msg;
+ YalpErrorCode code;
+ YalpErrorLevel level;
+ string descr;
+};
+
+struct YalpFile {
+ boolean isDir;
+ string name;
+ string parent;
+};
+typedef sequence<YalpFile> YalpFiles;
+
+struct StreamCounter {
+ unsigned long actualStreams;
+ unsigned long allStreams;
+};
+
+enum AccessRights {
+ ADMIN,
+ USER,
+ NO_YALP_SERVER,
+ DENY
+};
+
+struct YalpUser {
+ unsigned long id;
+ string name;
+ string realName;
+ AccessRights level;
+};
+typedef sequence<YalpUser> Users;
+
+enum MediaType {
+ IMAGE,
+ VIDEO,
+ SOUND,
+ OTHER
+};
+typedef sequence<MediaType> MediaTypes;
+
+struct StringProperty {
+ string property;
+ string value;
+};
+typedef sequence<StringProperty> StringProperties;
+
+struct IntProperty {
+ string property;
+ long value;
+};
+typedef sequence<IntProperty> IntProperties;
+
+typedef sequence<string> MediaTags;
+
+struct Media {
+ /* mandatory */
+ string name;
+ unsigned long id;
+ MediaType type;
+ unsigned long inputPluginId;
+ /* optional */
+ YalpUser owner;
+ string lastEdit;
+ string path;
+ string fileName;
+ string duration;
+ StringProperties stringProps;
+ IntProperties intProps;
+ MediaTags tags;
+};
+typedef sequence<Media> Medias;
+
+enum Action {
+ START,
+ PLAY,
+ PAUSE,
+ STOP,
+ FORWARD,
+ BACKWARD,
+ CREATE,
+ EDIT,
+ DELETE
+};
+typedef sequence<Action> Actions;
+
+enum AccessType {
+ FILE,
+ FILES,
+ STREAM
+};
+
+enum EncodingType {
+ UNKNOWN,
+ MP3,
+ MPG,
+ MPEG,
+ AVI,
+ MOV,
+ M2T,
+ JPEG,
+ JPG,
+ TIFF
+};
+
+struct AccessInfo {
+ string name;
+ string description;
+ string executable;
+ string params;
+ AccessType type;
+};
+
+struct Output {
+ unsigned long id;
+ AccessInfo info;
+ Medias playlist;
+ Action outputAction;
+ string destIp;
+};
+
+enum PluginType {
+ INPUT_PLUGIN,
+ OUTPUT_PLUGIN,
+ AUTH_PLUGIN
+};
+
+struct PluginInfo {
+ /* mandatory */
+ unsigned long id;
+ string name;
+ string description;
+ PluginType type;
+ /* optional */
+ MediaTypes supportedTypes;
+ AccessInfo access;
+ unsigned short maxClients;
+ unsigned short actClients;
+};
+typedef sequence<PluginInfo> PluginInfos;
+
+struct Session {
+ unsigned long id;
+ YalpUser me;
+ string ip;
+ PluginInfos availablePlugins;
+};
+
+/* YALP startup
+ *
+ * 1) CORBA - NameService
+ * 2) YALP - ServerControl (connects to Db via NameService)
+ * 4) YALP - all Plugins (connecting to ServerControl via NS)
+ * 5) YALP - Clients (connecting to ServerControl via NS, getting handles)
+ * (to available OutputPlugins via ServerControl )
+ */
+
+/* implemented by OutputPlugins */
+interface OutputPluginInterface {
+ void getInfo(out PluginInfo info, out YalpError err);
+ void control(inout Output ctlOutput, out YalpError err);
+ oneway void shutdown();
+};
+
+/* implemented by InputPlugins */
+interface InputPluginInterface {
+ void getInfo(out PluginInfo info, out YalpError err);
+ void changeMedia(in Media toChange, in Action todo, out YalpError err);
+
+ void search(in string str, in MediaTypes types, out Medias result,
+ out YalpError err);
+
+ void getNumOfMedias(out unsigned long num, out YalpError err);
+};
+
+/* implemented by UserIdentificationPlugin */
+interface UserIdentificationInterface {
+ void getInfo(out PluginInfo info, out YalpError err);
+ void userVerify(in string user, in string passwd, out YalpError err,
+ out YalpUser acc);
+
+ void getUser(out Users list, out YalpError err);
+
+ void changeUser(in YalpUser usr, in string passwd, in Action todo,
+ out YalpError err);
+};
+
+/* implemented by YALP */
+interface ServerControlInterface {
+
+/* User Handling */
+
+ void clientLogon(in string userName, in string pass, in string ipAdress,
+ out Session hej, out YalpError err);
+
+ void clientLogoff(in Session bye, out YalpError err);
+
+ void getUser(out Users list, out YalpError err);
+
+ void changeUser(in YalpUser usr, in string passwd, in Action todo,
+ out YalpError err);
+
+/* Media Handling */
+
+ void changeMedia(in Media toChange, in Action todo, out YalpError err);
+ void getNumOfMedias(out unsigned long num, out YalpError err);
+ void control(inout Output ctlOutput, out YalpError err);
+
+ void search(in string str, in MediaTypes types, out Medias result,
+ out YalpError err);
+
+
+/* Outputplugin Handling */
+
+ void registerOutputPlugin(in OutputPluginInterface itf, inout PluginInfo info,
+ out YalpError err);
+
+ void removeOutputPlugin(in PluginInfo itf, out YalpError err);
+
+ void getOutputPlugins(out PluginInfos itfs, in string name,
+ out YalpError err);
+
+
+/* Inputplugin Handling */
+
+ void registerInputPlugin(in Object itf, inout PluginInfo info,
+ out YalpError err);
+
+ void removeInputPlugin(in PluginInfo itf, out YalpError err);
+
+ void getInputPlugins(out PluginInfos itfs, in string name,
+ out YalpError err);
+
+
+/* Identificationplugin Handling */
+
+ void registerAuthPlugin(in Object itf, inout PluginInfo info,
+ out YalpError err);
+
+ void removeAuthPlugin(in PluginInfo itf, out YalpError err);
+ void getAuthPlugins(out PluginInfos itfs, in string name, out YalpError err);
+
+ /* Server related */
+ void ping(out YalpError pong);
+ oneway void serverShutdown();
+};
+
+};