From: Jos v.d.V. <jo...@us...> - 2005-10-26 15:19:43
|
Update of /cvsroot/win32forth/win32forth/apps/Player4 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13158/apps/Player4 Modified Files: Catalog.f PLAYER4.F Pl_Version.f View.f view.ff Log Message: Jos: Added more views and adapted the sources for the improoved shellsort. Index: view.ff =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Player4/view.ff,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsz74kPr and /tmp/cvsGHerye differ Index: PLAYER4.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Player4/PLAYER4.F,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** PLAYER4.F 19 Oct 2005 19:37:20 -0000 1.27 --- PLAYER4.F 26 Oct 2005 15:19:15 -0000 1.28 *************** *** 44,48 **** needs number.f needs w_search.f ! needs shell_r.f needs catalog.f needs TrayWindow.f --- 44,48 ---- needs number.f needs w_search.f ! needs mshell_r.f needs catalog.f needs TrayWindow.f Index: Catalog.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Player4/Catalog.f,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Catalog.f 19 Oct 2005 19:37:20 -0000 1.15 --- Catalog.f 26 Oct 2005 15:19:15 -0000 1.16 *************** *** 5,9 **** needs Pl_Toolset.f needs w_search.f ! needs shell_r.f needs sub_dirs.f --- 5,9 ---- needs Pl_Toolset.f needs w_search.f ! needs mshell_r.f needs sub_dirs.f *************** *** 31,34 **** --- 31,36 ---- BYTE s_filesize- BYTE s_#Random- + BYTE s_Random_popular- + BYTE s_Random_impopular- BYTE s_#Played- BYTE s_Filename- *************** *** 64,67 **** --- 66,70 ---- 80 constant /artist 120 constant /Title + 1 constant /Drivetype :struct RecordDef \ catalog *************** *** 73,77 **** DWORD RandomLevel DWORD #played ! BYTE DriveType /MediaLabel Field: MediaLabel /artist Field: Artist \ Extracted from the filename --- 76,80 ---- DWORD RandomLevel DWORD #played ! /Drivetype Field: DriveType /MediaLabel Field: MediaLabel /artist Field: Artist \ Extracted from the filename *************** *** 94,98 **** sizeof RecordDef dup to record-size mkstruct: InlineRecord ! : file-exist? ( adr len -- true-if-file-exist ) file-status nip 0= ; : file-size>s ( fileid -- len ) file-size drop d>s ; --- 97,102 ---- sizeof RecordDef dup to record-size mkstruct: InlineRecord ! ! : >RecordDef ( - rel ) s" 0 RecordDef " EVALUATE ; IMMEDIATE : file-exist? ( adr len -- true-if-file-exist ) file-status nip 0= ; : file-size>s ( fileid -- len ) file-size drop d>s ; *************** *** 162,168 **** in-application ! \ Define key-len and key-start before using sort-database ! : sort-database ( - ) 0 n>aptr database-mhndl #records-in-database shell-rel ; ! : sort-database-bin ( - ) 0 n>aptr database-mhndl #records-in-database shell-rel-c ; : rebuild-index-hdrs ( - ) \ database must mapped --- 166,180 ---- in-application ! \ Define a key before using sort-database ! : sort-database ( key1..keyx #keys - ) ! 0 n>aptr database-mhndl #records-in-database ! MciDebug? ! if cr ." Sort-time:" timer-reset ! then ! mshell-rel ! MciDebug? ! if .elapsed ! then ! ; : rebuild-index-hdrs ( - ) \ database must mapped *************** *** 276,282 **** ; ! : by_FileName ( - ) /file_name to key-len 0 RecordDef File_name to key-start ; ! : by_FileSize ( - ) 1 cells to key-len 0 RecordDef FileSize to key-start ; ! : by_leastPlayed ( - ) 1 cells to key-len 0 RecordDef #played to key-start ; : not-deleted? ( rec-adr - flag ) s" RecordDef deleted- c@ 0= " EVALUATE ; IMMEDIATE --- 288,302 ---- ; ! ! >RecordDef File_name /file_name key: FileNameKey ! >RecordDef MediaLabel 255 key: FlexKey ! >RecordDef RandomLevel 1 cells key: RandomKey RandomKey bin-sort ! >RecordDef #played 1 cells key: leastPlayedKey leastPlayedKey bin-sort ! >RecordDef FileSize 1 cells key: FileSizeKey FileSizeKey bin-sort ! ! : By_FileName ( - by ) by[ FileNameKey ]by ; ! : By_Random ( - by ) by[ RandomKey ]by ; ! : by_leastPlayed ( - by ) by[ leastPlayedKey Ascending ]by ; ! : by_FileSize ( - by ) by[ FileSizeKey ]by ; : not-deleted? ( rec-adr - flag ) s" RecordDef deleted- c@ 0= " EVALUATE ; IMMEDIATE *************** *** 309,386 **** : list-database ( - ) map-database list-records unmap-database ; ! : change-randomlevel ( level n - ) n>record over random swap RecordDef RandomLevel ! ; ! : sort_by_filename ( - ) by_FileName sort-database ; ! : sort_by_filesize ( - ) by_FileSize sort-database-bin ; ! : sort_by_leastPlayed ( - ) by_leastPlayed sort-database-bin ; ! : sort_by_size ( - ) by_FileSize sort-database-bin ; : SortByFlags ( - ) ! vadr-config ! dup>r s_Filename- c@ ! if sort_by_filename then ! 0 to key-len maxstring to key-start ! r@ s_#Random- c@ ! if 1 cells to key-len 0 RecordDef RandomLevel to key-start ! then ! r@ s_#Played- c@ ! if key-len 1 cells + to key-len ! key-start 0 RecordDef #played min to key-start ! then ! r@ s_Drivetype- c@ ! if key-len 1+ to key-len ! key-start 0 RecordDef DriveType min to key-start ! then ! r@ s_Label- c@ ! if key-len /MediaLabel + to key-len ! key-start 0 RecordDef MediaLabel min to key-start ! then ! r@ s_Artist_Title- c@ ! if key-len [ /artist /Title + ] literal + to key-len ! key-start 0 RecordDef Artist min to key-start ! then ! key-len 0> ! if sort-database ! then ! r> s_filesize- c@ ! if sort_by_size ! then ! ; ! (( : 0SortByFlags ( - ) \ Not yet useable ! vadr-config ! dup>r s_Filename- c@ ! if sort_by_filename then ! r@ s_Artist_Title- c@ ! if [ /artist /Title + ] literal to key-len ! 0 RecordDef Artist to key-start ! sort-database ! then ! r@ s_#Played- c@ ! if sort_by_leastPlayed ! then ! r@ s_#Random- c@ ! if 1 cells to key-len 0 RecordDef RandomLevel to key-start ! sort-database-bin ! then ! r@ s_filesize- c@ ! if sort_by_size ! then ! r@ s_Label- c@ ! if /MediaLabel to key-len 0 RecordDef MediaLabel to key-start ! sort-database ! then ! r> s_Drivetype- c@ ! if 1 to key-len 0 RecordDef DriveType to key-start ! sort-database-bin ! then ! ; )) : sort_by_RandomLevel ( - ) ! 1 cells to key-len ! 0 RecordDef RandomLevel to key-start sort-database-bin ! 0 RecordDef #played to key-start sort-database-bin ! \ 0 RecordDef Deleted- to key-start sort-database-bin ; --- 329,385 ---- : list-database ( - ) map-database list-records unmap-database ; ! : change-randomlevel ( level n - ) ! n>record over random swap RecordDef RandomLevel ! ! ; ! ! : &FlexKeyLen ( - &FlexKeyLen ) FlexKey &key-len ; ! : MinFlexKey! ( n - ) min FlexKey ! ; ! ! : sort_by_filename ( - ) by_FileName sort-database ; ! : sort_by_leastPlayed ( - ) by_leastPlayed sort-database ; ! : sort_by_size ( - ) by_FileSize sort-database ; ! : SortByFlags ( - ) ! vadr-config >r 1 ! case ! r@ s_Filename- c@ of sort_by_filename endof ! r@ s_#Random- c@ of By_Random sort-database endof ! r@ s_Random_impopular- c@ of by[ RandomKey leastPlayedKey Ascending ]by ! sort-database endof ! r@ s_Random_popular- c@ of by[ RandomKey leastPlayedKey Descending ]by ! sort-database endof ! r@ s_#Played- c@ of sort_by_leastPlayed endof ! r@ s_filesize- c@ of sort_by_size endof ! sizeof RecordDef FlexKey ! 0 &FlexKeyLen ! ! r@ s_Drivetype- c@ ! if [ /Drivetype /MediaLabel + /artist + /Title + ] literal &FlexKeyLen ! ! FlexKey @ >RecordDef DriveType MinFlexKey! ! then ! r@ s_Label- c@ ! if [ /MediaLabel /artist + /Title + ] literal &FlexKeyLen ! ! FlexKey @ >RecordDef MediaLabel MinFlexKey! ! then ! r@ s_Artist_Title- c@ ! if [ /artist /Title + ] literal &FlexKeyLen ! ! FlexKey @ >RecordDef Artist MinFlexKey! ! then ! FlexKey &key-len @ 0> ! if by[ FlexKey ]by sort-database ! then ! ! endcase ! r>drop ! ; : sort_by_RandomLevel ( - ) ! By_Random sort-database ! \ 1 cells to key-len ! \ >RecordDef RandomLevel to key-start sort-database-bin ! \ >RecordDef #played to key-start sort-database-bin ! \ \ >RecordDef Deleted- to key-start sort-database-bin ; Index: View.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Player4/View.f,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** View.f 19 Oct 2005 19:37:20 -0000 1.2 --- View.f 26 Oct 2005 15:19:15 -0000 1.3 *************** *** 24,27 **** --- 24,29 ---- RadioButton s_filesize RadioButton s_#Random + RadioButton s_Random_popular + RadioButton s_Random_impopular RadioButton s_#played RadioButton s_DriveType *************** *** 29,32 **** --- 31,36 ---- RadioButton s_Filename RadioButton s_Artist_Title + Label lbl_Random_popular + Label lbl_Random_impopular :M ClassInit: ( -- ) *************** *** 53,57 **** :M StartSize: ( -- width height ) ! 197 290 ;M --- 57,61 ---- :M StartSize: ( -- width height ) ! 213 351 ;M *************** *** 75,89 **** self Start: Group1 ! 20 10 159 242 Move: Group1 Handle: Winfont SetFont: Group1 s" Sort/Group" SetText: Group1 self Start: Group2 ! 50 30 118 145 Move: Group2 Handle: Winfont SetFont: Group2 s" Optional" SetText: Group2 self Start: Group3 ! 50 180 118 63 Move: Group3 Handle: Winfont SetFont: Group3 s" Name" SetText: Group3 --- 79,93 ---- self Start: Group1 ! 20 10 179 301 Move: Group1 Handle: Winfont SetFont: Group1 s" Sort/Group" SetText: Group1 self Start: Group2 ! 50 30 135 187 Move: Group2 Handle: Winfont SetFont: Group2 s" Optional" SetText: Group2 self Start: Group3 ! 50 230 134 65 Move: Group3 Handle: Winfont SetFont: Group3 s" Name" SetText: Group3 *************** *** 95,99 **** self Start: lbl_File_size ! 60 70 94 18 Move: lbl_File_size Handle: Winfont SetFont: lbl_File_size s" File size (Kb)" SetText: lbl_File_size --- 99,103 ---- self Start: lbl_File_size ! 60 70 94 16 Move: lbl_File_size Handle: Winfont SetFont: lbl_File_size s" File size (Kb)" SetText: lbl_File_size *************** *** 102,129 **** 60 90 94 16 Move: lbl_#Random Handle: Winfont SetFont: lbl_#Random ! s" #Random" SetText: lbl_#Random self Start: lbl_#Played ! 60 110 94 18 Move: lbl_#Played Handle: Winfont SetFont: lbl_#Played s" #Played" SetText: lbl_#Played self Start: lbl_Drivetype ! 60 130 77 16 Move: lbl_Drivetype Handle: Winfont SetFont: lbl_Drivetype s" Drivetype" SetText: lbl_Drivetype self Start: lbl_Label ! 60 150 77 16 Move: lbl_Label Handle: Winfont SetFont: lbl_Label s" Label" SetText: lbl_Label self Start: R_Filename ! 60 200 77 16 Move: R_Filename Handle: Winfont SetFont: R_Filename s" Filename" SetText: R_Filename self Start: R_Artist_and_title ! 60 220 104 16 Move: R_Artist_and_title Handle: Winfont SetFont: R_Artist_and_title s" Artist_and_title" SetText: R_Artist_and_title --- 106,133 ---- 60 90 94 16 Move: lbl_#Random Handle: Winfont SetFont: lbl_#Random ! s" Random" SetText: lbl_#Random self Start: lbl_#Played ! 60 150 94 16 Move: lbl_#Played Handle: Winfont SetFont: lbl_#Played s" #Played" SetText: lbl_#Played self Start: lbl_Drivetype ! 60 170 77 16 Move: lbl_Drivetype Handle: Winfont SetFont: lbl_Drivetype s" Drivetype" SetText: lbl_Drivetype self Start: lbl_Label ! 60 190 77 16 Move: lbl_Label Handle: Winfont SetFont: lbl_Label s" Label" SetText: lbl_Label self Start: R_Filename ! 60 250 77 16 Move: R_Filename Handle: Winfont SetFont: R_Filename s" Filename" SetText: R_Filename self Start: R_Artist_and_title ! 60 270 104 16 Move: R_Artist_and_title Handle: Winfont SetFont: R_Artist_and_title s" Artist_and_title" SetText: R_Artist_and_title *************** *** 131,135 **** IDOK SetID: Button1 self Start: Button1 ! 50 260 50 20 Move: Button1 Handle: Winfont SetFont: Button1 s" Ok" SetText: Button1 --- 135,139 ---- IDOK SetID: Button1 self Start: Button1 ! 50 320 50 20 Move: Button1 Handle: Winfont SetFont: Button1 s" Ok" SetText: Button1 *************** *** 137,141 **** IDcancel SetID: Button2 self Start: Button2 ! 120 260 50 20 Move: Button2 Handle: Winfont SetFont: Button2 s" Cancel" SetText: Button2 --- 141,145 ---- IDcancel SetID: Button2 self Start: Button2 ! 120 320 50 20 Move: Button2 Handle: Winfont SetFont: Button2 s" Cancel" SetText: Button2 *************** *** 151,193 **** s" " SetText: s_#Random self Start: s_#played ! 30 110 18 18 Move: s_#played Handle: Winfont SetFont: s_#played s" " SetText: s_#played self Start: s_DriveType ! 30 130 18 18 Move: s_DriveType Handle: Winfont SetFont: s_DriveType s" " SetText: s_DriveType self Start: s_label ! 30 150 18 18 Move: s_label Handle: Winfont SetFont: s_label s" " SetText: s_label self Start: s_Filename ! 30 200 18 18 Move: s_Filename Handle: Winfont SetFont: s_Filename s" " SetText: s_Filename self Start: s_Artist_Title ! 30 220 18 18 Move: s_Artist_Title Handle: Winfont SetFont: s_Artist_Title s" " SetText: s_Artist_Title ! vadr-config dup s_Drivetype- c@ Check: s_DriveType ! dup s_Label- c@ Check: s_Label ! dup s_filesize- c@ Check: s_filesize ! dup s_#Random- c@ Check: s_#Random ! dup s_#Played- c@ Check: s_#Played ! dup s_Filename- c@ Check: s_Filename ! dup s_Artist_Title- c@ Check: s_Artist_Title ! dup l_Index- c@ Check: lbl_Index ! dup l_Drivetype- c@ Check: lbl_DriveType ! dup l_Label- c@ Check: lbl_Label ! dup l_File_size- c@ Check: lbl_File_size ! dup l_#Random- c@ Check: lbl_#Random ! dup l_#Played- c@ Check: lbl_#Played ! l_Filename- c@ if CheckButton: R_Filename else CheckButton: R_Artist_and_title --- 155,220 ---- s" " SetText: s_#Random + self Start: s_Random_popular + 30 110 18 18 Move: s_Random_popular + Handle: Winfont SetFont: s_Random_popular + s" " SetText: s_Random_popular + + self Start: s_Random_impopular + 30 130 18 18 Move: s_Random_impopular + Handle: Winfont SetFont: s_Random_impopular + s" " SetText: s_Random_impopular + self Start: s_#played ! 30 150 18 18 Move: s_#played Handle: Winfont SetFont: s_#played s" " SetText: s_#played self Start: s_DriveType ! 30 170 18 18 Move: s_DriveType Handle: Winfont SetFont: s_DriveType s" " SetText: s_DriveType self Start: s_label ! 30 190 19 22 Move: s_label Handle: Winfont SetFont: s_label s" " SetText: s_label self Start: s_Filename ! 30 250 18 18 Move: s_Filename Handle: Winfont SetFont: s_Filename s" " SetText: s_Filename self Start: s_Artist_Title ! 30 270 18 18 Move: s_Artist_Title Handle: Winfont SetFont: s_Artist_Title s" " SetText: s_Artist_Title ! self Start: lbl_Random_popular ! 60 110 125 16 Move: lbl_Random_popular ! Handle: Winfont SetFont: lbl_Random_popular ! s" Random popular" SetText: lbl_Random_popular ! ! self Start: lbl_Random_impopular ! 60 130 130 16 Move: lbl_Random_impopular ! Handle: Winfont SetFont: lbl_Random_impopular ! s" Random impopular" SetText: lbl_Random_impopular ! ! ! vadr-config dup s_Drivetype- c@ Check: s_DriveType ! dup s_Label- c@ Check: s_Label ! dup s_filesize- c@ Check: s_filesize ! dup s_#Random- c@ Check: s_#Random ! dup s_Random_popular- c@ Check: s_Random_popular ! dup s_Random_impopular- c@ Check: s_Random_impopular ! dup s_#Played- c@ Check: s_#Played ! dup s_Filename- c@ Check: s_Filename ! dup s_Artist_Title- c@ Check: s_Artist_Title ! dup l_Index- c@ Check: lbl_Index ! dup l_Drivetype- c@ Check: lbl_DriveType ! dup l_Label- c@ Check: lbl_Label ! dup l_File_size- c@ Check: lbl_File_size ! dup l_#Random- c@ Check: lbl_#Random ! dup l_#Played- c@ Check: lbl_#Played ! l_Filename- c@ if CheckButton: R_Filename else CheckButton: R_Artist_and_title *************** *** 197,214 **** : SaveSettingsForm ( - ) vadr-config ! IsButtonChecked?: s_Drivetype over s_DriveType- c! ! IsButtonChecked?: s_Label over s_Label- c! ! IsButtonChecked?: s_filesize over s_filesize- c! ! IsButtonChecked?: s_#Random over s_#Random- c! ! IsButtonChecked?: s_#Played over s_#Played- c! ! IsButtonChecked?: s_Filename over s_Filename- c! ! IsButtonChecked?: s_Artist_Title over s_Artist_Title- c! ! IsButtonChecked?: lbl_Index over l_Index- c! ! IsButtonChecked?: lbl_Drivetype over l_DriveType- c! ! IsButtonChecked?: lbl_Label over l_Label- c! ! IsButtonChecked?: lbl_File_size over l_File_size- c! ! IsButtonChecked?: lbl_#Random over l_#Random- c! ! IsButtonChecked?: lbl_#Played over l_#Played- c! ! IsButtonChecked?: R_Filename over l_Filename- c! IsButtonChecked?: R_Artist_and_title swap l_Artist_and_title- c! ; --- 224,243 ---- : SaveSettingsForm ( - ) vadr-config ! IsButtonChecked?: s_Drivetype over s_DriveType- c! ! IsButtonChecked?: s_Label over s_Label- c! ! IsButtonChecked?: s_filesize over s_filesize- c! ! IsButtonChecked?: s_#Random over s_#Random- c! ! IsButtonChecked?: s_Random_popular over s_Random_popular- c! ! IsButtonChecked?: s_Random_impopular over s_Random_impopular- c! ! IsButtonChecked?: s_#Played over s_#Played- c! ! IsButtonChecked?: s_Filename over s_Filename- c! ! IsButtonChecked?: s_Artist_Title over s_Artist_Title- c! ! IsButtonChecked?: lbl_Index over l_Index- c! ! IsButtonChecked?: lbl_Drivetype over l_DriveType- c! ! IsButtonChecked?: lbl_Label over l_Label- c! ! IsButtonChecked?: lbl_File_size over l_File_size- c! ! IsButtonChecked?: lbl_#Random over l_#Random- c! ! IsButtonChecked?: lbl_#Played over l_#Played- c! ! IsButtonChecked?: R_Filename over l_Filename- c! IsButtonChecked?: R_Artist_and_title swap l_Artist_and_title- c! ; *************** *** 221,226 **** ; - \ debug HandleButtons - :M WM_COMMAND ( h m w l -- res ) over LOWORD ( ID ) self \ object address on stack --- 250,253 ---- Index: Pl_Version.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/apps/Player4/Pl_Version.f,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Pl_Version.f 19 Oct 2005 19:37:20 -0000 1.14 --- Pl_Version.f 26 Oct 2005 15:19:15 -0000 1.15 *************** *** 3,7 **** anew -Pl_Version.f ! 10120 value player_version# \ Version numbers: v.ww.rr --- 3,7 ---- anew -Pl_Version.f ! 10121 value player_version# \ Version numbers: v.ww.rr *************** *** 42,46 **** - Columns in the treeview. - Only add a new file to the catalog when it wasn't added before - - A better stable sort routine \ --------------------------------------------------------------------------- --- 42,45 ---- *************** *** 131,136 **** \ changes for Version 1.01.20 ! Jos October 19th, 2005 ! - Added a form to define a view. \s --- 130,139 ---- \ changes for Version 1.01.20 ! Jos October 19th, 2005 ! - Added a form to define a view. ! ! \ changes for Version 1.01.21 ! Jos October 26th, 2005 ! - Changed the shellsort and added more vieuws \s |