[PD-cvs] externals/unauthorized/playlist CHANGES.LOG, 1.4, 1.5 help-playlist.pd, 1.4, 1.5 playlist.c, 1.8, 1.9

Yves Degoyon sevyves at users.sourceforge.net
Wed Nov 16 17:57:49 CET 2005


Update of /cvsroot/pure-data/externals/unauthorized/playlist
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21235

Modified Files:
	CHANGES.LOG help-playlist.pd playlist.c 
Log Message:
playlist 0.11

Index: CHANGES.LOG
===================================================================
RCS file: /cvsroot/pure-data/externals/unauthorized/playlist/CHANGES.LOG,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** CHANGES.LOG	2 Mar 2005 02:46:56 -0000	1.4
--- CHANGES.LOG	16 Nov 2005 16:57:46 -0000	1.5
***************
*** 1,2 ****
--- 1,5 ----
+ 0.11
+   added option to hide the graphic parts ( embedded list )
+   scroll by numbers
  0.10
    added GOP support

Index: playlist.c
===================================================================
RCS file: /cvsroot/pure-data/externals/unauthorized/playlist/playlist.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** playlist.c	2 Mar 2005 02:46:56 -0000	1.8
--- playlist.c	16 Nov 2005 16:57:46 -0000	1.9
***************
*** 56,60 ****
  static int guidebug=0;
  
! static char   *playlist_version = "playlist: 1 click file chooser : version 0.9, written by Yves Degoyon (ydegoyon at free.fr)";
  
  #define MAX_DIR_LENGTH 2048 // maximum length for a directory name
--- 56,60 ----
  static int guidebug=0;
  
! static char   *playlist_version = "playlist: 1 click file chooser : version 0.11, written by Yves Degoyon (ydegoyon at free.fr)";
  
  #define MAX_DIR_LENGTH 2048 // maximum length for a directory name
***************
*** 115,118 ****
--- 115,119 ----
      t_int x_itemselected;       /* index of the selected item                */
      t_int x_selected;           /* stores selected state                     */
+     t_int x_graphics;           /* flag to draw graphics or not              */
      char **x_dentries;          /* directory entries                         */
      t_int x_nentries;           /* number of entries in the current dir      */
***************
*** 145,149 ****
      // set title
      SYS_VGUI3(".x%x.c delete %xTITLE\n", canvas, x); 
