]> git.sesse.net Git - vlc/commitdiff
* ncurses intf
authorDerk-Jan Hartman <hartman@videolan.org>
Fri, 28 May 2004 22:23:38 +0000 (22:23 +0000)
committerDerk-Jan Hartman <hartman@videolan.org>
Fri, 28 May 2004 22:23:38 +0000 (22:23 +0000)
  - Moved one dir higher
  - Fixed the Quit function
  - Added Volume Controls
  - Added Repeat/Loop/Random
  - Fixed the info box
  - Added Fullscreen remark to help box

It is now the perfect remote controller if I use my 'bedside terminal'.
ssh/screen/ncurses is like magic.

modules/gui/Modules.am
modules/gui/ncurses.c [moved from modules/gui/ncurses/ncurses.c with 93% similarity]
modules/gui/ncurses/Modules.am [deleted file]

index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9520c3e0d963388c9af4c91b8573f4fa5227561a 100644 (file)
@@ -0,0 +1 @@
+SOURCES_ncurses = ncurses.c
similarity index 93%
rename from modules/gui/ncurses/ncurses.c
rename to modules/gui/ncurses.c
index aff01e632252ce53723c169c283499209d839671..d691e1195937003e1c10417c61392e96c08d5b85 100644 (file)
@@ -6,6 +6,8 @@
  *
  * Authors: Sam Hocevar <sam@zoy.org>
  *          Laurent Aimar <fenrir@via.ecp.fr>
+ *          Yoann Peronneau <yoann@videolan.org>
+ *          Derk-Jan Hartman <hartman at videolan dot org>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -36,6 +38,7 @@
 #include <vlc/vlc.h>
 #include <vlc/intf.h>
 #include <vlc/vout.h>
+#include <vlc/aout.h>
 
 #ifdef HAVE_CDDAX
 #define CDDA_MRL "cddax://"
