override port usage, helps to use another instance for lib operations of melted
authorMaksym Veremeyenko <verem@m1stereo.tv>
Tue, 3 Jul 2012 14:04:46 +0000 (17:04 +0300)
committerMaksym Veremeyenko <verem@m1stereo.tv>
Tue, 3 Jul 2012 14:04:46 +0000 (17:04 +0300)
src/instance.h
src/library.c
src/opts.c
src/player.c

index dab8930..c3e14ae 100644 (file)
@@ -140,6 +140,7 @@ typedef struct instance_desc
         player_t item[MAX_PLAYERS];
         int count;
         char host[PATH_MAX];
+        int port;
         pthread_mutex_t lock;
     } players;
     int f_exit;
@@ -155,6 +156,7 @@ typedef struct instance_desc
     } playlist;
     struct
     {
+        int port;
         void* handle[2];
         GdkPixbuf *icons[8];
 
index 84d5eef..5915ed5 100644 (file)
@@ -236,7 +236,7 @@ static void on_library_row_collapsed
 void library_init(instance_t* app)
 {
     /* connect to library */
-    app->library.handle[1] = mvcp_parser_init_remote(app->players.host, 5250);
+    app->library.handle[1] = mvcp_parser_init_remote(app->players.host, app->library.port);
     app->library.handle[0] = mvcp_init(app->library.handle[1]);
     if(mvcp_connect(app->library.handle[0]) != mvcp_ok)
     {
index 109ba1f..55b0d77 100644 (file)
@@ -35,6 +35,8 @@ static const struct option long_options [] =
 {
     { "host",                   required_argument,    NULL,   '0'},
     { "unit",                   required_argument,    NULL,   '1'},
+    { "lib-port",               required_argument,    NULL,   '2'},
+    { "main-port",              required_argument,    NULL,   '3'},
     { "help",                   no_argument,          NULL,   'h'},
     { 0,                        0,                    0,      0}
 };
@@ -47,7 +49,8 @@ int instance_opt(int argc, char** argv, instance_t* app)
     int c, index = 0;
 
     /* setup defaults */
-    app->library.id_display_rate = 20;
+    app->players.port = 5250;
+    app->library.port = 5250;
 
     /* reset datas */
     optind = 0; opterr = 0; optopt = 0;
@@ -76,6 +79,16 @@ int instance_opt(int argc, char** argv, instance_t* app)
                 app->players.count++;
                 break;
 
+            /** --lib-port */
+            case '2':
+                app->library.port = atol(optarg);
+                break;
+
+            /** --main-port */
+            case '3':
+                app->players.port = atol(optarg);
+                break;
+
             default:
                 fprintf(stderr, "ERROR: Incorrect argument!\n");
                 return 1;
@@ -94,5 +107,7 @@ void instance_usage(void)
         "Usage:\n"
         "\t--host=<STRING>    Host name of melted server\n"
         "\t--unit=<INT>       Player to use (e.g. unit number)\n"
+        "\t--main-port=<INT>  Melted instance ip port binded (default 5250), playback operations\n"
+        "\t--lib-port=<INT>   Melted instance ip port binded (default 5250), library operations\n"
     );
 };
index b07723b..d7468b6 100644 (file)
@@ -200,7 +200,7 @@ static void* player_thread_proc(void* data)
 void player_run(instance_t* app, int idx)
 {
     player_handle_t* handle = malloc(sizeof(player_handle_t));
-    handle->parser = mvcp_parser_init_remote(app->players.host, 5250);
+    handle->parser = mvcp_parser_init_remote(app->players.host, app->players.port);
     handle->status = mvcp_init(handle->parser);
     handle->command = mvcp_init(handle->parser);
     app->players.item[idx].handle = handle;