Several important changes in this version I would like to highlight. The first is that Zoom Player should now be able to play WMV DRM Level 2000 content, yay!
The second is the new Advanced Play List Control interface which allows you to greater manipulate the Play List. Similar to WinAmp's jump dialog, but with a more advanced search dialog and the ability to manipulate the play list according to the search results (read more below).
The third is the new Magnetic Hard Docking. This is sort of the return of the previous function that let you perma-dock the play list to the sides of the main user interface, except that this new setting appears on the play list editor itself as a "magnet" button on the bottom-left section of the editor and also on the Equalizer dialog. When enabled, Zoom Player tries it's best to auto-arrange the dialogs. Different arrangement schemes are used for media and audio modes, try it out (read more below)...
Lastly, renderless mode should now work better on multi-monitors. You should only start playback when ZP is already on that monitor... Dragging the interface across monitors with video playing won't work well... There is also a new checkbox on the options dialog (see below) to enable Exclusive Fullscreen renderless mode... use at your own peril.
Download Zoom Player v4.50 beta 4
Changes from v4.10 beta 3:
* Zoom Player can now play WMV (Windows Media Video) DRM level 2000 content! * New Advanced Play List Control Interface. Can be opened by pressing "J" (Or the "Wand" button on the Play List Editor). This new interface opens up advanced search and management controls to the play list. Similar to WinAmp's jump dialog, but allowing multiple search queries, moving selected items to the top/bottom of the list, removing selected items from the list, etc... * New Magnetic Hard Docking functions (fnPLMagToggle, fnEQMagToggle) and Buttons on the Equalizer and Play List Editor. When activated, Zoom Player will try to make these interfaces always-docked onto the main user interface and auto-adjusting to remain on screen and retain position as the user interface is moved and resized. When either interface is magnetized, the standard snap-docking is disabled for that interface. * 12 new Dynamic Skinning Variables allowing you to display TAG Information (ID3/APE/WMV/OGM/etc...) on the skin. The new constants are: <trackname>, <genre>, <track>, <language>, <artistname>, <albumname>, <year>, <authorname>, <encoder>, <comment>, <urllink>, <copyright>. * New Setting (Advanced Options / Filter Control / Settings) allowing you to have VMR9 Renderless mode work in exclusive fullscreen mode. When this mode is enabled, certain ZP features will get broken. Basically any OSD and Navigation interface, including the context-menu. * New Setting (Advanced Options / Values / Play List) allowing the Play List Editor display to follow the currently playing track. * New Comm API Messages 1401,1501,1601,1602,1701,1702,1750,1751, 1940,1941,3200. * New Button on the "Advanced Options / Association" page allowing you to remove all selected extensions. * New profiles to support the Haali Media Splitter under Customized Media Mode. + Auto Stream Selection should now work with the Haali Media Splitter. + Zoom Player now supports stream switching with the Haali Media Splitter filter (which can be used to split Matroska and MP4 files). + Extended the "exInterface" function to support more interfaces. + The Play List Skin command can now specify the Left-Offset in which to display the search text. + You can now set a Hint value for the Volume, Play Rate and Audio Balance Controls. - Running a new installation under Windows NT/2000/XP with a limited access account would cause Zoom Player to freeze. - When using renderless mode on a non-primary monitor, CPU usage should no longer jump to 100%. - When using renderless mode with DVDs, fixed a semi-random freeze. - Inserting a CD/DVD with no content should no longer close the playing media and clear the play list. - Zoom Player now Intercepts when applications try to artificially maximize its window when loading and will go to Zoom Mode instead. - Zoom Player show now be able to go fullscreen on Windows NT4. - Zoom Player no longer checks if a file exists before adding it to the play list when the file is in fact a URL address. - Trailer files can now contain unicode paths. - Fixed a problem where the "Length" value in TAG Display would not show a valid value under some conditions. - Fixed a bug where enabling auto-size window to fit source size could cause the image to appear in the wrong position and possibly corrupt the skin. - Girder Command Export got broken in a recent beta of Zoom Player. - Specifying an RGB NoTint value didn't always work properly. - The DVD Control Bar buttons for Next/Previous chapter got accidently changed to Next/Previous bookmark in v4.10 Beta 3. - The Scene Cut feature was not saving MS values properly. - Erasing files from the file and media library navigators was broken. - DVD Auto-Execute values were not being saved properly. - Timeline Seek-Hint could show negative values. - Switching skins while in fullscreen would not show proper active value for certain buttons.
Latest Communication Protocol:
When the SendMessage interface is used, the message number is returned on the "WParam" value and the message content is returned on the "LParam" value. If the LParam contain a string, it is stored as an ATOM String. When the TCP interface is used, the message number is always returned/sent as a 4-digit code. The message content is seperated by a space character following the message number. All content is string based and UTF-8 encoded to preserve country specific text codes. When sending Zoom Player TCP commands, make sure to terminate each command with CRLF (Ascii #13#10).. The default TCP/IP port is 4769, but a user can change it under Advanced Options / Values / Interface. External Messages (ZP -> Program, TCP/IP or SendMessage): [WParam] | [LParam] -------------------------------------+---------------------------------------------- 0000 - Application Name | String describing the Application 0001 - Application Version | String with the version text 1000 - State Change | 0 - Closed 1 - Stopped (doesn't apply to DVD, DVD Stop = Closed) 2 - Paused 3 - Playing 1100 - TimeLine update | String containing timeline data 1110 - Current Duration | Current Duration in milliseconds 1120 - Current Position | Current Position in milliseconds 1200 - OSD Message | String containing the OSD message 1201 - OSD Message Off | No value, message just tells that the OSD has disappeared 1300 - Current Play Mode | 0 - DVD Mode 1 - Media Mode 2 - Audio Mode 1400 - DVD Title Change | Current Title 1401 - DVD Title Count | Number of Titles 1410 - DVD Domain Change | See EC_DVD_DOMAIN_CHANGE in DirectX SDK 1420 - DVD Menu Mode | 0 - Not in a Menu | 1 - In a Menu 1450 - DVD Unique String | Returns a unique DVD indentifer 1500 - DVD Chapter Change | Current Chapter 1501 - DVD Chapter Count | Number of Chapters 1600 - DVD Audio Change | Current Audio Track 1601 - DVD Audio Count | Number of Audio Tracks 1602 - DVD Audio Name | Contains the name of the Audio track and a padded number for example "001 5.1 AC3" 1700 - DVD Sub Change | Current Subtitle Track 1701 - DVD Sub Count | Number of Subtitle Tracks 1702 - DVD Audio Name | Contains the name of the Subtitle track and a padded number for example "001 5.1 AC3" 1750 - DVD Angle Change | Current Angle 1751 - DVD Angle Count | Number of Angles in the DVD Title 1800 - Currently Loaded File | String containing file name 1810 - Current Play List | String containing the Zoom Player Play List structure. Each entry is separated by the ">" character. Each entry is sub-divided into additional information: |N .. |n - Name |E .. |e - Extension |D .. |d - Date |S .. |s - Size |P .. |p - Path |R .. |r - Duration |F .. |f - Forced Duration It is possible addtional tags will be used in future version, so code safely. 1855 - End of File | End of file has been reached 1900 - File PlayList Pos | String containing file position in play list 2000 - Video Resolution | String containing the video resolution (if there is one) 2100 - Video Frame Rate | String containing the video frame rate (if there is one) 2200 - AR Change | String containing the AR String (same as OSD message) 2210 - DVD AR Mode Change | 0 - Unknown 1 - Full-Frame 2 - Letterbox 3 - Anamorphic 2300 - Current Audio Volume | The current Audio Volume 2400 - Media Content Tags | Returns Media Content Strings (ID3/APE/WMA/Etc... Tags) 2500 - A CD/DVD Was Inserted | Returns path to drive the disc was inserted to 3000 - ZP Error Message | String of error messsage Note that there can be multiple errors appearing in sequence, only the last error may be visible by the user. 3100 - Nav Dialog Opened | A Navigator Dialog has opened 0 - Blanking Navigator 1 - Chapter Navigator 2 - Context Navigator 3 - File Navigator 4 - GoTo Navigator 5 - Media Library Navigator 6 - MouseWheel Navigator 7 - Color Control Navigator 8 - Play List Navigator 9 - Resize Navigator 10 - Station Navigator 11 - Web URL Navigator 3110 - Nav Dialog Closed | A Navigator Dialog has closed (Values are the same as #3100) 3200 - Screen Saver Mdeo | The ZP Screen Saver has: 0 - Started 1 - Ended External Messages (Program -> ZP, TCP/IP only) Messages that contain parameters should be space seperated, for example: "5100 fnPlay" and a comma used to seperate multiple parameters, for example: "5110 exSetAR,1". 0000 - Get Application Name | Returns 0000 message 0001 - Get Version | Returns 0001 message 1000 - Get Play State | Returns 1000 message 1110 - Get Current Duration | Returns 1110 message 1120 - Get Current Position | Returns 1120 message 1200 - Show a PopUp OSD Text | Parameter is a UTF8 encoded text to be shown as a PopUp OSD 1201 - Temp Disable PopUp OSD | Temporarily Disables the PopUp OSD 1202 - Re-Enable PopUp OSD | Re-Enables the PopUp OSD 1300 - Get Play Mode | Returns 1300 message 1400 - Request DVD Title | Returns 1400 message 1401 - Request DVD Title Count | Returns 1401 message 1420 - Request DVD Menu Mode | Returns 1420 message 1500 - Request DVD Chapter | Returns 1500 message 1501 - Request DVD Chapter Count | Returns 1501 message 1600 - Request DVD Audio | Returns 1600 message 1601 - Request DVD Audio Count | Returns 1601 message 1602 - Request DVD Audio Names | Returns 1602 message 1700 - Request DVD Subtitle | Returns 1700 message 1701 - Request DVD Subtitle Count | Returns 1701 message 1702 - Request DVD Subtitle Names | Returns 1702 message 1750 - Request DVD Angle | Returns 1750 message 1751 - Request DVD Angle Count | Returns 1751 message 1800 - Request File Name | Returns 1800 message 1810 - Request Play List | Returns 1810 message 1850 - Play File | Play a Media File, Value is a UTF8 encoded string containing the file name. 1900 - Get Play List Index | Returns 1900 message 1910 - Set Play List Index | Value from 0 to Number items in the play list-1 (plays the file in index). 1920 - Clear Play List | Clears the Current Play List (will close any playing file) 1930 - Add Play List File | Add a file to the Play List 1940 - Select Play List Item | Select an Item in the Play List 1941 - DeSelect Play List Item | Remove selection of a Play List item 2200 - Request AR Mode | Request the current ZP AR Mode 2210 - Request DVD AR Mode | Request the DVD AR Mode (see outgoing #2210) 2300 - Request Audio Volume | Request the Audio Volume Level 3000 - Dismiss ZP Error | Close the ZP Error message (if visible). 5000 - Set Current Position | Sets the Current Play Position (in seconds) 5010 - Play DVD Title | Plays a DVD Title (depends on DVD Navigation accepting the title). 5020 - Play DVD Title,Chapter | Same as 5010, Plays a DVD Title at a specific chapter, value of "1,5" plays Title #1, Chapter #5 (without the "" of course). 5030 - Play DVD Chapter | Same as 5010, Plays a DVD Chapter in the current Title. 5100 - Call ZP Function | Calls a Zoom Player function by name (see skinning tutorial for list) 5110 - Call ZP ExFunction | Calls a Zoom Player extended function by name (see skinning tutorial for list) 5120 - Call ZP ScanCode | Pass a keyboard scancode number to the Zoom Player Interperter (such as VK_DOWN), this can be used to access the Navigator interfaces, pass the scancode as a parameter.