@@ -307,10 +310,25 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
 
         switch( i_key )
         {
-            /* Playlist sort */
+            vlc_value_t val;
+            /* Playlist Settings */
             case 'r':
-                playlist_Sort( p_sys->p_playlist, SORT_RANDOM, ORDER_NORMAL );
+                var_Get( p_sys->p_playlist, "random", &val );
+                val.b_bool = !val.b_bool;
+                var_Set( p_sys->p_playlist, "random", val );
+                return 1;
+            case 'l':
+                var_Get( p_sys->p_playlist, "loop", &val );
+                val.b_bool = !val.b_bool;
+                var_Set( p_sys->p_playlist, "loop", val );
                 return 1;
+            case 'R':
+                var_Get( p_sys->p_playlist, "repeat", &val );
+                val.b_bool = !val.b_bool;
+                var_Set( p_sys->p_playlist, "repeat", val );
+                return 1;
+
+            /* Playlist sort */
             case 'o':
                 playlist_Sort( p_sys->p_playlist, SORT_TITLE, ORDER_NORMAL );
                 return 1;
@@ -337,6 +355,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
             case KEY_NPAGE:
                 p_sys->i_box_plidx += p_sys->i_box_lines;
                 break;
+            case 'D':
             case KEY_BACKSPACE:
             case KEY_DC:
             {
@@ -527,7 +546,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
         case 'q':
         case 'Q':
         case 0x1b:  /* Esc */
-            p_intf->b_die = 1;
+            p_intf->p_vlc->b_die = VLC_TRUE;
             return 0;
 
         /* Box switching */
@@ -571,7 +590,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
                 p_sys->i_box_type = BOX_SEARCH;
             }
             return 1;
-        case 0x0f:      /* '^o': open */
+        case 'A': /* Open */
             if( p_sys->i_box_type != BOX_OPEN )
             {
                 if( p_sys->psz_open_chain == NULL )
@@ -667,6 +686,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
             }
             clear();
             return 1;
+
         case 'n':
             if( p_intf->p_sys->p_playlist )
             {
@@ -675,6 +695,16 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
             clear();
             return 1;
 
+        case 'a':
+            aout_VolumeUp( p_intf, 1, NULL );
+            clear();
+            return 1;
+
+        case 'z':
+            aout_VolumeDown( p_intf, 1, NULL );
+            clear();
+            return 1;
+
         /*
          * ^l should clear and redraw the screen
          */
@@ -849,7 +879,7 @@ static void Redraw ( intf_thread_t *p_intf, time_t *t_last_refresh )
 
     /* Title */
     attrset ( A_REVERSE );
-    mvnprintw( y, 0, COLS, VOUT_TITLE " (ncurses interface) [ h for help ]" );
+    mvnprintw( y, 0, COLS, "VLC media player" " (ncurses interface) [ h for help ]" );
     attroff ( A_REVERSE );
     y += 2;
 
@@ -880,6 +910,8 @@ static void Redraw ( intf_thread_t *p_intf, time_t *t_last_refresh )
         }
         if( val.i_int != INIT_S && val.i_int != END_S )
         {
+            audio_volume_t i_volume;
+
             /* Position */
             var_Get( p_input, "time", &val );
             msecstotimestr( buf1, val.i_time / 1000 );
@@ -889,6 +921,10 @@ static void Redraw ( intf_thread_t *p_intf, time_t *t_last_refresh )
 
             mvnprintw( y++, 0, COLS, " Position : %s/%s (%.2f%%)", buf1, buf2, p_sys->f_slider );
 
+            /* Volume */
+            aout_VolumeGet( p_intf, &i_volume );
+            mvnprintw( y++, 0, COLS, " Volume   : %i%%", i_volume*200/AOUT_VOLUME_MAX );
+
             /* Title */
             if( !var_Get( p_input, "title", &val ) )
             {
@@ -942,43 +978,48 @@ static void Redraw ( intf_thread_t *p_intf, time_t *t_last_refresh )
 
         MainBoxWrite( p_intf, l++, 1, "[Display]" );
         MainBoxWrite( p_intf, l++, 1, "     h,H         Show/Hide help box" );
-        MainBoxWrite( p_intf, l++, 1, "     i           Show/Hide informations box" );
-        MainBoxWrite( p_intf, l++, 1, "     l           Show/Hide logs box" );
+        MainBoxWrite( p_intf, l++, 1, "     i           Show/Hide info box" );
+        MainBoxWrite( p_intf, l++, 1, "     l           Show/Hide messages box" );
         MainBoxWrite( p_intf, l++, 1, "     P           Show/Hide playlist box" );
         MainBoxWrite( p_intf, l++, 1, "" );
 
         MainBoxWrite( p_intf, l++, 1, "[Global]" );
         MainBoxWrite( p_intf, l++, 1, "     q, Q        Quit" );
         MainBoxWrite( p_intf, l++, 1, "     s           Stop" );
-        MainBoxWrite( p_intf, l++, 1, "   <space>       Pause/Play" );
-        MainBoxWrite( p_intf, l++, 1, "     n, p        Next/Previous item" );
+        MainBoxWrite( p_intf, l++, 1, "     <space>     Pause/Play" );
+        MainBoxWrite( p_intf, l++, 1, "     f           Toggle Fullscreen" );
+        MainBoxWrite( p_intf, l++, 1, "     n, p        Next/Previous playlist item" );
         MainBoxWrite( p_intf, l++, 1, "     [, ]        Next/Previous title" );
-        MainBoxWrite( p_intf, l++, 1, "     <, >        Next/Previous title" );
+        MainBoxWrite( p_intf, l++, 1, "     <, >        Next/Previous chapter" );
         MainBoxWrite( p_intf, l++, 1, "     <right>     Seek +1%%" );
         MainBoxWrite( p_intf, l++, 1, "     <left>      Seek -1%%" );
+        MainBoxWrite( p_intf, l++, 1, "     a           Volume Up" );
+        MainBoxWrite( p_intf, l++, 1, "     z           Volume Down" );
         MainBoxWrite( p_intf, l++, 1, "" );
 
         MainBoxWrite( p_intf, l++, 1, "[Playlist]" );
-        MainBoxWrite( p_intf, l++, 1, "     r           Randomize playlist" );
-        MainBoxWrite( p_intf, l++, 1, "     o           Order Playlist" );
-        MainBoxWrite( p_intf, l++, 1, "     O           Reverse order Playlist" );
+        MainBoxWrite( p_intf, l++, 1, "     r           Random" );
+        MainBoxWrite( p_intf, l++, 1, "     l           Loop Playlist" );
+        MainBoxWrite( p_intf, l++, 1, "     R           Repeat item" );
+        MainBoxWrite( p_intf, l++, 1, "     o           Order Playlist by title" );
+        MainBoxWrite( p_intf, l++, 1, "     O           Reverse order Playlist by title" );
         MainBoxWrite( p_intf, l++, 1, "     /           Look for an item" );
-        MainBoxWrite( p_intf, l++, 1, "   Ctrl-o        Add an entry" );
-        MainBoxWrite( p_intf, l++, 1, "   <del>         Delete an entry" );
-        MainBoxWrite( p_intf, l++, 1, "  <backspace>    Delete an entry" );
+        MainBoxWrite( p_intf, l++, 1, "     A           Add an entry" );
+        MainBoxWrite( p_intf, l++, 1, "     D, <del>    Delete an entry" );
+        MainBoxWrite( p_intf, l++, 1, "     <backspace> Delete an entry" );
         MainBoxWrite( p_intf, l++, 1, "" );
 
         MainBoxWrite( p_intf, l++, 1, "[Boxes]" );
-        MainBoxWrite( p_intf, l++, 1, "  <up>,<down>    Navigate through the box line by line" );
-        MainBoxWrite( p_intf, l++, 1, " <pgup>,<pgdown> Navigate through the box page by page" );
+        MainBoxWrite( p_intf, l++, 1, "     <up>,<down>     Navigate through the box line by line" );
+        MainBoxWrite( p_intf, l++, 1, "     <pgup>,<pgdown> Navigate through the box page by page" );
         MainBoxWrite( p_intf, l++, 1, "" );
 
         MainBoxWrite( p_intf, l++, 1, "[Player]" );
-        MainBoxWrite( p_intf, l++, 1, "  <up>,<down>    Seek +/-5%%" );
+        MainBoxWrite( p_intf, l++, 1, "     <up>,<down>     Seek +/-5%%" );
         MainBoxWrite( p_intf, l++, 1, "" );
 
         MainBoxWrite( p_intf, l++, 1, "[Miscellaneous]" );
-        MainBoxWrite( p_intf, l++, 1, "   Ctrl-l        Refresh the screen" );
+        MainBoxWrite( p_intf, l++, 1, "     Ctrl-l          Refresh the screen" );
 
         p_sys->i_box_lines_total = l;
         if( p_sys->i_box_start >= p_sys->i_box_lines_total )
@@ -1004,8 +1045,7 @@ static void Redraw ( intf_thread_t *p_intf, time_t *t_last_refresh )
         if( p_input )
         {
             int i,j;
-
-            vlc_mutex_lock( &p_input->stream.stream_lock );
+            vlc_mutex_lock( &p_input->p_item->lock );
             for ( i = 0; i < p_input->p_item->i_categories; i++ )
             {
                 info_category_t *p_category = p_input->p_item->pp_categories[i];
diff --git a/modules/gui/ncurses/Modules.am b/modules/gui/ncurses/Modules.am
deleted file mode 100644 (file)
index 9520c3e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SOURCES_ncurses = ncurses.c