MCI MMedia Player [Windows]

Developed or developing a new product in PureBasic? Tell the world about it.
RASHAD
PureBasic Expert
PureBasic Expert
Posts: 4636
Joined: Sun Apr 12, 2009 6:27 am

MCI MMedia Player [Windows]

Post by RASHAD »

With the adaption of Superformula by NicTheQuick
- Left Mouse for Caption on off
- Right Mouse for the main menu on off
- Almost any Video or Audio files
- To be compiled as EXE for snapshot to work(Windows 8.1)
To do :
Adding playing list to play DVD VOB continuously
Have fun

Code: Select all

UseJPEGImageEncoder()
UsePNGImageEncoder()
UsePNGImageDecoder()

ExamineDesktops()

#TBS_TOOLTIPS         = $0100
#CAPTUREBLT           = $40000000
#TBM_SETTOOLTIPS = #WM_USER + 29
#TTF_TRACK = $20
#CAPTUREBLT           = $40000000

#n=1000

Global a$,Down,SaveAs,Menu,Run,i,w,h,v,m,f,g
a$=Space(#MAX_PATH)

Define.d x,y,ox,oy,fx,fy,t,p,a,b,c,d,e,r

Macro j(a)
	St#a#Drawing(
EndMacro

Macro z
	Pow(Pow(Abs(Cos(m*r/4)/a),d)+Pow(Abs(0+Sin(m*r/4)/b),e),-1/c)
EndMacro

Procedure WndProc(hwnd, uMsg, wParam, lParam)
      result = #PB_ProcessPureBasicEvents 
 Select uMsg
  Case #WM_ACTIVATEAPP
			    If wParam
			       SendMessage_(WindowID(0),#WM_NCACTIVATE,1,0)
			    Else
			       SendMessage_(WindowID(0),#WM_NCACTIVATE,1,0)
			    EndIf
           
  Case #WM_SIZE
          If Video = 0
		           ResizeGadget(0,5, WindowHeight(0)-68, WindowWidth(0)-10, #PB_Ignore)
		           ResizeGadget(1,0, 0, WindowWidth(0)-10, #PB_Ignore)
		           If Menu = 0
		            		w = WindowWidth(0) - 10
		            		h = WindowHeight(0) - 75
		            Else
		                w = WindowWidth(0) - 10
		            		h = WindowHeight(0) - 10
		            EndIf
            If IsGadget(50)
                ResizeImage(0,w,h)
                ResizeGadget(50,5, 5, w,h)
           EndIf
           mciSendString_("put RASHAD destination at " +5+" "+5+" "+w+" "+h,0,0,0)
           EndIf
                                 
   EndSelect   
  ProcedureReturn result 
EndProcedure

  CatchImage(20 , ?Full)
  GrabImage(20,0,72,48,24,24)
  GrabImage(20,1,0,0,24,24)
  GrabImage(20,2,0,24,24,24)
  GrabImage(20,3,24,24,24,24)
  GrabImage(20,4,48,24,24,24)
  GrabImage(20,5,72,24,24,24)
  GrabImage(20,6,48,0,24,24)
  GrabImage(20,7,48,48,24,24)
  GrabImage(20,8,24,0,24,24) ;**
  GrabImage(20,9,72,0,24,24)
  GrabImage(20,10,24,48,24,24)
  GrabImage(20,11,24,0,24,24)
  GrabImage(20,12,0,48,24,24)

FreeImage(20)

OpenWindow(0,0,0,645,460,"",#PB_Window_ScreenCentered)
SetWindowColor(0,#Gray)
WindowBounds(0,645,460,DesktopWidth(0)+10,DesktopHeight(0))

ContainerGadget(0,5,392,630,64)
SetGadgetColor(0,#PB_Gadget_BackColor,$DAF5F9);$85DEED)
    TrackBarGadget(1,0,0,630,22,0,1000,#TTF_TRACK)
    ButtonImageGadget (2 ,2 ,27,32,32,ImageID(1))                   ;Load
    GadgetToolTip(2,"New Media")
    ButtonImageGadget (3 ,40,  31,24,24,ImageID(5))                ;Previous Frame
    GadgetToolTip(3,"Step Backward")
    SpinGadget(4 ,65, 31,30,24,0,10,#PB_Spin_Numeric)   ;No. of Previos Frames
    GadgetToolTip(4,"No.of Frames to Step Backward")
    ButtonImageGadget  (5 ,102, 27,46,32,ImageID(4))                ;Play
    GadgetToolTip(5,"Play- Pause")
    SpinGadget(6 ,155, 31,30,24,0,10,#PB_Spin_Numeric)  ;No. of Next Frames
    GadgetToolTip(6,"No.of Frames to Step Forward")
    ButtonImageGadget  (7,183, 31,24,24,ImageID(2))                 ;Next Frame
    GadgetToolTip(7,"Step Forward")
    TrackBarGadget(8,215,31,70,25,1, 2000,#TTF_TRACK |#TBS_TOOLTIPS)    ;PlayBack Speed
    GadgetToolTip(8,"PlayBack Speed")
    ButtonImageGadget  (9,293, 27,32,32,ImageID(9))               ;Max - Min
    GadgetToolTip(9,"Maximize - Restore")
    ButtonImageGadget  (10,330, 27,30,30,ImageID(6))                 ;Save As
    GadgetToolTip(10,"Capture & Save Frame")
    ButtonImageGadget (11,368, 27,32,32,ImageID(7))                ;Sound Control
    GadgetToolTip(11,"Mute")
    TrackBarGadget(12,405,29,70,27, 0, 1000,#TTF_TRACK )         ;Sound Volume
    GadgetToolTip(12,"Sound Volume")
    TrackBarGadget(13,480,29,70,27, 0, 1000 ,#TTF_TRACK |#TBS_TOOLTIPS)                             ;Sound Balance
    GadgetToolTip(13,"Sound Balance") 
    ButtonImageGadget (14,555, 27,32,32,ImageID(10))                ;Default
    GadgetToolTip(14,"Reset & Configure")     
    ButtonImageGadget  (20,592,27,32,32,ImageID(8))                 ;Quit
    GadgetToolTip(20,"Quit")
CloseGadgetList()

SetGadgetState(4,1)
SetGadgetState(6,1)
SetGadgetState(8,1000)
SetGadgetState(12,500)
SetGadgetState(13,500)

If CreatePopupMenu(0)
  MenuItem(1, "Reset Sound Volume")
  MenuItem(2, "Reset Sound Balance")
  MenuBar()
  MenuItem(3, "Reset PlayBack")
  MenuBar()
  MenuItem(4, "Save As BMP")  
  MenuItem(5, "Save As JPG")
  MenuItem(6, "Save As PNG")
EndIf

SetActiveWindow(0)
SetWindowCallback(@WndProc()) 

AddWindowTimer(0, 125, 10)
SetWindowLongPtr_(WindowID(0), #GWL_STYLE, GetWindowLongPtr_(WindowID(0), #GWL_STYLE) |#WS_THICKFRAME &~ #WS_DLGFRAME)
SetWindowPos_(WindowID(0), 0, 0, 0, 0, 0, #SWP_FRAMECHANGED| #SWP_DRAWFRAME| #SWP_NOMOVE| #SWP_NOSIZE| #SWP_NOZORDER)
Repeat

  Select WaitWindowEvent()
      
      Case #PB_Event_Menu
          Select EventMenu()
           Case 1
           					SetGadgetState(12,500)
										mciSendString_("setaudio RASHAD volume to "+500,0,0,0)
           Case 2
										SetGadgetState(13,500)
										mciSendString_("setaudio RASHAD right volume to  "+500,0,0,0)		
           Case 3
           		      SetGadgetState(8,1000)
		                mciSendString_("Set RASHAD Speed "+Str(1000),0,0,0) 
           Case 4
                     SaveAs = 1
           Case 5
                     SaveAs = 2
           Case 6
                     SaveAs = 3           
          EndSelect
      
      Case #PB_Event_Gadget
          Select EventGadget()
               Case 1   ;Position Track                   
                      Pos.q =GetGadgetState(1)*length/1000
                      If Pos.q <> Oldpos.q
                         mciSendString_("Play RASHAD from "+ Str(Pos),0,0,0)
                         OldPos.q = Pos.q
                      EndIf
                       
		           Case 2  ;Load & Play
		                   mciSendString_("Close RASHAD",0,0,0)
		                   File$=OpenFileRequester("","","ALL|*.*;*.mid|Wave|*.wav|mp3|*.mp3|OGG|*.OGG|MID|*.MID",0)
		                   If File$ <> ""
		                         Run = 1
		                         If IsGadget(50)
		                             FreeImage(0)
		                             FreeGadget(50)
		                          EndIf
		                         SetWindowTitle(0,File$)
		                         SetGadgetState(1,0)
														 SetGadgetState(8,1000)
														 SetGadgetState(12,500)
														 SetGadgetState(13,500)
													  Select LCase(GetExtensionPart(File$))
; 															    Case "vob", "avi", "asf", "asx", "mpg", "m2v", "p2v", "mp4", "lsf", "lsx", "nsv", "mpeg", "dat", "wmv", "wax", "wvx", "wm", "wmx", "wmp"
; 															        DeviceType$ = "MPEGVideo"
; 															    Case "mp3", "kar", "miz", "mod", "mdz", "nst", "stm", "stz", "s3m", "s3z", "it", "itz", "xm", "xmz", "mtm", "ult", "669", "far", "amf", "okt"
; 															        DeviceType$ = "MPEGVideo"
; 															    Case "mp4", "ptm", "mp2", "mp1", "aac", "apl", "vlb", "m4a", "nsa", "ogg", "voc", "au", "snd", "aif", "aiff", "wma", "pls","flv"
; 															        DeviceType$ = "MPEGVideo"
; 															    Case "wav", "wave"
; 															        DeviceType$ = "MPEGVideo";  'WaveAudio
 															    Case "mid", "midi", "rmi"
 															        DeviceType$ = "Sequencer"
 															    Case "cda"
 															        DeviceType$ = "cdaudio"
															    Case "rm", "ram", "ra"
															        ;DeviceType = eMCI_RealPlayer
															        DeviceType$ = "other"
															    Case "ivf"
															        DeviceType$ = "MPEGVIDEO2"
															    Default
															        DeviceType$ = "MPEGVIDEO"
														 EndSelect; 														 
  													 Open$ = "OPEN " + Chr(34)+File$+Chr(34) + " Type "+DeviceType$+" Alias "+"RASHAD"														                
					                   mciSendString_(Open$,0,0,0)
					                   mciSendString_("window RASHAD handle " + Str(WindowID(0)) ,0,0,0)                          
					                   mciSendString_("load RASHAD " + File$ ,0,0,0)
					                   a$=Space(#MAX_PATH)
					                   mciSendString_("status RASHAD length",@a$,#MAX_PATH,0)
					                   length = Val(a$)
					                   mciSendString_("status RASHAD frame rate",@a$,#MAX_PATH,0)
					                   If Val(a$) = 0
					                       Video = 1
					                   Else
					                       Video = 0
					                   EndIf
					                   
							               w = WindowWidth(0) - 10
							               h = WindowHeight(0) - 75
							               mciSendString_("put RASHAD destination at " +5+" "+5+" "+w+" "+h,0,0,0)
							               SetGadgetAttribute(5,#PB_Button_Image,ImageID(3))
							               If Video = 0					                   
							                   mciSendString_("play RASHAD",0,0,0)
							                   mciSendString_("setaudio RASHAD volume to "+500,0,0,0)
							               ElseIf Video = 1                                 
                                 mciSendString_("play RASHAD",0,0,0)
							                   mciSendString_("setaudio RASHAD volume to "+500,0,0,0)
							                   CreateImage(0,w,h)
							                   CanvasGadget(50,5,5,w,h)							                                    
					                   EndIf					                   
		                   Else
		                       MessageRequester("Error","No file selected !"+#CRLF$+"Try again",#MB_ICONERROR) 
		                   EndIf 
		                   
		           Case 3  ;Previous Frame		    
		                   			If play = 0
								              play = 1
								              SetGadgetAttribute(5,#PB_Button_Image,ImageID(4))
								              mciSendString_("pause RASHAD",0,0,0)
								              mciSendString_("Status RASHAD position",@a$,#MAX_PATH,0)
								              curpos.q = Val(a$) 
								           EndIf		                  
								           nxtpos.q = curpos.q - GetGadgetState(4)*500
						               mciSendString_("play RASHAD from "+Str(nxtpos.q)+" to "+Str(curpos.q),0,0,0)
						               mciSendString_("pause RASHAD",0,0,0) 
						               curpos.q = nxtpos.q 
						               		                   
		           Case 4  ;Previous Step               
		                  
		           Case 5  ;Pause & Resume
		                   play ! 1
		                    If play = 1
		                       SetGadgetAttribute(5,#PB_Button_Image,ImageID(4))
		                       mciSendString_("Pause RASHAD",0,0,0)
		                    Else
		                       SetGadgetAttribute(5,#PB_Button_Image,ImageID(3))
		                       mciSendString_("play RASHAD",0,0,0)
		                    EndIf
		                    
		           Case 6  ;Next Step		                   
		                   
		           Case 7  ;Next Frame
							           If play = 0
							              play = 1
								            SetGadgetAttribute(5,#PB_Button_Image,ImageID(4))
							              mciSendString_("pause RASHAD",0,0,0)
									          mciSendString_("Status RASHAD position",@a$,#MAX_PATH,0)
									          curpos.q = Val(a$) 
							           EndIf		                  
							           nxtpos.q = curpos.q + GetGadgetState(6)*500
					               mciSendString_("play RASHAD from "+Str(curpos.q)+" to "+Str(nxtpos.q),0,0,0)
					               mciSendString_("pause RASHAD",0,0,0) 
					               curpos.q = nxtpos.q
		           
		           Case 8  ;PlayBack Speed
		                   speed = GetGadgetState(8)
		                   mciSendString_("Set RASHAD Speed "+Str(Speed),0,0,0) 
		           
		           Case 9  ;Max - Restore
		                   Max ! 1 
			                If Max = 1
			                      StickyWindow(0,1)
			                      SetGadgetAttribute(9,#PB_Button_Image,ImageID(12))
			                      ShowWindow_(WindowID(0),#SW_MAXIMIZE)
			                  ElseIf Max =0
			                      StickyWindow(0,0)
			                      SetGadgetAttribute(9,#PB_Button_Image,ImageID(9))
			                      ShowWindow_(WindowID(0),#SW_RESTORE	) 
			                EndIf
		           
		           Case 10   ;Save Frame
		              If Run = 1
			                hBitmap = CreateImage(0,WindowWidth(0)-20,WindowHeight(0)-70)
			                hdc = StartDrawing(ImageOutput(0))
			                SelectObject_(hdc, hBitmap)
			                BitBlt_(hdc, 0,0, WindowWidth(0)-20,WindowHeight(0)-70, GetDC_(0), WindowX(0)+15,WindowY(0)+15,  #SRCCOPY|#CAPTUREBLT)
			                StopDrawing()
			                ReleaseDC_(WindowID(0),hdc)	               
		                  If SaveAs = 0 Or SaveAs = 1
		                     SaveImage(0, GetHomeDirectory()+GetFilePart(File$,#PB_FileSystem_NoExtension)+" "+Right(Str(im),2)+".bmp",#PB_ImagePlugin_BMP)
		                  ElseIf SaveAs = 2
		                     SaveImage(0, GetHomeDirectory()+GetFilePart(File$,#PB_FileSystem_NoExtension)+" "+Right(Str(im),2)+".jpg",#PB_ImagePlugin_JPEG)
		                  ElseIf SaveAs = 3
		                     SaveImage(0, GetHomeDirectory()+GetFilePart(File$,#PB_FileSystem_NoExtension)+" "+Right(Str(im),2)+".png",#PB_ImagePlugin_PNG)
		                  EndIf
		                  im+1
		                EndIf      
		                   
		           Case 11	 ;Sound Mute
		                   Sound ! 1
		                   If Sound = 1	                     
		                       mciSendString_("setaudio RASHAD off",0,0,0)
		                       SetGadgetAttribute(11,#PB_Button_Image,ImageID(0))
		                       DisableGadget(12,1)
		                       DisableGadget(13,1)
		                   Else
		                       mciSendString_("setaudio RASHAD on",0,0,0)
		                       SetGadgetAttribute(11,#PB_Button_Image,ImageID(7))
		                       DisableGadget(12,0)
		                       DisableGadget(13,0)
		                   EndIf
		                   
		           Case 12   ;Sound Volume
		                  Vol = GetGadgetState(12)
		                  mciSendString_("setaudio RASHAD volume to "+Vol,0,0,0)
		                  
		           Case 13  ;Sound Balance
		                  Vol = GetGadgetState(13)
		                  If Vol < 500
		                      mciSendString_("setaudio RASHAD left volume to "+Vol,0,0,0)
		                  ElseIf Vol > 500
		                      Vol = 1000 - Vol
		                      mciSendString_("setaudio RASHAD right volume to  "+Vol,0,0,0)
		                  EndIf
		                  
		           Case 14  ;Set Up
		                     DisplayPopupMenu(0, WindowID(0))           
		           
		           Case 20 ;Quit
		                    mciSendString_("Close RASHAD",0,0,0)
		                    Quit = 1
                   
          EndSelect
          
        Case #PB_Event_Timer
                 mciSendString_("Status RASHAD mode",@a$,#MAX_PATH,0)
                If Video = 1 And IsGadget(50) And a$ ="playing"
		                t=ElapsedMilliseconds()/10000			  
		                f=WindowWidth(0) :  g=WindowHeight(0)
	                  m=2+2*Int(t/0.5)%20: c=10+9*Sin(t*2) :d=9+9*Sin(t*3): e=9+9*Sin(t*5)
										a=Abs(Sin(t*7)*0.6)+0.1:b=Abs(Cos(t*11)*0.6)+0.1:j(art)ImageOutput(0))
										DrawImage(GetGadgetAttribute(50,#PB_Canvas_Image),0,0)
										j(op)) :j(art)0+CanvasOutput(50)) :	x=150+100*Sin(t/1.1)
										DrawAlphaImage(ImageID(0),w*Cos(t*9)/x,0+h*Sin(t*9)/x,150)
										DrawingMode(#PB_2DDrawing_Gradient)
										x=w/2*(1+Cos(t*9)) :y=(1+Sin(t*9))*h/2 :LinearGradient(x,y,w-x,h-y)
										FrontColor(RGB(127*(Sin(2*t)+1),(1+Sin(3*t))*127,127*(1+Sin(5*t))))
										BackColor(RGB(127*(1+Sin(7*t)),127*(1+Sin(11*t+	0)),127*(1+Sin(13*t))))
										For i=0 To#n-1 : r=i*2*#PI/#n : p+Sin(t)/30000
										x=w/2*(1+	z*Cos(r+p)) :	y=h/2*(1+z*Sin(r+p))
										If i=0:	fx=x:fy=y:Else:LineXY(ox,oy,x,y):EndIf
										ox=x:oy=y:Next:LineXY(x,y,fx,fy):j(op))
								EndIf
                mciSendString_("Status RASHAD position",@a$,#MAX_PATH,0)
               If Val(a$) <> Oldstatus
                  SetGadgetState(1, Int(Val(a$) * 1000 / length) )
                  Oldstatus = Val(a$)
                EndIf                 
                
        Case #WM_LBUTTONDOWN
                Cap ! 1                	
               	GetCursorPos_ (@cp.POINT) 
	               ScreenToClient_ (WindowID(0), @cp)     
	            If ChildWindowFromPoint_ (WindowID(0),cp\y<< 32+cp\x) <> GadgetID(0) And Cap = 0
	               SetWindowLongPtr_(WindowID(0), #GWL_STYLE, GetWindowLongPtr_(WindowID(0), #GWL_STYLE) |#WS_THICKFRAME &~ #WS_DLGFRAME)
	               SetWindowPos_(WindowID(0), 0, 0, 0, 0, 0, #SWP_FRAMECHANGED| #SWP_DRAWFRAME| #SWP_NOMOVE| #SWP_NOSIZE| #SWP_NOZORDER)
	            ElseIf ChildWindowFromPoint_ (WindowID(0),cp\y<< 32+cp\x) <> GadgetID(0) And Cap = 1
	               SetWindowLongPtr_(WindowID(0), #GWL_STYLE, GetWindowLongPtr_(WindowID(0), #GWL_STYLE) | #WS_THICKFRAME | #WS_DLGFRAME)
	               SetWindowPos_(WindowID(0), 0, 0, 0, 0, 0, #SWP_FRAMECHANGED| #SWP_DRAWFRAME| #SWP_NOMOVE| #SWP_NOSIZE| #SWP_NOZORDER)
	            Else
	               Cap ! 1 
	            EndIf   

 				       
 				Case #WM_LBUTTONDBLCLK

 				       
 			  Case #WM_RBUTTONDOWN
	                Menu ! 1
	                If Menu = 1
	                    HideGadget(0,1)
	                    w = WindowWidth(0) - 10
                      h = WindowHeight(0) - 10       
           						mciSendString_("put RASHAD destination at " +5+" "+5+" "+w+" "+h,0,0,0)
	                Else
	                    HideGadget(0,0)
	                    w = WindowWidth(0) - 10
						          h = WindowHeight(0) - 70       
						          mciSendString_("put RASHAD destination at " +5+" "+5+" "+w+" "+h,0,0,0)	                   
	                EndIf;     
  EndSelect 

Until Quit = 1
End

DataSection
Full:
   Data.q $0A1A0A0D474E5089,$524448490D000000,$4800000060000000,$6705860000000208,$5948700900000034
   Data.q $0000000100000073,$0000D6C4254F0001,$DE07454D49740700,$EB54D838330E0F07,$4144494B1A00001D
   Data.q $547C799CED9C7854,$CF7BDCE77FF0DDD5,$40804849ACEE77BD,$08A0A208A0208848,$297DC7D45EE2AA7D
   Data.q $5B6A57963E8FD4AE,$B56AC1775B5B8BE8,$685D4A2B55AAC56A,$4041128A82F02C15,$264248484B097DF6
   Data.q $E73DCE76EE599333,$8AC49806108663FD,$9847F03C7CBCF3EF,$F7B99BF7EFCBE67B,$B79BA505F9DF399E
   Data.q $9108C58516F8FCEC,$AE65D419B7C32215,$736F15C2745CA8CB,$95A3F168392E3BCF,$A85A35FA75EFE1BA
   Data.q $49612C612492491C,$48C610849184B092,$19CE338F338800C2,$092309639C1718F7,$4666ABB4D59E0C23
   Data.q $9A0E4B8E00147F7C,$DAD6B8C1741D4133,$AEAADA8F7AB1322F,$0D07F7EC20464206,$E706C24EA091A025
   Data.q $668CC66899334660,$D5501AB2A92584EC,$C0E54B06A20C46A0,$25C70008FFD345E0,$9CC37C35B45C1647
   Data.q $965B2C7000544C94,$13D44AA69A2AA225,$E61CF695B22E085C,$427E215D14000C39,$6CA28C93220C420C
   Data.q $7BF9C4F7C0005C17,$E23381588AE1F78D,$A7BEABE3498D33AA,$868894D4E0006478,$6532932001840610
   Data.q $C5FFA47C51442245,$6EFED9F2F8E3DB4B,$80D5501A9A0355C6,$489F8853455506A6,$03CCE1C0284ECEC4
   Data.q $B7E8B5394780042E,$CA8615EEC2B87CE2,$0023E84F7D185CE2,$48FB3C6B58C9E2DA,$D46AA78BDFE64B73
   Data.q $0C8F1C2F0DEF35C2,$84B0F654C3E68A00,$A9A4990004210924,$EAE8C001F411AA6A,$616B2A9262CC645C
   Data.q $2A0355506AEB0B4D,$509D9E1CF0080831,$7842108427A9C380,$CA9D5B3B1CF6FB2E,$4F13EAE3BE6EBD3E
   Data.q $D67B3784AC02E52E,$0005965B170B85E2,$80053EA3953C46FF,$816FBE3C3C565309,$4CD77E02D0006478
   Data.q $84212C232A630962,$DABA694F16DD2B5D,$90F28159B76C9DF1,$95406A7C8BD3E45E,$92701873CCBB9935
   Data.q $BCF67F7519C7909D,$9B3876768F440288,$5E8003100394EFCF,$BE542BAFFEF765E5,$2D6DB6898F0B8BCE
   Data.q $5BF97A7F4A2B2A23,$3AF88F4B5D447D6F,$DADB1DD86BCC74E5,$C4C4F9DB5E87FB5F,$682D00064BCB4701
   Data.q $476314E3D7316C20,$0D4A6CD4F57C92C6,$DA9AC683FC79931D,$197709735FA80046,$6B087A9CA5DCD94D
   Data.q $1D28AD1CE50E80B9,$331E2E722EA12487,$4BDFECAD7FD7EF7C,$C0366DD90C79BA44,$7ABD5FE53A4ED3B6
   Data.q $64960E15DED8EFD5,$6DB68F16D3272584,$F2EE3FD8B549E2FD,$B6880038F0BC2F09,$3C3BE45EBF52FE59
   Data.q $AC9F1061AA000C2F,$43D5487A24168807,$EC86AE8D4F39F2C6,$DDECFB0BA6E38EDF,$269A789D336DDD3E
   Data.q $946CF6DA69B69A4D,$C8BA814AE9C79A3D,$934D1B512D2B2D29,$6186F8F83F8FEEB5,$89F70D6F2D166B63
   Data.q $9CD89CC663538BF8,$C8A05A190F4712EA,$B3C97EAC9A66EE17,$F354D0B53519DEEE,$83561DEA159B68A2
   Data.q $0C33400192F311EA,$B8F704F704F70884,$3F2FF3DEF4D3B947,$554C98EEBF5DCF7D,$FADCDE313F0F3EBF
   Data.q $8565DCBCCE5367BA,$9CA1D8AF72941471,$29AE8E15D32815AE,$EAFBCD15A582CEAA,$97F5DCFC4B936F56
   Data.q $3269A78DCDD89C96,$E47CA3C712E99AD9,$F44C886E7C2DD62F,$5000327DA5757DE6,$13DDC5639647B836
   Data.q $471E487330DB2EC7,$B7B24C00CF8A0406,$7D7FC370E0842146,$FE7B2F37AFD77EBD,$7D9567FEC9EF1B8E
   Data.q $1F63E5C37C9FEE2B,$738BDE7F53AB0A2A,$22A180039CE0B9CE,$D2814AE9CF900040,$7434F67B385764D1
   Data.q $F023D4231D4BEAAB,$FF8F779B55CAD29B,$ED97705F0DF199D9,$8B05D2739174EEDC,$BF59CB30555BA000
   Data.q $C37C52FCF8002374,$EBB8003D4632EE5E,$C8E476562753B5FE,$000514974D149248,$DC2D17D1A1084610
   Data.q $B94E8F09EE4F42DB,$BF75FB733FBFF5FF,$D7C5DC7E315953EC,$39AD1806BAD4FCDD,$4B1570F177507DAF
   Data.q $49210872C6300008,$B4D40A574E3C8002,$8EF70BD99C8BA5B7,$6D7DCF68D92FD71B,$B73592E9696696DE
   Data.q $ACB9F07C1F610B9F,$00079F4F2A739DC9,$A9AE2EF7E7E1ABA3,$FE3ACB89F8C0183D,$75F27BB73F260013
   Data.q $BA2645658C8E7681,$DFA1FCE0994792E0,$1F06F58742DBDEAF,$D5FE6E13527B3D81,$C57C2C39549DBF23
   Data.q $01AAA317ADAC0FC5,$494E7DC0C237B600,$3295C38C61EE0B80,$ED0EA1C8E8001596,$15D7B9CB8CCC814A
   Data.q $DF6B44A3764FBCCE,$2C13EC8F970C1D80,$D71915CBF3FF0E2B,$6739DDED4E751BDB,$00377A5DC697A6F7
   Data.q $C74AD27693D6F2BC,$FD369FBF83C18F4D,$6736B9870999CF6F,$F63C0028F37E6FEE,$91CEDD3F16EBAFF0
   Data.q $0E7A4A9D90730101,$BDA24FCDF5AAB55D,$2FC470120723E023,$AA300000DB5B4CA6,$AF7FA5D705CEFB3A
   Data.q $B8263DC45D5E5F81,$730E7681ECFEAB27,$C7B140B4815AEB28,$0042957EE6722E9C,$FDE9B85FDE930C67
   Data.q $92DE7F365C756E77,$3CFE70AE9060A5FE,$ED4A75BCEE278DFD,$2D336B68DBA70F27,$E939F2A0B535272D
   Data.q $A6B7693962D32A44,$E7D2C35DFACC9616,$3320B391CED82F89,$CD6BD55FED0E6296,$875D4D994B989B82
   Data.q $7A87087F0000963B,$C9D74958967A8514,$C6BCCE72E6336A50,$BE21D4798F732F15,$371CB50E76813650
   Data.q $D47908C440A5776D,$6D45FC7C00473AEE,$FB76DD17B3B982DA,$C8BA2FC2CD4AC058,$766FEA7A7B4C7671
   Data.q $2B1511E12A4CF67D,$0D12FE221E800104,$E9AD3799BF826400,$032391D82F88D79B,$F9CB534895B2E080
   Data.q $5892BA8B004D84F1,$451324BFA479CC76,$6BA6A1C03FA2E40F,$B6613F5410AECCA7,$4A00694E75DA51E4
   Data.q $6E374DF35972B003,$604D92CD75497B1A,$ECFB1A6D438574B6,$3222878B6DC32B19,$0807A994EC0008C6
   Data.q $738799BACC001CA7,$2E5A9A44AC5205B2,$E4991FC786AE8C00,$A434446302BAE151,$6A0245F41C57D869
   Data.q $BDFD7B3F79FD77D0,$0044D379DDE3A817,$0FFAAC92DA953E20,$5DBA8B69B8E39404,$E79095C57E698BBA
   Data.q $775EFAFDFE9CC2E2,$27F687F93C8F15D5,$3BDD69FDCF535AC6,$5DEEC0E9A78F3E73,$5C9B6E2C770EB8E2
   Data.q $00060031AF2DF0D5,$FB6C2D4D79F4DCB7,$F218400009EE3CE2,$93493AAC20003238,$E5A707BEFDB3B9DA
   Data.q $909DAFDB8E3BD85D,$12465D141ABA3A3D,$5461CED43D9E8992,$20A7C441D6974EB8,$BDEC10E615E4A884
   Data.q $B8590F6A6A1FF2F9,$1BD9502014D65CAE,$2D8E16D71C4BB954,$E4EEFC5E3AA84F3C,$3EDBAB4ECD4C0F29
   Data.q $D1AB9CAE62CD8BDD,$7BA90700815C9CA1,$B46F3A02DE5313F0,$D1494168ACBA251F,$23A9CBA872CA03DA
   Data.q $D20ACB9B1D80993E,$F60920BEC7EE927D,$888A3D8245940A28,$316A534ED4D2774F,$A63F5CE015184000
   Data.q $1E50E2EBDBAD86DF,$F460000867A48FCA,$1D71CA752E8923B9,$F1A8CB2410AE5D4E,$FCBF2987F33E3FEB
   Data.q $996D34FBBEAF13D5,$E3CA0573D13A7C49,$DDA7DE899AE000C8,$46EDFD16B7ABE3BC,$415903DC13CF098F
   Data.q $03525514828A4132,$E69F11A189D7EABA,$3C63DCB9EE51EE31,$26E66CECB04E67B3,$9A66639DA8400841
   Data.q $84249000098C1529,$71E17382F09EC865,$4D158225D0D550E6,$00A8499242171E12,$1597C57D0331DAE7
   Data.q $3A4B4D5976A68788,$5E9FE57FB3C5E4E5,$B7469BF77361E57C,$EC157EBFD0788150,$911AC783DE90CA73
   Data.q $AB0E8009955D90DE,$86E4FEE50D52DCBC,$E779B35C20000100,$7420256ABDD8FF37,$CB64CDD74564725C
   Data.q $501182269473DDFE,$0ED9871D43B661DB,$0421528F528F5C73,$5559144CB2CB0842,$00AA68AAAAC89565
   Data.q $4F9F11896A9A1D44,$817558391C971C00,$41CC88550E61AD13,$EB994A3CC63CC670,$DA872D4DB6A1C732
   Data.q $01CE09A6B2A9A2B6,$40B267124B08C210,$85D5409CB6CCB988,$D6A56A20E4B8E200,$53371CCD61B9307C
   Data.q $E545188368F7DF68,$1C002A7ABD0EC743,$AAF6A83649D91C97,$FD37F8A908D04F13,$1DE7B89A668ABD91
   Data.q $EC5E0FD8BC1F9C97,$BC4E9CBDFF62F7B8,$13A707C759F177D8,$E9C0F1D67CDDF62F,$4CE0B82686298BC4
   Data.q $83E3B17ADBF769B8,$215FAA1A0B400183,$65D1E984EA1AAC86,$D1E2863108D564BB,$76E31E630572CF36
   Data.q $F7FEA5FCF917AD9B,$2E0754BE23832716,$D8CB165346D9DBA8,$DD10E0750173839E,$434777E9CB284620
   Data.q $18F73E53B4EB25F1,$AB1A53A1C6FD73EF,$FD4BFBF52FE2DE6F,$CF4D8BE729D59F59,$38574F188F3DD224
   Data.q $F759CF72FC478A49,$5FCBCB4769D45745,$F5A4CB733EB45FEA,$3C10C35400191C79,$99ADF2F8C792A8A1
   Data.q $1FFAE46555335BE5,$7DC7F75B33F4E719,$1B2ED24EE6D4233D,$1DB9EB2C3BD423DC,$49EA7124A8B2962C
   Data.q $672EC8E76A87A0E4,$DEC0085244C92CAE,$FDDEEF74E322FADC,$943D658C604E1384,$805489597A9CBB67
   Data.q $A37A932D9BFB4F53,$51E2F213F2D3494F,$4E98FB9DAA394EA5,$1D2D13301C2FBF74,$F4D2FEF6589F0AF3
   Data.q $5EE99B52DE6F6F0B,$C5EF9391D9A4D0A2,$B81F13EECD5DA0B2,$17DEB6A765D203D3,$9B6E47F76A11562E
   Data.q $0B962E99B4E39D95,$02C1CC9C57E6287B,$E6F36F9F3ED39BA5,$E894D592749D27CD,$3C58914728F35FA2
   Data.q $9B456153F2A07182,$29D59F47663957F6,$97F5585F20503B47,$6333BD5D58BDDBF8,$2EA3FB0DA9EB78AD
   Data.q $790A6789C2EC2EE4,$12F8DEF296238EB1,$F72579CD74DD2E66,$CCBB97B0DA53D4DE,$4A4CB6CD47B26789
   Data.q $C7841C1287BA3860,$C807585A000E8BDB,$89D1B9E31F5537D5,$B48E2811E21C12CF,$CCF8D727144C48A2
   Data.q $B06F0715C3133D2D,$9DD1CA75EA31EB84,$3162F59691460C5C,$0A36CFC6C0F2DCA1,$9E3A45C13D8DD0F3
   Data.q $F85361B0E0C5E42E,$AA33D1798CE8DCDB,$86773C4B70B386E1,$2CF80B8DB1C7F6C7,$E1D955D594210184
   Data.q $64EB5B9DFE4B83F2,$8610C5EA7718C259,$0450045004700478,$44535628A731228A,$762B43FFAAF39616
   Data.q $62A0503D3A394EE2,$E7DB8BD4F67EF36D,$3CF4F2DA47E5117E,$62F7C9C8ED6A6D1E,$0901700000127847
   Data.q $9BBB2B2043094B57,$167C05E30A5A4A9B,$5DC1E4ECB69BA973,$1B2467FDBD4A92F7,$97318BDCEB38752E
   Data.q $C48451408A102C76,$77D69C7EBC031022,$0381CC2B0E68BE25,$77B56DF7C5F62579,$992210A8968E26D5
   Data.q $944762F10E723B30,$DD27066779C11859,$BD62D53937407FD5,$07A20004C019AF33,$B6C66E59F0178F89
   Data.q $D92A3B5B4B74E912,$1D465C2FB583F078,$EC66E62F53B75393,$8EA1002E23C502BC,$5EAB5753A2AADE74
   Data.q $48BDCFED49CC2AD0,$4DF3F9DCA23E3456,$DD2D0DBB985AF168,$A846AB084096FF91,$E3A72D462F10E723
   Data.q $0BF8C3FA7386556C,$965A1F2CF6E79195,$51EC94310000CC68,$8CA8790A0F89FBA2,$52076BDA6699B765
   Data.q $44B49CD228DF20F3,$8AF158CACFB9D61D,$D707888A478A0583,$D41346E8EFE7C264,$C663985CB49C722A
   Data.q $521FB4E9E3375C0E,$C548FE7C1F686F09,$ACF6F64BFB7F2E29,$C85C6109D5CED37A,$F0188F317733518B
   Data.q $0F77A2BEDCE8C193,$23FBB69731225C39,$5453EE8A23AEE7A2,$83995B936CA1EC28,$381D1A34697311AF
   Data.q $608A1EB373736070,$87C567C577136309,$4225891C5C523C40,$0C60D5DCB5D67391,$0084264A1903DBE8
   Data.q $B5E7703B158E53A0,$0DD1562F768195B9,$3EFA1343F540F73D,$268BED67D7AEEAFF,$E62F5471BA202028
   Data.q $F8E1EAE8253EADA6,$4CB19242D9827E9C,$40EDA6EE3C204210,$A26EE6A2B9731F77,$AA1E2BA93E264F8A
   Data.q $D97264C9E3C240BD,$47047FF9A00065B2,$628A4754E44750F2,$58CEB72D0D29D891,$1ED1EDF7099B9272
   Data.q $C8958E47567CD1CF,$ED5429B615D4629D,$62687A2AF67ABC90,$FB47F6F5EC6E7BBF,$2F547C8625145E3E
   Data.q $85B5D94EEB78A8C6,$B184232491FCE56D,$49A2A973D43982E0,$5C8B33FCF3DE5C37,$0F15DE51E455859B
   Data.q $2023250464A27735,$51EC1E9F175A2E0B,$A87A23DD25643DC4,$E37F4F9BB4CE7223,$0284A08D5B8D01F9
   Data.q $723AB3E68E78C772,$411D7647BACC4402,$E443F979C8EC7B80,$B519717A7FCB2BB6,$6308FEE1D8BD51D8
   Data.q $973297339CE61240,$A9829AA88E1E9F12,$87A2EBC7318B5CC5,$CE44750F34739C3A,$93EC905654FD2F55
   Data.q $E1C04822A30E3DFE,$01C3078DB7C5B1C2,$3EC28A942569262F,$45609923FAC8210B,$728BBF595140B493
   Data.q $7EC5E0FCE538EA1E,$D8BC1FB1783F62F0,$6291AEEC4E47277F,$520B62B23F8BBE0B,$9F28FFD7A048CB0D
   Data.q $FC4B07A2D8BCCC75,$DDEE8A3FA3BFDD45,$58EB3E51FFFEA92D,$4770709D62F07E71,$FCF739639A29262F
   Data.q $1F8CB9946E633139,$B4B1FE8FEED047F4,$FCF28E19F573FC6D,$D3963B632B1CE1D1,$0B91AA82C673E9CE
   Data.q $F9E2F2729D50F53A,$F89923F80E1839BE,$99BDB477F29F5564,$D799C58CAD37ACD7,$F062E085C0A5E2FF
   Data.q $6967FA68FEB2CB15,$541AAF6334FEF5C7,$788768AAA0D44189,$F316E6B452472CA8,$3CCE694D8DA3D7C1
   Data.q $43D07D5D18003CCE,$F593837375BB3B3D,$E549999499398550,$A718F71E13CCE1E2,$3E28E53B5C64E78E
   Data.q $8389EFD5F884FC42,$5593EA8A7CD14001,$A9C5C7D5B7AF57FD,$87EA9794C3A421BD,$001C9E9B7211BCDC
   Data.q $03EC4FC5DB617BEE,$FD27336C90A57E80,$7A3B84B0D616B576,$8F6B9B0CD1472CA8,$8CCDA6F5AF2D247D
   Data.q $9CECF2E9701D0E7A,$4EF7DD8B30565309,$5C6BDE9FF675FCCB,$A28E016A03569B5F,$63334D24CB4524F9
   Data.q $3F64DF565CF50E7B,$01867666D75AE7FE,$57E2BA8246A09591,$B63A308AA0908315,$12B2EF5558BC439C
   Data.q $77ECF22DF038D1A3,$51D923E3A8FEB311,$F50F3477A9C95D55,$39706F36A6D6C2EA,$73E3ADBC3FC74A70
   Data.q $A8303DEAE76D7A1F,$E72D67DE6CE9143B,$2588959F15D5525C,$6B5D6F3151A24A89,$866AD53B71D390C0
   Data.q $F8C2D6F6A0E5057A,$C66D4C9AC2AD6FCF,$700B00AECD41865D,$A1E13B375B52CFBC,$F25FD72F259C8EE1
   Data.q $439C8EF2D2E86EE3,$872436F87E9EC5FA,$609E7BC77267BDEF,$9DCEEFD57BF963CC,$FAD1D9FA340D99EE
   Data.q $CDCF53DB74981EB3,$8DC604180018CCF4,$DF5D7493F0CA75E9,$C5B35B8DC6F372B0,$4ADDDFE4C7BBD9EA
   Data.q $5B0805E7DA775F53,$126AB7D135E2C4E9,$6D4D59D5E430BFEF,$1E5062DB680E16AD,$39DF4D4F42FDD5C4
   Data.q $ACB8F21E6072A6F1,$E66B3805150FD968,$ADAC92CB3B77E7A3,$AAF27B6939CB2457,$70A8DE715D33CDD9
   Data.q $FCCB4E62FD21CE47,$39EC03BEF3779EF4,$7B000469D90E668C,$59FD02FCFD4E9BD7,$5C64F793F4F75F06
   Data.q $BFF1391ECFB38000,$E15198E56C72BB2E,$CDAFDBB8D1FCAE5B,$515EC344FCFA9FCE,$65D7E2120B4BCFB8
   Data.q $F4A5C3E04B53645F,$676958E932522182,$95EEC939D4F4CEEB,$694AA53FAD7FA9A1,$6662A44D6C773169
   Data.q $01741EDC99396126,$231EBAEC48B3F74E,$939D4F8CBEDB2756,$BF19DD9E3D6BF0AC,$003071E510516CAC
   Data.q $E7675D7307A18668,$933C4E16AF3ABDDC,$4BDDDB783DE74E6E,$7365345A4DC6789C,$1B20F473B543D07A
   Data.q $15150BDEADDF93FE,$D5F33B9CAC8CC7BD,$7EDFEBA2FD7FAF4B,$FF7179727F8F93FF,$B7FE2BB8C000A7A1
   Data.q $CDA8E1938052DAD3,$EC9771EF5F472483,$A998D75EE88C1710,$9F64BD23BAD896DD,$198EF60FCDE90964
   Data.q $F44379DD66637BEA,$84CD35152FB9FFB7,$30CDF381744858E5,$389A417D3A504B6D,$267948BB16D0F228
   Data.q $B58ED8BDF2738708,$63C2E0842001092F,$1C0CA60FFADEDA9C,$15CB31CF55CEF275,$C6DB45FD6B3CE3CC
   Data.q $F3FF3A0D43CD1CBF,$496557A1ABA3AA6C,$FDDEC86B9FE7B420,$BE224D7AF812AAE9,$439F8591BE90F17A
   Data.q $2D4D6D7FBAEE0445,$F8F70E70E2B1FCD4,$14005D453577D38B,$5616ED2DCE8BE3F6,$DBACF67307C55B6A
   Data.q $126B95D2C2F6FF2D,$F9BCA29EC6C497B3,$9CD9BF8AFD47FC75,$782A0023554CF2B9,$3B755FE719D41402
   Data.q $B8AACBFB18BCD2FC,$24F82FBB7B8AC570,$BF58738F2900D67E,$CF510459F39D9B18,$2BCB973DC45689A5
   Data.q $4830936993BDFDDF,$E4970E8287A9DC8A,$57149863E9295860,$4B75E08D07484114,$48802CDBCBC4B737
   Data.q $65838F3C7F6C666E,$A3C7E86278187399,$3C6ECE678B23D9C8,$92DC3FB82488D4F9,$AE35D6BB4739CFDE
   Data.q $634773B0333194DF,$9CC5358DEFD5E326,$10B0D49343094DFD,$9580D394EA124248,$022CE85B91A47D55
   Data.q $B17BE4E4472DADF5,$8E6F4D9DE416233E,$FF6C6E33F52A4B97,$1D2DDF6F14B397C8,$9E33997B6DD543CD
   Data.q $1E8EE766B4DACFED,$26BB3FBE476BEEF8,$ACB8AC359C672212,$47F1E42C969AE369,$396567F63BCE0B27
   Data.q $FA9B5ADDCB1C9258,$61657587C67B2BEC,$4FAE77331A6DA7E4,$2CF75697042812E8,$BA15CDAFB0DD1FDB
   Data.q $8F10415769526522,$C1490254250A8E5B,$EDF0C0483394EA32,$6C3EF29E5D2036AC,$62F7C9CE1F891450
   Data.q $3A938DD9FB4D965B,$78EACFACE3F74816,$9F4B0D77ED3A9F8F,$343985786ACFAA3F,$7CC7FD1757559FDB
   Data.q $6B7FDD8F5D80F869,$C3F0B63554CA13B7,$A608A2BFB258FFBD,$CC7A2F65C6D1E1FD,$A4C958E5959FD8E9
   Data.q $A6D6D434B8EF7193,$CD1F12CBE7D61325,$034185DCE4AF0C4F,$81695976AB470350,$3C44946A49EBBB2B
   Data.q $C915559291A0D586,$00ABCD90013E2B1C,$5759DABD5C354867,$E279707F57D63DAE,$B58655AAF7DCAFA2
   Data.q $31FF777317BE4E3C,$CACFA3A8214467AF,$9F28FE7999A6D88E,$DDEAC0FC9DEFB693,$ECD6F6EED61ABA30
   Data.q $C5BEF2CEED7A7EDA,$09FA48AE9F5857F3,$F6B91F47A9E04454,$36C7223D4F86DEBC,$39AEA6D47DB3D55D
   Data.q $50B5C2F9454DD2AA,$79329F52424A0DDD,$630DF4DAE6D0E0C8,$4591CAF9A4F8CFBB,$BA280A4F2399769B
   Data.q $1742F6817C4A6322,$BDAC10F916B65CE0,$7B9B9AD35E6C4FAD,$BE3C1489EEA5FD55,$6647F01C3071E50F
   Data.q $3627B3FA95ED392C,$E37CDCC46302D5E4,$52596BFCB75FE4FA,$332879E40F447D51,$69A5FD8F535B3496
   Data.q $847CDCF7506F6EF5,$BF9B37A9EC3582C4,$037B430A5FEC90D9,$11369FBBCEE34400,$789CA44EC72238DD
   Data.q $6F1CF2D33D244EDA,$413B2585280C2564,$E77C87B2A08C9096,$84647F3B14D1150D,$1141CCF706A6CA18
   Data.q $F640F44FDD75D555,$E54237BD3805063B,$EA559EBEE9EAF14E,$98F66846EC54379D,$F2643713EC7B7E92
   Data.q $256D22562902D938,$AB7E5145516B2B32,$4DA5A361C11FD64F,$B2879E6A292A9F10,$51C2F4BC96331912
   Data.q $8B8A4A032295CA83,$80C8A001AFDF7B7E,$D96CF84F7061DD81,$9F3E000FEE4E03AB,$70F90C427EEB9AEF
   Data.q $224E32DA7196DD8E,$0C17188E5DCA1DC9,$6BF9A047AB85F446,$C6155EBCF6418499,$47C8B4F232599C7F
   Data.q $CA0FE9E9AFBBB135,$0BDA3755544AA0FE,$143C9830F14E5474,$3D15F14E76E44AEA,$79EECFFC0C641F6F
   Data.q $DEB29391FC070C1C,$946C911581CEFE79,$13FF6B86E33CCEA3,$3799DE0008FEB200,$7BDDA3D9E9DCC67D
   Data.q $265D142FC8F43D96,$5D45949CA1E79286,$556579DF27446151,$F2FBABCF63D5E555,$FAFFCEADCD1E27D9
   Data.q $7E3E0F7BEB5EB3FE,$86FBBF6F83A1C0CB,$C722394FAA782741,$C0981CA7019CDB4D,$E156A70E8604141C
   Data.q $F3D825337D725521,$FDF930E126182229,$355850F5BD3EEA84,$16C8DD34443F8AFC,$906CA914FCA700A8
   Data.q $69D0FF526DB9C792,$57EF6C5E21CE3CE1,$7B795FABD3F1DD2F,$C054AB0E27C1B0EE,$5F1B139363E4FCDD
   Data.q $1AABEB9E596F9CE2,$FC3F371BB539C17D,$17EA171F5DC93DD4,$CF738AF26AC36E4B,$EBF1A8C8A79F6D88
   Data.q $8F608DEBBD2DA5DC,$ECABA1E5357F2222,$0172E8A4D12736D8,$3E0673947829C59F,$C9548615630D541D
   Data.q $208A6B89120B4E23,$EB9EA4D765D3D53E,$E9A192CB8C130E79,$98BF48738CC7C606,$FE389DCFB6766999
   Data.q $6897BB6DADBEE4AA,$0457E69CF65A6E06,$C23DDD77557DEDE7,$93AD1473F59B17E3,$50FE6C90DD372CFE
   Data.q $3FF968C6303630D5,$DB3F7D6BDD01A8A7,$C1326212A59C862F,$8C91C10318BCFB85,$265821415100AC85
   Data.q $7EE65520A6915748,$65166208C788F643,$481FFEEE1028C22A,$FFF9C36380083064,$C79EE73821098BC6
   Data.q $0804085CE71E1739,$0240201084B09061,$1FD5EECB76602100,$1C263E30895EADD5,$4D748FE063B4D159
   Data.q $CC3B6A2CFB7DFC20,$65840085CE528CA5,$644A8AA9AC8A2159,$669731002A9A2555,$6647158E30D531A2
   Data.q $288FE8EF9D31C8B8,$2CFB7DFE1AAA2E2A,$DAEDA6BB6D9975CF,$05C049A6B2AAACB6,$2032E025C4232046
   Data.q $20E431EED8E799C4,$9BA617B3F9F4D12B,$40D87DC8D4BA016B,$AB2F9DEE73EAB2FE,$53CBFED59F4BFFC6
   Data.q $5FFCE731C8497EF2,$DBD4767E0EA5411B,$444E454900000000,$826042AE
Fullend:
EndDataSection

Egypt my love
User avatar
electrochrisso
Addict
Addict
Posts: 980
Joined: Mon May 14, 2007 2:13 am
Location: Darling River

Re: MCI MMedia Player [Windows]

Post by electrochrisso »

8) Very nice RASHAD, thanks for sharing. :D
PureBasic! Purely one of the best 8)
User avatar
kernadec
Enthusiast
Enthusiast
Posts: 146
Joined: Tue Jan 05, 2010 10:35 am

Re: MCI MMedia Player [Windows]

Post by kernadec »

Nice work thanks RASHAD :D
davido
Addict
Addict
Posts: 1890
Joined: Fri Nov 09, 2012 11:04 pm
Location: Uttoxeter, UK

Re: MCI MMedia Player [Windows]

Post by davido »

Magic!
Lovely job RASHAD, thank you for sharing.
DE AA EB
dige
Addict
Addict
Posts: 1247
Joined: Wed Apr 30, 2003 8:15 am
Location: Germany
Contact:

Re: MCI MMedia Player [Windows]

Post by dige »

Hi RASHAD, good job. But is MCI not obsolete, is'nt it? Compared to the DirectShow player ... what is more future-proof?
"Daddy, I'll run faster, then it is not so far..."
RASHAD
PureBasic Expert
PureBasic Expert
Posts: 4636
Joined: Sun Apr 12, 2009 6:27 am

Re: MCI MMedia Player [Windows]

Post by RASHAD »

@electrochrisso
@kernadec
@davido
@dige
Thanks guys

@dige
That was for my knowledge all the time
But while studying the functions through MSDN nothing mentioned about that any more
It is a mess for me :mrgreen:
But the fact it is still works fine even with Windows 8.1
It is less in functionality comparing to DirectShow
But it is less headache too :mrgreen:
Egypt my love
ozzie
Enthusiast
Enthusiast
Posts: 429
Joined: Sun Apr 06, 2008 12:54 pm
Location: Brisbane, Qld, Australia
Contact:

Re: MCI MMedia Player [Windows]

Post by ozzie »

dige wrote:Hi RASHAD, good job. But is MCI not obsolete, is'nt it? Compared to the DirectShow player ... what is more future-proof?
That's my concern, too. Although MCI is still available, even under Win 8.1, it seems to me like an old product that has a limited future.

RASHAD, you're certainly a wiz regarding Windows API's etc (and probably many more things, too!). What I'd love to see is a PB Windows MMedia Player that uses Media Foundation :idea: 8)
User avatar
electrochrisso
Addict
Addict
Posts: 980
Joined: Mon May 14, 2007 2:13 am
Location: Darling River

Re: MCI MMedia Player [Windows]

Post by electrochrisso »

dige wrote:Hi RASHAD, good job. But is MCI not obsolete, is'nt it? Compared to the DirectShow player ... what is more future-proof?
I just did a search on the Goog and cant find any mention of it being obsolete or going to become obsolete. :|
PureBasic! Purely one of the best 8)
User avatar
Danilo
Addict
Addict
Posts: 3037
Joined: Sat Apr 26, 2003 8:26 am
Location: Planet Earth

Re: MCI MMedia Player [Windows]

Post by Danilo »

MSDN: Windows Multimedia just says:
Many of their features have been superseded by features in DirectX. For more information, see the DirectX documentation.
for: Multimedia Audio, Multimedia Input, Video for Windows.

Doesn't look like it's obsolete or deprecated. Sounds like they just recommend to use the newer, better, superior DirectX Multimedia functions, when possible.



List of features removed in Windows Vista contains a different thing:
Windows Media Player features
* The MCI version of Media Player (mplay32.exe) has also been removed.
RASHAD
PureBasic Expert
PureBasic Expert
Posts: 4636
Joined: Sun Apr 12, 2009 6:27 am

Re: MCI MMedia Player [Windows]

Post by RASHAD »

@electrochrisso
Do not worry MCI will be here for long
Nothing will be worth than windows 8.1

@Danilo
Since you won the World Cup and no one can talk to you :mrgreen:
Egypt my love
PB
PureBasic Expert
PureBasic Expert
Posts: 7581
Joined: Fri Apr 25, 2003 5:24 pm

Re: MCI MMedia Player [Windows]

Post by PB »

> Pow(Pow(Abs(Cos(m*r/4)/a),d)+Pow(Abs(0+Sin(m*r/4)/b),e),-1/c)

:shock: What the heck does this do?
I compile using 5.31 (x86) on Win 7 Ultimate (64-bit).
"PureBasic won't be object oriented, period" - Fred.
User avatar
Danilo
Addict
Addict
Posts: 3037
Joined: Sat Apr 26, 2003 8:26 am
Location: Planet Earth

Re: MCI MMedia Player [Windows]

Post by Danilo »

RASHAD wrote:@Danilo
Since you won the World Cup and no one can talk to you :mrgreen:
I see. :D
dige
Addict
Addict
Posts: 1247
Joined: Wed Apr 30, 2003 8:15 am
Location: Germany
Contact:

Re: MCI MMedia Player [Windows]

Post by dige »

Wow, the MCI Media Player, plays 4K videos better than the Direct Show Player! No jerking. It's look very nice! How can that be? MCI is very old...
"Daddy, I'll run faster, then it is not so far..."
Post Reply