!     SYS_VGUI8(".x%x.c create text %d %d -width %d -text \"%s\" -anchor w -font %s -tags %xTITLE\n",
                 canvas, 
                 text_xpix(&x->x_obj, glist)+5, 
--- 146,152 ----
      // set title
      SYS_VGUI3(".x%x.c delete %xTITLE\n", canvas, x); 
!     if ( x->x_graphics )
!     {
!       SYS_VGUI8(".x%x.c create text %d %d -width %d -text \"%s\" -anchor w -font %s -tags %xTITLE\n",
                 canvas, 
                 text_xpix(&x->x_obj, glist)+5, 
***************
*** 153,156 ****
--- 156,160 ----
                 x->x_font,
                 x );
+     }
  
      // delete previous entries
***************
*** 294,306 ****
  
      x->x_glist = glist;
!     SYS_VGUI8(".x%x.c create rectangle %d %d %d %d -fill %s -tags %xPLAYLIST\n",
               canvas, text_xpix(&x->x_obj, glist), text_ypix(&x->x_obj, glist),
               text_xpix(&x->x_obj, glist) + x->x_width, text_ypix(&x->x_obj, glist) + x->x_height,
               x->x_bgcolor, x); 
!     SYS_VGUI8(".x%x.c create rectangle %d %d %d %d -fill %s -tags %xSCROLLLIST\n",
               canvas, text_xpix(&x->x_obj, glist)+4*x->x_width/5, text_ypix(&x->x_obj, glist),
               text_xpix(&x->x_obj, glist) + x->x_width, text_ypix(&x->x_obj, glist) + x->x_height,
               x->x_sbcolor, x); 
! 
      playlist_update_dir( x, glist );
  
--- 298,312 ----
  
      x->x_glist = glist;
!     if ( x->x_graphics )
!     {
!       SYS_VGUI8(".x%x.c create rectangle %d %d %d %d -fill %s -tags %xPLAYLIST\n",
               canvas, text_xpix(&x->x_obj, glist), text_ypix(&x->x_obj, glist),
               text_xpix(&x->x_obj, glist) + x->x_width, text_ypix(&x->x_obj, glist) + x->x_height,
               x->x_bgcolor, x); 
!       SYS_VGUI8(".x%x.c create rectangle %d %d %d %d -fill %s -tags %xSCROLLLIST\n",
               canvas, text_xpix(&x->x_obj, glist)+4*x->x_width/5, text_ypix(&x->x_obj, glist),
               text_xpix(&x->x_obj, glist) + x->x_width, text_ypix(&x->x_obj, glist) + x->x_height,
               x->x_sbcolor, x); 
!     }
      playlist_update_dir( x, glist );
  
***************
*** 316,332 ****
      tv.tv_nsec = 10000000;
  
!     SYS_VGUI7(".x%x.c coords %xPLAYLIST %d %d %d %d\n",
               canvas, x,
               text_xpix(&x->x_obj, glist), text_ypix(&x->x_obj, glist),
               text_xpix(&x->x_obj, glist)+x->x_width, 
               text_ypix(&x->x_obj, glist)+x->x_height);
!     SYS_VGUI7(".x%x.c coords %xSCROLLLIST %d %d %d %d\n",
               canvas, x,
               text_xpix(&x->x_obj, glist)+4*x->x_width/5, text_ypix(&x->x_obj, glist),
               text_xpix(&x->x_obj, glist)+x->x_width, 
               text_ypix(&x->x_obj, glist)+x->x_height);
!     SYS_VGUI5(".x%x.c coords %xTITLE %d %d\n",
               canvas, x,
               text_xpix(&x->x_obj, glist)+5, text_ypix(&x->x_obj, glist)-10 );
      for ( i=x->x_firstseen; i<=x->x_lastseen; i++ )
      {
--- 322,341 ----
      tv.tv_nsec = 10000000;
  
!     if ( x->x_graphics )
!     {
!       SYS_VGUI7(".x%x.c coords %xPLAYLIST %d %d %d %d\n",
               canvas, x,
               text_xpix(&x->x_obj, glist), text_ypix(&x->x_obj, glist),
               text_xpix(&x->x_obj, glist)+x->x_width, 
               text_ypix(&x->x_obj, glist)+x->x_height);
!       SYS_VGUI7(".x%x.c coords %xSCROLLLIST %d %d %d %d\n",
               canvas, x,
               text_xpix(&x->x_obj, glist)+4*x->x_width/5, text_ypix(&x->x_obj, glist),
               text_xpix(&x->x_obj, glist)+x->x_width, 
               text_ypix(&x->x_obj, glist)+x->x_height);
!       SYS_VGUI5(".x%x.c coords %xTITLE %d %d\n",
               canvas, x,
               text_xpix(&x->x_obj, glist)+5, text_ypix(&x->x_obj, glist)-10 );
+     }
      for ( i=x->x_firstseen; i<=x->x_lastseen; i++ )
      {
***************
*** 346,352 ****
   t_int i;
   
!     SYS_VGUI3(".x%x.c delete %xPLAYLIST\n", canvas, x);
!     SYS_VGUI3(".x%x.c delete %xSCROLLLIST\n", canvas, x);
!     SYS_VGUI3(".x%x.c delete %xTITLE\n", canvas, x);
      for ( i=x->x_firstseen; i<=x->x_lastseen; i++ )
      {
--- 355,364 ----
   t_int i;
   
!     if ( x->x_graphics )
!     {
!       SYS_VGUI3(".x%x.c delete %xPLAYLIST\n", canvas, x);
!       SYS_VGUI3(".x%x.c delete %xSCROLLLIST\n", canvas, x);
!       SYS_VGUI3(".x%x.c delete %xTITLE\n", canvas, x);
!     }
      for ( i=x->x_firstseen; i<=x->x_lastseen; i++ )
      {
***************
*** 363,371 ****
      {
          /* sets the item in blue */
!         SYS_VGUI3(".x%x.c itemconfigure %xPLAYLIST -outline #0000FF\n", canvas, x);
      }
      else
      {
!         SYS_VGUI3(".x%x.c itemconfigure %xPLAYLIST -outline #000000\n", canvas, x);
      }
  }       
--- 375,383 ----
      {
          /* sets the item in blue */
!         if (x->x_graphics) SYS_VGUI3(".x%x.c itemconfigure %xPLAYLIST -outline #0000FF\n", canvas, x);
      }
      else
      {
!         if (x->x_graphics) SYS_VGUI3(".x%x.c itemconfigure %xPLAYLIST -outline #000000\n", canvas, x);
      }
  }       
***************
*** 457,536 ****
    {
      // eventually, move down
!     if ( ( x->x_cdy >= 3 ) && 
!          ( x->x_firstseen < x->x_nentries - ( x->x_height/x->x_charheight ) ) )
      {
         x->x_cdy = 0;
!        if ( x->x_firstseen + 1 < x->x_nentries )
         {
!           for ( i=x->x_firstseen; i<=x->x_lastseen; i++ )
!           {
!               SYS_VGUI4(".x%x.c delete %xENTRY%d\n", canvas, x, i); 
!           }
!           x->x_firstseen++;
!           for ( i=x->x_firstseen; i< x->x_nentries; i++ )
!           {
!              char *wrappedname = (char *) getbytes( x->x_width );
  
!              if ( (i-x->x_firstseen)*x->x_charheight+5 < x->x_height )
!              {
!                x->x_lastseen = i;
!                strncpy( wrappedname, x->x_dentries[i],  x->x_width/x->x_charwidth );
!                wrappedname[ x->x_width/x->x_charwidth ] = '\0';
!                SYS_VGUI11(".x%x.c create text %d %d -fill %s -activefill %s -width %d -text \"%s\" -anchor w -font %s -tags %xENTRY%d\n",
!                     canvas, 
!                     text_xpix(&x->x_obj, x->x_glist)+5, 
!                     text_ypix(&x->x_obj, x->x_glist)+5+(i-x->x_firstseen)*x->x_charheight, 
!                     x->x_fgcolor,
!                     x->x_secolor,
!                     x->x_width,
!                     wrappedname,
!                     x->x_font,
!                     x, i );
!              }
!              else break;
!           }
!           SYS_VGUI5(".x%x.c itemconfigure %xENTRY%d -fill %s\n", 
!                      canvas, x, x->x_itemselected, x->x_secolor); 
!           // post( "playlist : moved down first=%d last=%d", x->x_firstseen, x->x_lastseen );
         }
      }
      // eventually, move up
!     if ( ( x->x_cdy <= -3 ) && 
!          ( x->x_lastseen >= ( x->x_height/x->x_charheight ) ) )
      {
         x->x_cdy = 0;
!        if ( x->x_firstseen - 1 >= 0 )
!        {
!           for ( i=x->x_firstseen; i<=x->x_lastseen; i++ )
!           {
!               SYS_VGUI4(".x%x.c delete %xENTRY%d\n", canvas, x, i); 
!           }
!           x->x_firstseen--;
!           for ( i=x->x_firstseen; i< x->x_nentries; i++ )
!           {
!              char *wrappedname = (char *) getbytes( x->x_width );
  
!              if ( (i-x->x_firstseen)*x->x_charheight+5 < x->x_height )
!              {
!                x->x_lastseen = i;
!                strncpy( wrappedname, x->x_dentries[i],  x->x_width/x->x_charwidth );
!                wrappedname[ x->x_width/x->x_charwidth ] = '\0';
!                SYS_VGUI11(".x%x.c create text %d %d -fill %s -activefill %s -width %d -text \"%s\"  \
!                         -anchor w -font %s -tags %xENTRY%d\n",
!                     canvas, 
!                     text_xpix(&x->x_obj, x->x_glist)+5, 
!                     text_ypix(&x->x_obj, x->x_glist)+5+(i-x->x_firstseen)*x->x_charheight, 
!                     x->x_fgcolor,
!                     x->x_secolor,
!                     x->x_width,
!                     wrappedname,
!                     x->x_font,
!                     x, i );
!              }
!              else break;
!           }
!           SYS_VGUI5(".x%x.c itemconfigure %xENTRY%d -fill %s\n", 
!                       canvas, x, x->x_itemselected, x->x_secolor); 
!           // post( "playlist : moved up first=%d last=%d", x->x_firstseen, x->x_lastseen );
         }
      }
--- 469,552 ----
    {
      // eventually, move down
!     if ( x->x_cdy >= x->x_charheight )
      {
         x->x_cdy = 0;
!        if ( x->x_firstseen < x->x_nentries - ( x->x_height/x->x_charheight ) )
         {
!          if ( x->x_firstseen + 1 < x->x_nentries )
!          {
!             for ( i=x->x_firstseen; i<=x->x_lastseen; i++ )
!             {
!                 SYS_VGUI4(".x%x.c delete %xENTRY%d\n", canvas, x, i); 
!             }
!             x->x_firstseen++;
!             for ( i=x->x_firstseen; i< x->x_nentries; i++ )
!             {
!                char *wrappedname = (char *) getbytes( x->x_width );
  
!                if ( (i-x->x_firstseen)*x->x_charheight < x->x_height )
!                {
!                  x->x_lastseen = i;
!                  strncpy( wrappedname, x->x_dentries[i],  x->x_width/x->x_charwidth );
!                  wrappedname[ x->x_width/x->x_charwidth ] = '\0';
!                  SYS_VGUI11(".x%x.c create text %d %d -fill %s -activefill %s -width %d -text \"%s\" -anchor w -font %s -tags %xENTRY%d\n",
!                         canvas, 
!                         text_xpix(&x->x_obj, x->x_glist)+5, 
!                         text_ypix(&x->x_obj, x->x_glist)+5+(i-x->x_firstseen)*x->x_charheight, 
!                         x->x_fgcolor,
!                         x->x_secolor,
!                         x->x_width,
!                         wrappedname,
!                         x->x_font,
!                         x, i );
!                }
!                else break;
!             }
!             SYS_VGUI5(".x%x.c itemconfigure %xENTRY%d -fill %s\n", 
!                        canvas, x, x->x_itemselected, x->x_secolor); 
!             // post( "playlist : moved down first=%d last=%d", x->x_firstseen, x->x_lastseen );
!          }
         }
      }
      // eventually, move up
!     if ( x->x_cdy <= -x->x_charheight )
      {
         x->x_cdy = 0;
!        if ( x->x_lastseen >= ( x->x_height/x->x_charheight ) )
!        { 
!          if ( x->x_firstseen - 1 >= 0 )
!          {
!             for ( i=x->x_firstseen; i<=x->x_lastseen; i++ )
!             {
!                 SYS_VGUI4(".x%x.c delete %xENTRY%d\n", canvas, x, i); 
!             }
!             x->x_firstseen--;
!             for ( i=x->x_firstseen; i< x->x_nentries; i++ )
!             {
!                char *wrappedname = (char *) getbytes( x->x_width );
  
!                if ( (i-x->x_firstseen)*x->x_charheight < x->x_height )
!                {
!                  x->x_lastseen = i;
!                  strncpy( wrappedname, x->x_dentries[i],  x->x_width/x->x_charwidth );
!                  wrappedname[ x->x_width/x->x_charwidth ] = '\0';
!                  SYS_VGUI11(".x%x.c create text %d %d -fill %s -activefill %s -width %d -text \"%s\"  \
!                           -anchor w -font %s -tags %xENTRY%d\n",
!                           canvas, 
!                           text_xpix(&x->x_obj, x->x_glist)+5, 
!                           text_ypix(&x->x_obj, x->x_glist)+5+(i-x->x_firstseen)*x->x_charheight, 
!                           x->x_fgcolor,
!                           x->x_secolor,
!                           x->x_width,
!                           wrappedname,
!                           x->x_font,
!                           x, i );
!                 }
!                 else break;
!             }
!             SYS_VGUI5(".x%x.c itemconfigure %xENTRY%d -fill %s\n", 
!                         canvas, x, x->x_itemselected, x->x_secolor); 
!             // post( "playlist : moved up first=%d last=%d", x->x_firstseen, x->x_lastseen );
!          }
         }
      }
***************
*** 538,541 ****
--- 554,579 ----
  } 
    
+ void playlist_scroll(t_playlist *x, t_floatarg fdy)
+ {
+   t_int nbsteps, si;
+ 
+     nbsteps = (t_int)abs(fdy/x->x_charheight);
+     // post( "playlist : iterations %d", nbsteps );
+ 
+     for (si=0; si<nbsteps; si++ )
+     {
+       playlist_motion(x, 0, (fdy/abs(fdy))*x->x_charheight);
+     }
+ }
+ 
+ void playlist_graphics(t_playlist *x, t_floatarg fgraphics)
+ {
+    if ( ( (t_int)fgraphics == 0 ) || ( (t_int)fgraphics == 1 ) ) 
+    {
+       playlist_draw_erase(x, x->x_glist);
+       x->x_graphics = (t_int) fgraphics;
+       playlist_draw_new(x, x->x_glist);
+    }
+ }
  
  int playlist_click(t_gobj *z, struct _glist *glist,
***************
*** 821,826 ****
  
     x->x_sort = 1;
  
!     // post( "playlist : built extension=%s width=%d height=%d", x->x_extension, x->x_width, x->x_height );
  
     return (x);
--- 859,865 ----
  
     x->x_sort = 1;
+    x->x_graphics = 1;
  
!    // post( "playlist : built extension=%s width=%d height=%d", x->x_extension, x->x_width, x->x_height );
  
     return (x);
***************
*** 955,958 ****
--- 994,999 ----
      class_addmethod(playlist_class, (t_method)playlist_dialog, gensym("dialog"), A_GIMME, A_NULL );
      class_addmethod(playlist_class, (t_method)playlist_sort, gensym("sort"), A_DEFFLOAT, A_NULL );
+     class_addmethod(playlist_class, (t_method)playlist_graphics, gensym("graphics"), A_DEFFLOAT, A_NULL );
+     class_addmethod(playlist_class, (t_method)playlist_scroll, gensym("scroll"), A_DEFFLOAT, A_NULL );
      class_addmethod(playlist_class, (t_method)playlist_font, gensym("font"), A_SYMBOL, 
                                      A_SYMBOL, A_DEFFLOAT, A_NULL );

Index: help-playlist.pd
===================================================================
RCS file: /cvsroot/pure-data/externals/unauthorized/playlist/help-playlist.pd,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** help-playlist.pd	18 Jul 2004 23:55:27 -0000	1.4
--- help-playlist.pd	16 Nov 2005 16:57:46 -0000	1.5
***************
*** 1,3 ****
! #N canvas 94 79 817 563 10;
  #X text 28 57 Constructor : playlist <extension> <width> <height>;
  #X text 88 95 playlist all 200 200;
--- 1,3 ----
! #N canvas 96 132 817 563 10;
  #X text 28 57 Constructor : playlist <extension> <width> <height>;
  #X text 88 95 playlist all 200 200;
***************
*** 5,23 ****
  #X text 30 78 Examples :;
  #X text 72 507 Comments and bugs @ ydegoyon at free.fr;
! #X symbolatom 292 399 50 0 0 0 - - -;
  #X text 17 444 Note : you can scroll the list by dragging;
  #X text 15 455 the mouse in the yellow area;
  #X text 17 466 You can select and scroll in the blue area;
! #X obj 292 181 playlist all 400 200 {Helvetica 10 bold} #457782 yellow
! black red;
! #X msg 301 84 seek \$1;
! #X text 406 66 You can seek a file in the list;
! #X text 405 77 It will skip the first two items ( '.' and '..');
! #X text 405 89 and behave like a round list;
  #X text 28 14 Playlist lets you switch files in one click;
  #X text 27 25 It's handling most non-alpha characters gracefully;
! #X floatatom 355 85 5 0 0 0 - - -;
! #X symbolatom 333 426 50 0 0 0 - - -;
! #X symbolatom 379 453 50 0 0 0 - - -;
  #X msg 151 163 location ..;
  #X msg 150 140 location /tmp;
--- 5,23 ----
  #X text 30 78 Examples :;
  #X text 72 507 Comments and bugs @ ydegoyon at free.fr;
! #X symbolatom 363 437 50 0 0 0 - - -;
  #X text 17 444 Note : you can scroll the list by dragging;
  #X text 15 455 the mouse in the yellow area;
  #X text 17 466 You can select and scroll in the blue area;
! #X obj 360 221 playlist all 400 200 {Courier 12 bold} grey yellow black
! red;
! #X msg 373 77 seek \$1;
! #X text 485 63 You can seek a file in the list;
! #X text 485 74 It will skip the first two items ( '.' and '..');
! #X text 484 86 and behave like a round list;
  #X text 28 14 Playlist lets you switch files in one click;
  #X text 27 25 It's handling most non-alpha characters gracefully;
! #X floatatom 435 79 5 0 0 0 - - -;
! #X symbolatom 404 464 50 0 0 0 - - -;
! #X symbolatom 450 491 50 0 0 0 - - -;
  #X msg 151 163 location ..;
  #X msg 150 140 location /tmp;
***************
*** 27,38 ****
  #X text 32 243 in a particular folder.;
  #X msg 151 185 location patches;
! #X msg 299 111 sort \$1;
! #X obj 355 110 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
  1;
! #X text 405 109 Use alphabetical or creation time order;
  #X obj 87 140 loadbang;
  #X text 628 136 Change the font;
  #X msg 300 136 font Helvetica normal 14;
  #X msg 478 136 font Courier bold 24;
  #X connect 9 0 5 0;
  #X connect 9 1 17 0;
--- 27,47 ----
  #X text 32 243 in a particular folder.;
  #X msg 151 185 location patches;
! #X msg 334 106 sort \$1;
! #X obj 395 107 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
  1;
! #X text 499 110 Use alphabetical or creation time order;
  #X obj 87 140 loadbang;
  #X text 628 136 Change the font;
  #X msg 300 136 font Helvetica normal 14;
  #X msg 478 136 font Courier bold 24;
+ #X msg 379 163 scroll 200;
+ #X msg 460 163 scroll -200;
+ #X text 551 162 Scrolling by numbers for the laziest;
+ #X obj 526 191 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+ 1;
+ #X msg 436 191 graphics \$1;
+ #X text 655 191 Show or hide graphics;
+ #X msg 549 190 1;
+ #X obj 582 191 loadbang;
  #X connect 9 0 5 0;
  #X connect 9 1 17 0;
***************
*** 48,49 ****
--- 57,64 ----
  #X connect 31 0 9 0;
  #X connect 32 0 9 0;
+ #X connect 33 0 9 0;
+ #X connect 34 0 9 0;
+ #X connect 36 0 37 0;
+ #X connect 37 0 9 0;
+ #X connect 39 0 36 0;
+ #X connect 40 0 39 0;





More information about the Pd-cvs mailing list