home *** CD-ROM | disk | FTP | other *** search
- /***********************************************************************
- GADGET: "'Laden'" "1" AUTO TYP: "?"
-
- $DAT >>LoadIn.clssa<< 27.11.1993 - (C) ProDAD Holger Burkarth
- 20.01.1995 - (C) ProDAD Michael Christoph
- ************************************************************************/
-
- Options RESULTS
- Address clariSSA
- ARG InputVar
-
- FailAt 11
- AltFail=RESULT
-
- SetPref "SCREENS OFF"
-
-
- DO FOREVER
- WorkAnim2=""
- WorkAnim=GetAnimReg("")
- IF WorkAnim="" THEN LEAVE
-
- F_NewAnim=1
- GetAnimInfo Master
- IF RESULT~="" THEN DO
- MSRequester "TITLE '*** Laden ***'",
- "''",
- "'Animationsregister MASTER ist bereits belegt.'",
- "PTEXT 'Animation an die MASTER anhängen bzw. erweitern'",
- "'MASTER neu anlegen (alte Animation entfernen)'",
- "'** Abbruch **'"
- IF RC~=0 | RESULT>2 THEN LEAVE
- F_NewAnim=0
- IF RESULT=2 THEN DO
- F_NewAnim=1
- CloseAnim Master
- IF RC~=0 THEN LEAVE
- END
- END
-
-
-
- GetPref
- PARSE VAR RESULT . "NAME" '"'Datei'"' .
- PrefFile='"'Datei'"'
-
- Mode_Auto=0
- Mode_REQ=0
- DO FOREVER
- PARSE VAR InputVar com InputVar
- IF com="" THEN LEAVE
- IF com="AUTO" THEN Mode_Auto=1;
- ELSE IF com="REQ" THEN Mode_REQ=1;
- ELSE IF com="NAME" THEN DO
- PARSE VAR InputVar '"'Datei'"'
- PrefFile='"'Datei'"'
- END
- END
-
- IF Mode_Auto=1 THEN DO
- Datei=PrefFile
- END
- ELSE DO
- SetBasicScreen Front
- FileSelect "Name" PrefFile "TITLE 'Wählen Sie die zu ladende Datei' PTEXT 'Laden'"
- IF RC~=0 THEN LEAVE
- Datei='"'RESULT'"'
- END
-
-
-
- ret=RunA(Datei,F_NewAnim,WorkAnim)
-
- LEAVE
- END
-
- SetPref "SCREENS ON"
- RequestStatus ON
-
- FailAt AltFail
- exit
-
-
-
-
-
-
- /*------------------------------------------------
- Hauptroutine
- -------------------------------------------------*/
- RunA: procedure
- DO
- ARG Datei,F_NewAnim,WorkAnim
-
- IF F_NewAnim=1 THEN F_SetName=1
- ELSE F_SetName=0
-
- IF GetVersion()="P" THEN DO
- PV=1
- SetPref HBComp OFF LaceCompensation ON
- END
- ELSE DO
- PV=0
- SetPref LaceCompensation ON
- END
-
- DO FOREVER
- GetFileInfo "NAME" Datei
- IF RC~=0 THEN DO
- Message "'Unbekanntes Dateiformat'"
- LEAVE
- END
-
- PARSE VAR RESULT ."ID" AnimID . "FORMAT" ex ey et "VIEWMODE" eViewMode "FRAMES" frames .
- MAnimID=AnimID
-
- IF AnimID='MDHD' THEN F_SetName=0
-
- f_F=0
- IF CheckAnimIDChange(AnimID,1)=1 THEN DO
- MSRequester "TITLE '*** Laden ***'",
- "''",
- "'FORMAT: "MAnimID "-" ex ey et eViewMode "'",
- "''",
- "'Ausgewählte Datei ist keine SSA-Animation.'",
- "'Soll die Datei in das SSA-Format umgewandelt werden?'",
- "PTEXT 'Umwandlung in SSA'",
- "'Ohne Umwandlung einladen'",
- "'** Abbruch **'"
- IF RC~=0 | RESULT>2 THEN LEAVE
- IF RESULT=1 THEN f_F=1
- END
-
-
- IF ( f_F=1 ) | ((F_NewAnim=0) & (AnimID~='MDHD')) THEN DO
- F_FrameSeq=0
- F_OneFrame=0
- IF frames=1 THEN F_SingleFrame=1; ELSE F_SingleFrame=0
-
-
- IF F_NewAnim=1 THEN DO
- IF F_FrameSeq=0 & INDEX(eViewMode,"LACE")>0 THEN DO
- IF CheckAnimIDChange(AnimID,2)=1 THEN DO
- MSRequester "TITLE '*** Laden ***'",
- "''",
- "'FORMAT: "MAnimID "-" ex ey et eViewMode "'",
- "''",
- "'Animation beinhaltet LACE und kann mit'",
- "'50/60Hz abgespielt werden.'",
- "'Soll die Animation flimmerfrei mit kleineren'",
- "'Geschwindigkeiten darstellbar sein, so muß'",
- "'der HB-Kompensator zugeschaltet werden.'",
- "PTEXT 'normal einladen'",
- "'mit HB-Kompensator einladen'",
- "'** Abbruch **'"
- IF RC~=0 | RESULT>2 THEN LEAVE
- IF RESULT=1 THEN SetPref "HBComp OFF LaceCompensation ON"
- ELSE IF RESULT=2 THEN SetPref "HBComp ON LaceCompensation OFF"
- END
- END
-
- IF F_FrameSeq=1 THEN AnimID="ILBM"
- ELSE AnimID="SSA "
-
-
- IF INDEX(eViewMode,"LACE")=0 & AnimID~="ILBM" THEN DO
- IF MS_NoLace()=1 THEN LEAVE
- END
-
- OpenAnim "MASTER ID" AnimID "FORMAT" ex ey et "VIEWMODE" eViewMode
- IF RC~=0 THEN LEAVE
- END
-
-
- IF F_SingleFrame=1 THEN DO
- INTRequest "'Geben Sie die Anzahl'",
- "'der vorhandenen Bilder ein.' 1"
- FrameCount=RESULT
- IF RC~=0 | FrameCount<1 THEN LEAVE
- LoadAnim "MASTER NAME" Datei "FRAMES" FrameCount
- SelectAnim MASTER
- SetArea FULL
- END
- ELSE DO
- LoadAnim WorkAnim "NAME" Datei
- IF RC~=0 THEN LEAVE
- RequestStatus OFF
- Record Area
- IF RC~=0 THEN LEAVE
- CloseAnim WorkAnim
- SelectAnim MASTER
- END
-
- END
- ELSE LoadAnim "MASTER NAME" Datei
-
-
- IF F_SetName=1 THEN DO
- PARSE VAR Datei '"'Datei'"'
- IF Length(Datei)>34 THEN Datei=Right(Datei,34)
- /*??? SetMAnimList "NAME" "'"Datei"'"*/
- END
- LEAVE
- END
-
- RETURN(RC)
- END
-
-
-
- /*------------------------------------
- Freies Animationsregister ermitteln.
- -------------------------------------*/
- GetAnimReg: procedure
- DO
- ARG IReg
-
- WorkAnim=""
- DO FOREVER
- WorkAnim="SOURCE_A"
- IF IReg~=WorkAnim & TestReg(WorkAnim)=0 THEN LEAVE
- WorkAnim="SOURCE_B"
- IF IReg~=WorkAnim & TestReg(WorkAnim)=0 THEN LEAVE
- WorkAnim="SOURCE_C"
- IF IReg~=WorkAnim & TestReg(WorkAnim)=0 THEN LEAVE
- WorkAnim="SOURCE_D"
- IF IReg~=WorkAnim & TestReg(WorkAnim)=0 THEN LEAVE
- WorkAnim=""
- LEAVE
- END
-
- IF WorkAnim="" THEN DO
- a=""
- WorkAnim="SOURCE_A"
- IF IReg~=WorkAnim THEN a=a WorkAnim
- WorkAnim="SOURCE_B"
- IF IReg~=WorkAnim THEN a=a WorkAnim
- WorkAnim="SOURCE_C"
- IF IReg~=WorkAnim THEN a=a WorkAnim
- WorkAnim="SOURCE_D"
- IF IReg~=WorkAnim THEN a=a WorkAnim
-
-
- SelectAnim a,
- "TITLE 'Wählen Sie ein Source-Register zur@Zwischenspeicherung aus.'",
- "REQ"
- IF RC > 1 THEN BREAK
- WorkAnim=RESULT
- CloseAnim WorkAnim
- IF RC > 1 THEN BREAK
- END
-
- RETURN (WorkAnim)
- END
-
-
-
- TestReg: procedure
- DO
- ARG Reg
-
- GetAnimInfo Reg
- IF RESULT~="" THEN RETURN(1)
-
- RETURN (0)
- END
-
-
-
- GetVersion: procedure
- DO
- Information
- PARSE VAR RESULT . "VERSION:" cl .
- RETURN (cl)
- END
-
-
-
- CheckAnimIDChange: procedure
- DO
- ARG ID,Mode
-
- IF Mode=1 THEN DO
- /*??? IF ID='MDHD' | ID='SSA ' | ID='SSAD' | ID='SSA5' THEN RETURN(0)*/
- IF ID='MDHD' | ID='SSA ' THEN RETURN(0)
- ELSE RETURN(1)
- END
- ELSE IF Mode=2 THEN DO
- IF ID='ADO1' THEN RETURN(0)
- ELSE RETURN(1)
- END
-
- RETURN (0)
- END
-
-
-
- MS_NoLace: procedure expose MAnimID ex ey et eViewMode
- DO
-
- MSRequester "TITLE '*** Laden ***'",
- "''",
- "'FORMAT: "MAnimID "-" ex ey et eViewMode "'",
- "''",
- "'Animation beinhaltet kein LACE => NICHT ABSPIELBAR'",
- "PTEXT 'Umwandlung in LACE + Korrektur (Verhältnis)'",
- "'Umwandlung in LACE (Bild verkleinert sich)'",
- "'** Abbruch **'"
-
- IF RC~=0 | RESULT>2 THEN RETURN(1)
- IF RESULT=1 THEN DO
- SetPref "HBComp OFF LaceCompensation ON"
- ey=ey*2
- END
- ELSE IF RESULT=2 THEN SetPref "HBComp OFF LaceCompensation OFF"
- eViewMode=eViewMode "LACE"
-
-
- RETURN (0)
- END
-