home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / gfx / show / superview-lib / programmers / docs / superview_ref_eng.doc < prev    next >
Encoding:
Text File  |  1995-05-28  |  45.9 KB  |  1,831 lines

  1.  
  2.    $VER: SuperView_Ref_ENG.doc V11.3 (14.4.95)
  3.  
  4.    © 1994-95 by Andreas R. Kleinert. All rights reserved.
  5.  
  6.    - Feel free to translate this Doc-File into other languages. -
  7.  
  8.           Andreas R. Kleinert,
  9.           Grube Hohe Grethe 23,
  10.           D-57074 Siegen,
  11.           Germany.
  12.  
  13.     Phone:  +49-271-331859 (weekdays after 18.00h)
  14.             +49-271-332147 (weekdays after 18.00h)
  15.     EMail:  Fido             Andreas Kleinert 2:2457/435.10
  16.             Usenet/InterNet  Andreas_Kleinert@superview.ftn.sub.org
  17.  
  18.       If nothing else works, try one of these Fido-InterNet gateways:
  19.  
  20.             Andreas_Kleinert@p10.f435.n2457.z2.fido.sub.org (in Germany)
  21.             Andreas_Kleinert@p10.f435.n2457.z2.fidonet.org  (USA or other)
  22.  
  23.  
  24.    Please note the version-dependencies :
  25.  
  26.     superview.library      SVObjects      SVDrivers      SVOperators
  27.  
  28.     Version 1              -              -              -
  29.     Version 2              Version 1      -              -
  30.     Version 3-8            Version 1,2    Version 1      -
  31.     Version 9-10           Version 1,2    Version 1      Version 1
  32.     Version 11             Version 1,2    Version 1,2    Version 1
  33.  
  34.    Request at least :  V2+    for SVObjects
  35.                        V3+    for SVDrivers
  36.                        V4+    for bug-fixed ClipBoard-Support
  37.                               with the supplied SVObjects
  38.                        V5+    for bug-fixed GfxBuffer-Functions
  39.                        V6+    for working GfxBuffer-Writing
  40.                               with the supplied SVObjects
  41.                        V7+    for adding/removing single SVObjects/SVDrivers
  42.                        V8+    for filetype recognition without loading
  43.                        V9+    for SVOperator functions
  44.                        V10+   added handling of "foreign" GfxBuffers
  45.                        V11+   for ScreenMode function(s)
  46.  
  47.    Here is a listing of all currently available functions of the
  48.    superview.library in an Autodoc-like style of description :
  49.  
  50.         SVL_AllocHandle            ; since Version 1
  51.         SVL_FreeHandle
  52.         SVL_CloseDisplay
  53.         SVL_FreeResources
  54.         SVL_SuperView
  55.         SVL_SuperWrite
  56.         SVL_InitHandleAsDOS
  57.         SVL_InitHandleAsClip
  58.         SVL_SetWriteType
  59.         SVL_SetWindowIDCMP
  60.         SVL_SetWindowFlags
  61.         SVL_SetScreenType
  62.         SVL_GetWindowAddress
  63.         SVL_GetScreenAddress
  64.         SVL_GetErrorString
  65.         SVL_SetWriteScreen
  66.         SVL_SetWriteName
  67.         SVL_FileInfoRequest
  68.                    ; no functions added in Version 2
  69.         SVL_GetGlobalDriver        ; since Version 3
  70.         SVL_SetGlobalDriver
  71.         SVL_ReadToGfxBuffer
  72.         SVL_GetGfxBuffer
  73.         SVL_SetGfxBuffer
  74.         SVL_DisplayGfxBuffer
  75.                    ; no functions added in Version 4
  76.                    ; no functions added in Version 5
  77.         SVL_GetSVObjectList        ; since Version 6
  78.         SVL_GetSVDriverList
  79.         SVL_FreeSVObjectList
  80.         SVL_FreeSVDriverList
  81.         SVL_RemoveSVObject         ; since Version 7
  82.         SVL_RemoveSVDriver
  83.         SVL_AddSVObject
  84.         SVL_AddSVDriver
  85.         SVL_GetFileType            ; since Version 8
  86.         SVL_DoOperation            ; since Version 9
  87.         SVL_GetSVOperatorList
  88.         SVL_FreeSVOperatorList
  89.         SVL_RemoveSVOperator
  90.         SVL_AddSVOperator
  91.                    ; no functions added in Version 10
  92.         SVL_GetModeList            ; since Version 11
  93.  
  94. -----------------------------------------------------------------------------
  95.    Functions available since Version 1 - 2 :
  96. -----------------------------------------------------------------------------
  97.  
  98.    NAME
  99.         SVL_AllocHandle
  100.  
  101.    SYNOPSIS
  102.  
  103.         APTR SVL_AllocHandle(APTR future)
  104.         D0   -$1e            A1
  105.  
  106.    FUNCTION
  107.  
  108.         Allocates a handle for accessing a Graphic via SVObjects.
  109.  
  110.    INPUT(S)
  111.  
  112.         future - always NULL yet
  113.  
  114.    RESULT
  115.  
  116.         NULL or a pointer to a ready-to-use handle.
  117.  
  118.    SINCE
  119.  
  120.         ... version 1 of the superview.library.
  121.  
  122.    SEE ALSO
  123.  
  124.         SVL_FreeResources, SVL_FreeHandle
  125.  
  126. -----------------------------------------------------------------------------
  127.  
  128.    NAME
  129.         SVL_FreeHandle
  130.  
  131.    SYNOPSIS
  132.  
  133.         VOID SVL_FreeHandle(APTR handle)
  134.         D0   -$24           A1
  135.  
  136.    FUNCTION
  137.  
  138.        Stops showing, frees all Resources and delocates a Handle, which has
  139.        been allocated with SVL_AllocHandle before.
  140.  
  141.  
  142.        For programmers of SVObjects :
  143.  
  144.        Note, that this functions calls
  145.  
  146.           SVL_CloseDisplay(SVHandle);
  147.           SVL_FreeResources(SVHandle);
  148.  
  149.        for internal SVObjects and
  150.  
  151.           SVO_FreeHandle(SVHandle->ah_SVHandle);
  152.  
  153.           CloseLibrary((APTR) SVObjectBase);
  154.  
  155.        for external SVObjects.
  156.        So do not forget to do the SVO_CloseDisplay() and SVO_FreeResources()
  157.        calls inside SVO_FreeHandle().
  158.        Otherwise memory might be lost.
  159.  
  160.    INPUT(S)
  161.  
  162.         handle - a valid handle
  163.  
  164.    BUGS
  165.  
  166.         This function was buggy for external SVObjects (never closed, memory
  167.         loss) upto V2.4.
  168.  
  169.    SINCE
  170.  
  171.         ... version 1 of the superview.library.
  172.  
  173.    SEE ALSO
  174.  
  175.         SVL_AllocHandle, SVL_CloseDisplay, SVL_FreeResources
  176.  
  177. -----------------------------------------------------------------------------
  178.  
  179.    NAME
  180.         SVL_CloseDisplay
  181.  
  182.    SYNOPSIS
  183.  
  184.         VOID SVL_CloseDisplay(APTR handle)
  185.         D0   -$2a             A1
  186.  
  187.    FUNCTION
  188.  
  189.         Stops showing the Graphic, indentified by the handle.
  190.         The Display-Screen is closed, but no Resources are given free.
  191.  
  192.    INPUT(S)
  193.  
  194.         handle - a valid handle
  195.  
  196.    SINCE
  197.  
  198.         ... version 1 of the superview.library.
  199.  
  200.    SEE ALSO
  201.  
  202.         SVL_FreeResources, SVL_FreeHandle
  203.  
  204. -----------------------------------------------------------------------------
  205.  
  206.    NAME
  207.         SVL_FreeResources
  208.  
  209.    SYNOPSIS
  210.  
  211.         VOID SVL_FreeResources(APTR handle)
  212.         D0   -$30              A1
  213.  
  214.    FUNCTION
  215.  
  216.         Frees all resources belonging to the specific Graphic,
  217.         indentified by the handle, which are not needed to just show it.
  218.         The Display will not be closed.
  219.  
  220.         Note, that SVL_FileInfoRequest() will no longer work, then
  221.         ("No file loaded" or similar request appears).
  222.  
  223.    INPUT(S)
  224.  
  225.         handle - a valid handle
  226.  
  227.    SINCE
  228.  
  229.         ... version 1 of the superview.library.
  230.  
  231.    SEE ALSO
  232.  
  233.         SVL_AllocHandle, SVL_CloseDisplay, SVL_FreeHandle
  234.  
  235. -----------------------------------------------------------------------------
  236.  
  237.    NAME
  238.         SVL_SuperView
  239.  
  240.    SYNOPSIS
  241.  
  242.         ULONG SVL_SuperView(APTR handle, char *filename)
  243.         D0    -$36          A1           A2
  244.  
  245.    FUNCTION
  246.  
  247.         Loads and shows the Graphic described by FileName.
  248.         The handle is initialized and the fitting SVObject is opened
  249.         and accessed for showing the Graphic.
  250.  
  251.         Showing can be stopped either via full delocation of the handle
  252.         or via Closing the Display with SVL_CloseDisplay.
  253.  
  254.    INPUT(S)
  255.  
  256.         handle   - a valid handle
  257.         filename - a valid AmigaDOS FilePath and -Name
  258.  
  259.    RESULT
  260.  
  261.         NULL or an adequate SVERR-Errorcode.
  262.  
  263.    SINCE
  264.  
  265.         ... version 1 of the superview.library.
  266.  
  267.    SEE ALSO
  268.  
  269.         SVL_AllocHandle, SVL_CloseDisplay, SVL_FreeHandle
  270.  
  271. -----------------------------------------------------------------------------
  272.  
  273.    NAME
  274.         SVL_SuperWrite
  275.  
  276.    SYNOPSIS
  277.  
  278.         ULONG SVL_SuperWrite(APTR handle)
  279.         D0    -$3c           A1
  280.  
  281.    FUNCTION
  282.  
  283.         Before Version 3 a Graphic had to be loaded AND showed via
  284.         SVL_SuperView : No separate reading and showing calls were done.
  285.         For writing - that means : converting - a Graphic, you at first
  286.         have to display, then to save it. Use the following order :
  287.  
  288.         (But check the "result" value AFTER EACH function call, like this
  289.          has been done in the example SourceCodes ...)
  290.  
  291.         source_handle = SVL_AllocHandle(N);
  292.         /* result     = SVL_InitHandleAsDOS(source_handle, N); */ /* default */
  293.         result        = SVL_SetWindowIDCMP(source_handle,
  294.                                     IDCMP_MOUSEBUTTONS | IDCMP_VANILLAKEY, N)))
  295.         result        = SVL_SetScreenType(source_handle, CUSTOMSCREEN, N)))
  296.         result        = SVL_SuperView(source_handle, source_filename)))
  297.         result        = SVL_GetScreenAddress(source_handle, &sv_screen, N)))
  298.         result        = SVL_GetWindowAddress(source_handle, &sv_window, N)))
  299.  
  300.         dest_handle   = SVL_AllocHandle(N);
  301.         /* result     = SVL_InitHandleAsDOS(dest_handle, N); */ /* default */
  302.         result        = SVL_SetWriteType(dest_handle, dest_type, N)))
  303.         result        = SVL_SetWriteName(dest_handle, dest_filename, N)))
  304.         result        = SVL_SetWriteScreen(dest_handle, sv_screen, N)))
  305.         result        = SVL_SuperWrite(dest_handle);
  306.         SVL_FreeHandle(dest_handle);
  307.  
  308.         SVL_FreeHandle(source_handle);
  309.  
  310.  
  311.         Since Version 3 it is also possible to save the contents of
  312.         SV_GfxBuffers, so that not necessarily a Screen has to be the
  313.         source for writing to Disk/ClipBoard (or to whatever).
  314.         Not all SVObjects may necessarily support this (return-code
  315.         becomes SVERR_ACTION_NOT_SUPPORTED).
  316.         But since Version 6 all of the supplied SVObjects (those which come
  317.         with superview.library and contain Write-Support) allow this.
  318.         So, if you request at least V6+, the likelihood will be with you ...
  319.  
  320.         All available values for dest_type can be found in the specific
  321.         SVObject-List in SuperViewBase.
  322.         The values WILL change with every re-initialization of
  323.         superview.library, so update them with every new opening
  324.         (read them from the SVObject-List inside SuperViewBase or use the
  325.          new functions, which have been introduced with V6).
  326.         Only ILBM.svobject and ACBM.svobject (and the internal Datatype-
  327.         svobject, which cannot be used for saving, anyway) keep the same
  328.         values for compatibility reasons, but since two of these are now
  329.         external you might not be sure, if they are available
  330.         (which means : actually in "LIBS:svobjects") or not ...
  331.  
  332.    INPUT(S)
  333.  
  334.         handle        - a valid handle        (used for Write Access)
  335.  
  336.    RESULT
  337.  
  338.         NULL or an adequate SVERR-Errorcode.
  339.  
  340.    SINCE
  341.  
  342.         ... version 1 of the superview.library.
  343.  
  344.    SEE ALSO
  345.  
  346.  
  347.  
  348.         SVL_AllocHandle, SVL_FreeHandle
  349.  
  350. -----------------------------------------------------------------------------
  351.  
  352.    NAME
  353.         SVL_InitHandleAsDOS
  354.  
  355.    SYNOPSIS
  356.  
  357.         ULONG SVL_InitHandleAsDOS(APTR handle, APTR future)
  358.         D0    -$42                A1           A2
  359.  
  360.    FUNCTION
  361.  
  362.         Initializes a Handle for AmigaDOS access, so that the given
  363.         AmigaDOS FileNames are used.
  364.         Another possibility is sometimes to initialize Handles
  365.         for ClipBoard Access (depending on the specific SVObject,
  366.         e.g. IFF-ILBM).
  367.  
  368.    INPUT(S)
  369.  
  370.         handle - a valid handle
  371.         future - always NULL yet
  372.  
  373.    RESULT
  374.  
  375.         NULL or an adequate SVERR-Errorcode.
  376.  
  377.    BUGS
  378.  
  379.         During V2.4 upto V3.8 this was done automatically ALWAYS.
  380.         This was fixed in V4.1
  381.         See BUGS under SVL_InitHandleAsClip.
  382.  
  383.    SINCE
  384.  
  385.         ... version 1 of the superview.library.
  386.  
  387.    SEE ALSO
  388.  
  389.         SVL_InitHandleAsClip
  390.  
  391. -----------------------------------------------------------------------------
  392.  
  393.    NAME
  394.         SVL_InitHandleAsClip
  395.  
  396.    SYNOPSIS
  397.  
  398.         ULONG SVL_InitHandleAsClip(APTR handle, APTR future)
  399.         D0    -$48                 A1           A2
  400.  
  401.    FUNCTION
  402.  
  403.         Initializes a Handle for ClipBoard access, so that the (possibly)
  404.         given AmigaDOS FileNames are ignored.
  405.         The nearly always used possibility is to initialize Handles
  406.         for AmigaDOS Access (supported by ALL SVObjects).
  407.  
  408.    INPUT(S)
  409.  
  410.         handle - a valid handle
  411.         future - always NULL yet
  412.  
  413.    RESULT
  414.  
  415.         NULL or an adequate SVERR-Errorcode.
  416.  
  417.    BUGS
  418.  
  419.         From 2.4 to 3.8 this function-call was useless, since
  420.         superview.library blocked all medias other than
  421.         AKO_MEDIUM_DISK for external SVObjects :
  422.         For reading calls, this resulted in a "file not found" message
  423.         from superview.library, for writing calls, this resulted in an
  424.         empty filename string, which caused the SVObject to reject the
  425.         disk access (other accesses were not set correctly).
  426.         This was fixed in 4.1, by using the SVO_SetAccessMode() function
  427.         with the right parameters now and by using the "future" parameter
  428.         of SVO_CheckFileType() - only when using other media than
  429.         AKO_MEDIUM_DISK - as a pointer to an additional SVOCheckFileInfo
  430.         structure now.
  431.         This is 100% compatible, since superview.library has always set
  432.         this value to NULL, so that older SVObjects will simply ignore
  433.         this pointer and newer versions will only interpret it, if it's
  434.         not NULL.
  435.  
  436.    SINCE
  437.  
  438.         ... version 1 of the superview.library. (request V4+)
  439.  
  440.    SEE ALSO
  441.  
  442.         SVL_InitHandleAsDOS
  443.  
  444. -----------------------------------------------------------------------------
  445.  
  446.    NAME
  447.         SVL_SetWriteType
  448.  
  449.    SYNOPSIS
  450.  
  451.         ULONG SVL_SetWriteType(APTR handle, ULONG write_type, APTR future)
  452.         D0    -$4e             A1           A2                A3
  453.  
  454.    FUNCTION
  455.  
  456.         Sets the write_type for a SVL_SuperWrite() call.
  457.         See description there and example SourceCodes for more and
  458.         detailed information.
  459.  
  460.    INPUT(S)
  461.  
  462.         handle     - a valid handle
  463.         write_type - a valid temporary SubTypeCode from the SVObject-List
  464.         future     - always NULL yet
  465.  
  466.    RESULT
  467.  
  468.         NULL or an adequate SVERR-Errorcode.
  469.  
  470.    SINCE
  471.  
  472.         ... version 1 of the superview.library.
  473.  
  474.    SEE ALSO
  475.  
  476.         SVL_SuperWrite
  477.  
  478. -----------------------------------------------------------------------------
  479.  
  480.    NAME
  481.         SVL_SetWindowIDCMP
  482.  
  483.    SYNOPSIS
  484.  
  485.         ULONG SVL_SetWindowIDCMP(APTR handle, ULONG idcmp, APTR future)
  486.         D0    -$54               A1           A2           A3
  487.  
  488.    FUNCTION
  489.  
  490.         Sets the default IDCMP-Flags for a SVL_SuperView() call.
  491.         While displaying, the Address of the Window can be get via the
  492.         SVL_GetWindowAddress() function.
  493.         See description there and example SourceCodes for more and
  494.         detailed information.
  495.  
  496.    INPUT(S)
  497.  
  498.         handle - a valid handle
  499.         idcmp  - a valid number of IDCMP-Flags
  500.         future - always NULL yet
  501.  
  502.    RESULT
  503.  
  504.         NULL or an adequate SVERR-Errorcode.
  505.  
  506.    SINCE
  507.  
  508.         ... version 1 of the superview.library.
  509.  
  510.    SEE ALSO
  511.  
  512.         SVL_SuperView
  513.  
  514. -----------------------------------------------------------------------------
  515.  
  516.    NAME
  517.         SVL_SetWindowFlags
  518.  
  519.    SYNOPSIS
  520.  
  521.         ULONG SVL_SetWindowFlags(APTR handle, ULONG flags, APTR future)
  522.         D0    -$5a               A1           A2           A3
  523.  
  524.    FUNCTION
  525.  
  526.         Sets the default Window-Flags for a SVL_SuperView() call.
  527.         While displaying, the Address of the Window can be get via the
  528.         SVL_GetWindowAddress() function.
  529.         See description there and example SourceCodes for more and
  530.         detailed information.
  531.  
  532.    INPUT(S)
  533.  
  534.         handle - a valid handle
  535.         flags  - a valid number of Window-Flags
  536.         future - always NULL yet
  537.  
  538.    RESULT
  539.  
  540.         NULL or an adequate SVERR-Errorcode.
  541.  
  542.    SINCE
  543.  
  544.         ... version 1 of the superview.library.
  545.  
  546.    SEE ALSO
  547.  
  548.         SVL_SuperView
  549.  
  550. -----------------------------------------------------------------------------
  551.  
  552.    NAME
  553.         SVL_SetScreenType
  554.  
  555.    SYNOPSIS
  556.  
  557.         ULONG SVL_SetScreenType(APTR handle, ULONG type, APTR future)
  558.         D0    -$60              A1           A2          A3
  559.  
  560.    FUNCTION
  561.  
  562.         Sets the default Screen-Type for a SVL_SuperView() call.
  563.         While displaying, the Address of the Screen can be get via the
  564.         SVL_GetScreenAddress() function.
  565.         See description there and example SourceCodes for more and
  566.         detailed information.
  567.  
  568.    INPUT(S)
  569.  
  570.         handle - a valid handle
  571.         type   - a valid ScreenType value (e.g. CUSTOMSCREEN)
  572.         future - always NULL yet
  573.  
  574.    RESULT
  575.  
  576.         NULL or an adequate SVERR-Errorcode.
  577.  
  578.    SINCE
  579.  
  580.         ... version 1 of the superview.library.
  581.  
  582.    SEE ALSO
  583.  
  584.         SVL_SuperView
  585.  
  586. -----------------------------------------------------------------------------
  587.  
  588.    NAME
  589.         SVL_GetWindowAddress
  590.  
  591.    SYNOPSIS
  592.  
  593.         ULONG SVL_GetWindowAddress(APTR handle, struct Window **window,
  594.         D0    -$66                 A1           A2
  595.  
  596.                                    APTR future)
  597.                                    A3
  598.  
  599.    FUNCTION
  600.  
  601.         While displaying, the Address of the DisplayWindow can be get
  602.         via this function.
  603.         See description there and example SourceCodes for more and
  604.         detailed information.
  605.  
  606.    INPUT(S)
  607.  
  608.         handle - a valid handle
  609.         window - a valid address of a Window-Pointer
  610.         future - always NULL yet
  611.  
  612.    RESULT
  613.  
  614.         NULL or an adequate SVERR-Errorcode.
  615.  
  616.    SINCE
  617.  
  618.         ... version 1 of the superview.library.
  619.  
  620.    SEE ALSO
  621.  
  622.         SVL_SuperWrite
  623.  
  624. -----------------------------------------------------------------------------
  625.  
  626.    NAME
  627.         SVL_GetScreenAddress
  628.  
  629.    SYNOPSIS
  630.  
  631.         ULONG SVL_GetScreenAddress(APTR handle, struct Screen **screen,
  632.         D0    -$66                 A1           A2
  633.  
  634.                                    APTR future)
  635.                                    A3
  636.  
  637.    FUNCTION
  638.  
  639.         While displaying, the Address of the DisplayScreen can be get
  640.         via this function.
  641.         See description there and example SourceCodes for more and
  642.         detailed information.
  643.  
  644.    INPUT(S)
  645.  
  646.         handle - a valid handle
  647.         screen - a valid address of a Screen-Pointer
  648.         future - always NULL yet
  649.  
  650.    RESULT
  651.  
  652.         NULL or an adequate SVERR-Errorcode.
  653.  
  654.    SINCE
  655.  
  656.         ... version 1 of the superview.library.
  657.  
  658.    SEE ALSO
  659.  
  660.         SVL_SuperWrite
  661.  
  662. -----------------------------------------------------------------------------
  663.  
  664.    NAME
  665.         SVL_GetErrorString
  666.  
  667.    SYNOPSIS
  668.  
  669.         char * SVL_GetErrorString(ULONG error_code)
  670.         D0    -$72                A1
  671.  
  672.    FUNCTION
  673.  
  674.         Returns the Error Message for a specific Error Code, returned
  675.         by any function of the superview.library.
  676.  
  677.    INPUT(S)
  678.  
  679.         error_code - any SVERR Error Code
  680.  
  681.    RESULT
  682.  
  683.         read-only pointer to a SVERR Error String
  684.  
  685.    SINCE
  686.  
  687.         ... version 1 of the superview.library.
  688.  
  689.    SEE ALSO
  690.  
  691.         -
  692.  
  693. -----------------------------------------------------------------------------
  694.  
  695.    NAME
  696.         SVL_SetWriteScreen
  697.  
  698.    SYNOPSIS
  699.  
  700.         ULONG SVL_SetWriteScreen(APTR handle, struct Screen *screen,
  701.         D0    -$78               A1           A2
  702.  
  703.                                  APTR future)
  704.                                  A3
  705.  
  706.    FUNCTION
  707.  
  708.         Sets the Source Screen for a SVL_SuperWrite() call.
  709.         See description there and example SourceCodes for more and
  710.         detailed information.
  711.  
  712.         This will overwrite a previously done SVL_SetGfxBuffer() call.
  713.  
  714.    INPUT(S)
  715.  
  716.         handle - a valid handle
  717.         screen - a valid pointer to an opened Screen
  718.         future - always NULL yet
  719.  
  720.    RESULT
  721.  
  722.         NULL or an adequate SVERR-Errorcode.
  723.  
  724.    SINCE
  725.  
  726.         ... version 1 of the superview.library.
  727.  
  728.    SEE ALSO
  729.  
  730.         SVL_SuperWrite
  731.  
  732. -----------------------------------------------------------------------------
  733.  
  734.    NAME
  735.         SVL_SetWriteName
  736.  
  737.    SYNOPSIS
  738.  
  739.         ULONG SVL_SetWriteName(APTR handle, ULONG write_name, APTR future)
  740.         D0    -$7e             A1           A2                A3
  741.  
  742.    FUNCTION
  743.  
  744.         Sets the write_name for a SVL_SuperWrite() call.
  745.         See description there and example SourceCodes for more and
  746.         detailed information.
  747.  
  748.    INPUT(S)
  749.  
  750.         handle     - a valid handle
  751.         write_name - a valid AmigaDOS FilePath and -Name description
  752.         future     - always NULL yet
  753.  
  754.  
  755.    RESULT
  756.  
  757.         NULL or an adequate SVERR-Errorcode.
  758.  
  759.    SINCE
  760.  
  761.         ... version 1 of the superview.library.
  762.  
  763.    SEE ALSO
  764.  
  765.         SVL_SuperWrite
  766.  
  767. -----------------------------------------------------------------------------
  768.  
  769.    NAME
  770.         SVL_FileInfoRequest
  771.  
  772.    SYNOPSIS
  773.  
  774.         ULONG SVL_FileInfoRequest(APTR handle, struct Window *window,
  775.         D0    -$84                A1           A2
  776.  
  777.                                   APTR future)
  778.                                   A3
  779.  
  780.    FUNCTION
  781.  
  782.         Pops up an Info-Requester with more or less detailed information
  783.         on the currently loaded Graphic.
  784.         A window pointer may be given to select the place to pop it up.
  785.  
  786.         Note, that this function will fail, if you already called
  787.         SVL_FreeResources() (might result in a "No file loaded" message) !
  788.  
  789.    INPUT(S)
  790.  
  791.         handle - a valid handle
  792.         window - a valid Window Pointer or NULL
  793.         future - always NULL yet
  794.  
  795.    RESULT
  796.  
  797.         NULL or an adequate SVERR-Errorcode.
  798.  
  799.    BUGS
  800.  
  801.         None known, but :
  802.         For non-internal SVObjects SVO_FileInfoRequest() is called, thus
  803.         if this one is buggy, ...
  804.  
  805.         The Easy-Requester (or whatever else it is) will usually be attached
  806.         to IntuitionBase->ActiveWindow, if window is NULL.
  807.         This may cause problems sometimes, so always specify a WindowPtr,
  808.         if possible !
  809.  
  810.    SINCE
  811.  
  812.         ... version 1 of the superview.library.
  813.  
  814.    SEE ALSO
  815.  
  816.         -
  817.  
  818. -----------------------------------------------------------------------------
  819.    Functions added with Version 3 - 5 :
  820. -----------------------------------------------------------------------------
  821.  
  822.    NAME
  823.         SVL_GetGlobalDriver
  824.  
  825.    SYNOPSIS
  826.  
  827.         ULONG SVL_GetGlobalDriver(struct SVD_DriverNode **driver,
  828.         D0    -$8a                A1
  829.  
  830.                                   ULONG future)
  831.                                   A2
  832.  
  833.    FUNCTION
  834.  
  835.         Gets the Global Default ScreenDriver (SVDriver) from the
  836.         specific field of SuperViewBase.
  837.  
  838.         Always use this function. Do not access SuperViewBase directly !
  839.  
  840.    INPUT(S)
  841.  
  842.         driver - a pointer to a SVD_DriverNode pointer
  843.         future - always NULL yet
  844.  
  845.  
  846.    RESULT
  847.  
  848.         NULL or an adequate SVERR-Errorcode.
  849.  
  850.    SINCE
  851.  
  852.         ... version 3 of the superview.library.
  853.  
  854.    SEE ALSO
  855.  
  856.         SVL_SetGlobalDriver()
  857.  
  858. -----------------------------------------------------------------------------
  859.  
  860.    NAME
  861.         SVL_SetGlobalDriver
  862.  
  863.    SYNOPSIS
  864.  
  865.         ULONG SVL_SetGlobalDriver(struct SVD_DriverNode *driver,
  866.         D0    -$90                A1
  867.  
  868.                                   ULONG future)
  869.                                   A2
  870.  
  871.    FUNCTION
  872.  
  873.         Sets a new Global Default ScreenDriver (SVDriver) in the
  874.         specific field of SuperViewBase.
  875.  
  876.         Always use this function. Do not access SuperViewBase directly !
  877.  
  878.    INPUT(S)
  879.  
  880.         driver - a pointer to a SVD_DriverNode
  881.         future - always NULL yet
  882.  
  883.    RESULT
  884.  
  885.         NULL or an adequate SVERR-Errorcode.
  886.  
  887.    SINCE
  888.  
  889.         ... version 3 of the superview.library.
  890.  
  891.    SEE ALSO
  892.  
  893.         SVL_GetGlobalDriver()
  894.  
  895. -----------------------------------------------------------------------------
  896.  
  897.    NAME
  898.         SVL_ReadToGfxBuffer
  899.  
  900.    SYNOPSIS
  901.  
  902.         ULONG SVL_ReadToGfxBuffer(APTR handle, char *filename)
  903.         D0    -$96                A1           A2
  904.  
  905.    FUNCTION
  906.  
  907.         Reads the graphic file - specified with filename - into
  908.         a SV_GfxBuffer structure.
  909.  
  910.         Access to this structure can be managed via SVL_GetGfxBuffer().
  911.  
  912.         The combination SVL_ReadToGfxBuffer() and SVL_DisplayGfxBuffer()
  913.         has the same effect as a call to SVL_SuperView().
  914.         But note, that GfxBuffer-functions only work with Version 2
  915.         SVObjects, while SVL_SuperView() also fits to Version 1 SVObjects.
  916.         Internally, the result is the same, anyway.
  917.  
  918.    INPUT(S)
  919.  
  920.         handle   - a valid handle
  921.         filename - a valid AmigaDOS FilePath and -Name
  922.  
  923.    RESULT
  924.  
  925.         NULL or an adequate SVERR-Errorcode.
  926.  
  927.    BUGS
  928.  
  929.         This call was broken from V3-4 !
  930.  
  931.    SINCE
  932.  
  933.         ... version 3 of the superview.library. (request V5+)
  934.  
  935.    SEE ALSO
  936.  
  937.         SVL_GetGfxBuffer(), SVL_DisplayGfxBuffer()
  938.  
  939. -----------------------------------------------------------------------------
  940.  
  941.    NAME
  942.         SVL_GetGfxBuffer
  943.  
  944.    SYNOPSIS
  945.  
  946.         ULONG SVL_GetGfxBuffer(APTR handle, struct SV_GfxBuffer **buffer,
  947.         D0    -$9c             A1           A2
  948.  
  949.                                ULONG future)
  950.                                A3
  951.  
  952.  
  953.    FUNCTION
  954.  
  955.         For READ accessing the SV_GfxBuffer structure, which has been
  956.         created with SVL_ReadGfxBuffer() or SVL_DoOperation() before.
  957.  
  958.         Do not change, write to or free this structure by hand.
  959.         Nevertheless you may create your own structures.
  960.  
  961.    INPUT(S)
  962.  
  963.         handle - a valid handle
  964.         buffer - a pointer to a valid SV_GfxBuffer pointer
  965.         future - always NULL yet
  966.  
  967.  
  968.    RESULT
  969.  
  970.         NULL or an adequate SVERR-Errorcode.
  971.  
  972.    BUGS
  973.  
  974.         This call was broken from V3-4 !
  975.  
  976.    SINCE
  977.  
  978.         ... version 3 of the superview.library. (request V5+)
  979.  
  980.    SEE ALSO
  981.  
  982.         SVL_ReadGfxBuffer(), SVL_DisplayGfxBuffer()
  983.  
  984. -----------------------------------------------------------------------------
  985.  
  986.    NAME
  987.         SVL_SetGfxBuffer
  988.  
  989.    SYNOPSIS
  990.  
  991.         ULONG SVL_SetGfxBuffer(APTR handle, struct SV_GfxBuffer *buffer,
  992.         D0    -$a2             A1           A2
  993.  
  994.                                ULONG future)
  995.                                A3
  996.  
  997.    FUNCTION
  998.  
  999.         This function initializes a WRITE handle with any SV_GfxBuffer.
  1000.  
  1001.         The SV_GfxBuffer will only be used for read-only purposes and
  1002.         is usually not be touched in any way (if it will be modified
  1003.         during the operation, the changes will be undone after completion).
  1004.  
  1005.         The buffer won't be delocated, when free'ing the given handle,
  1006.         so this is still the task of its owner, then.
  1007.  
  1008.         This will overwrite a previously done SVL_SetWriteScreen() call.
  1009.  
  1010.    INPUT(S)
  1011.  
  1012.         handle - a valid handle
  1013.         buffer - a valid SV_GfxBuffer pointer
  1014.         future - always NULL yet
  1015.  
  1016.    RESULT
  1017.  
  1018.         NULL or an adequate SVERR-Errorcode.
  1019.  
  1020.    WARNING
  1021.  
  1022.         Before V6 the documentation said under FUNCTION :
  1023.         "If also a valid Screen Pointer is supplied, the SV_GfxBuffer
  1024.          is ignored".
  1025.  
  1026.         There's no guarantee for that AND you never should supply
  1027.         TWO Sources for ONE Destination.
  1028.  
  1029.         GfxBuffer-Writing works since V6 with the supplied SVObjects
  1030.         and they do prefer GfxBuffers, NOT Screens.
  1031.         Screens have to be converted into GfxBuffers internally, before
  1032.         they can written, so GfxBuffers should take less memory ...
  1033.         Last not least : This function was broken upto V5, anyway.
  1034.  
  1035.    BUGS
  1036.  
  1037.         This call was broken from V3-5 !
  1038.  
  1039.    SINCE
  1040.  
  1041.         ... version 3 of the superview.library. (request V6+)
  1042.  
  1043.    SEE ALSO
  1044.  
  1045.         SVL_ReadGfxBuffer(), SVL_SuperWrite()
  1046.  
  1047. -----------------------------------------------------------------------------
  1048.  
  1049.    NAME
  1050.         SVL_DisplayGfxBuffer
  1051.  
  1052.    SYNOPSIS
  1053.  
  1054.         ULONG SVL_DisplayGfxBuffer(APTR handle, struct SV_GfxBuffer *buffer,
  1055.         D0    -$a8                 A1           A2
  1056.  
  1057.                                    ULONG future)
  1058.                                    A3
  1059.  
  1060.  
  1061.    FUNCTION
  1062.  
  1063.         The combination SVL_ReadToGfxBuffer() and SVL_DisplayGfxBuffer()
  1064.         has the same effect as a call to SVL_SuperView().
  1065.         But note, that GfxBuffer-functions only work with Version 2
  1066.         SVObjects, while SVL_SuperView() also fits to Version 1 SVObjects.
  1067.         Internally, the result is the same, anyway.
  1068.  
  1069.         The difference is : Multiple displaying is possible
  1070.         (SVL_DisplayGfxBuffer(), SVL_CloseDisplay(), SVL_DisplayGfxBuffer(),
  1071.          ... and so on).
  1072.  
  1073.         The SV_GfxBuffer still has to be freed the way it has been
  1074.         allocated : - (self-created)     : e.g. SVSUP_FreeGfxBuffer()
  1075.                     - SVL_GetGfxBuffer() : SVL_FreeHandle()
  1076.                     - SVL_DoOperation()  : SVL_FreeHandle()
  1077.  
  1078.  
  1079.    INPUT(S)
  1080.  
  1081.         handle - a valid handle
  1082.         buffer - a valid SV_GfxBuffer pointer
  1083.         future - always NULL yet
  1084.  
  1085.    RESULT
  1086.  
  1087.         NULL or an adequate SVERR-Errorcode.
  1088.  
  1089.    WARNING
  1090.  
  1091.         Prior to V10 it was not possible, to pass any "foreign"
  1092.         pointers to SV_GfxBuffers. This means, "buffer" also had
  1093.         to be the same pointer as the one returned by SVL_GetGfxBuffer(),
  1094.         otherwise the library would have claimed about a missing
  1095.         SVObject-Handle (which wasn't there and therefore not able to
  1096.         manage the display operation in its property of beeing the
  1097.         owner of the GfxBuffer)
  1098.  
  1099.         As with V10, you'll be abled to pass ANY SV_GfxBuffer to this
  1100.         function to get it displayed (you should use a new handle for
  1101.         any additional buffer).
  1102.         This results in a SVDriver-dependent display operation
  1103.         (the only exeception are non-picture Datatypes - if enabled -
  1104.          which will always be displayed without using the SVDrivers,
  1105.          because BOOPSI is needed. Since this is not enabled by default,
  1106.          you may not mind, but anyway: To bypass this, you'd have to
  1107.          use another handle and pass the Datatypes' GfxBuffer to
  1108.          to it, so that e.g. only the first picture of an ANIM would
  1109.          be taken out and displayed. Test it.)
  1110.  
  1111.    SINCE
  1112.  
  1113.         ... version 3 of the superview.library.
  1114.  
  1115.    SEE ALSO
  1116.  
  1117.         SVL_ReadGfxBuffer(), SVL_SuperWrite()
  1118.  
  1119. -----------------------------------------------------------------------------
  1120.    Functions added with Version 6 :
  1121. -----------------------------------------------------------------------------
  1122.  
  1123.    NAME
  1124.         SVL_GetSVObjectList
  1125.  
  1126.    SYNOPSIS
  1127.  
  1128.         ULONG SVL_GetSVObjectList(struct SVObjectInfo **listhead)
  1129.         D0    -$ae                A1
  1130.  
  1131.    FUNCTION
  1132.  
  1133.         Creates a simplified list of all SVObjects (SubTypes), which
  1134.         may be used for read-only purposes until it has been freed
  1135.         via SVL_FreeSVObjectList.
  1136.  
  1137.    INPUT(S)
  1138.  
  1139.         listhead - a pointer to a SVObjectInfo structure pointer
  1140.  
  1141.    RESULT
  1142.  
  1143.         NULL or an adequate SVERR-Errorcode.
  1144.  
  1145.    BUGS
  1146.  
  1147.         This functions was slightly buggy in V6 versions.
  1148.         The List was not chained right, so that only the last
  1149.         SubType of each SVObject was linked to the list and the rest
  1150.         went to Nirwana, so that there also was a (small) memory loss.
  1151.         This bug has been fixed in V7.
  1152.  
  1153.    SINCE
  1154.  
  1155.         ... version 6 of the superview.library. (request V7+)
  1156.  
  1157.    SEE ALSO
  1158.  
  1159.         SVL_FreeSVObjectList
  1160.  
  1161. -----------------------------------------------------------------------------
  1162.  
  1163.    NAME
  1164.         SVL_GetSVDriverList
  1165.  
  1166.    SYNOPSIS
  1167.  
  1168.         ULONG SVL_GetSVDriverList(struct SVDriverInfo **listhead)
  1169.         D0    -$b4                A1
  1170.  
  1171.    FUNCTION
  1172.  
  1173.         Creates a simplified list of all SVDrivers, which
  1174.         may be used for read-only purposes until it has been freed
  1175.         via SVL_FreeSVDriverList.
  1176.  
  1177.    INPUT(S)
  1178.  
  1179.         listhead - a pointer to a SVDriverInfo structure pointer
  1180.  
  1181.    RESULT
  1182.  
  1183.         NULL or an adequate SVERR-Errorcode.
  1184.  
  1185.    BUGS
  1186.  
  1187.         -
  1188.  
  1189.    SINCE
  1190.  
  1191.         ... version 6 of the superview.library.
  1192.  
  1193.    SEE ALSO
  1194.  
  1195.         SVL_FreeSVDriverList
  1196.  
  1197. -----------------------------------------------------------------------------
  1198.  
  1199.    NAME
  1200.         SVL_FreeSVObjectList
  1201.  
  1202.    SYNOPSIS
  1203.  
  1204.         ULONG SVL_FreeSVObjectList(struct SVObjectInfo *listhead)
  1205.         D0    -$ba                 A1
  1206.  
  1207.    FUNCTION
  1208.  
  1209.         Frees a list returned by SVL_GetSVObjectList.
  1210.  
  1211.         Pass the List-Header, not an entry !
  1212.  
  1213.    INPUT(S)
  1214.  
  1215.         listhead - a pointer to a SVObjectInfo structure
  1216.  
  1217.    RESULT
  1218.  
  1219.         NULL or an adequate SVERR-Errorcode.
  1220.  
  1221.    BUGS
  1222.  
  1223.         -
  1224.  
  1225.    SINCE
  1226.  
  1227.         ... version 6 of the superview.library.
  1228.  
  1229.    SEE ALSO
  1230.  
  1231.         SVL_GetSVObjectList
  1232.  
  1233. -----------------------------------------------------------------------------
  1234.  
  1235.    NAME
  1236.         SVL_FreeSVDriverList
  1237.  
  1238.    SYNOPSIS
  1239.  
  1240.         ULONG SVL_FreeSVDriverList(struct SVDriverInfo *listhead)
  1241.         D0    -$c0                 A1
  1242.  
  1243.    FUNCTION
  1244.  
  1245.         Frees a list returned by SVL_GetSVDriverList.
  1246.  
  1247.         Pass the List-Header, not an entry !
  1248.  
  1249.    INPUT(S)
  1250.  
  1251.         listhead - a pointer to a SVDriverInfo structure
  1252.  
  1253.    RESULT
  1254.  
  1255.         NULL or an adequate SVERR-Errorcode.
  1256.  
  1257.    BUGS
  1258.  
  1259.         -
  1260.  
  1261.    SINCE
  1262.  
  1263.         ... version 6 of the superview.library.
  1264.  
  1265.    SEE ALSO
  1266.  
  1267.         SVL_GetSVDriverList
  1268.  
  1269. -----------------------------------------------------------------------------
  1270.    Functions added with Version 7 :
  1271. -----------------------------------------------------------------------------
  1272.  
  1273.    NAME
  1274.         SVL_RemoveSVObject
  1275.  
  1276.    SYNOPSIS
  1277.  
  1278.         ULONG SVL_RemoveSVObject(struct SVO_ObjectNode *svo_node)
  1279.         D0    -$c6               A1
  1280.  
  1281.    FUNCTION
  1282.  
  1283.         Removes an SVObject from the internal List of SVObjects and tries
  1284.         to remove it from memory.
  1285.  
  1286.         This does only work, if not more than one programm is accessing
  1287.         superview.library and the SVObject.
  1288.  
  1289.         ***
  1290.         REMEMBER TO UPDATE YOUR PROGRAM'S INTERNAL SVOBJECT-LISTS
  1291.         AFTER SUCH AN ACTION !
  1292.         ***
  1293.  
  1294.    INPUT(S)
  1295.  
  1296.         svo_node - a pointer to a SVO_ObjectNode structure
  1297.  
  1298.    RESULT
  1299.  
  1300.         boolean value
  1301.  
  1302.    WARNING
  1303.  
  1304.         This function invalidates the internal SVObject-List of
  1305.         superview.library.
  1306.         Remember to update your personal copies of this list,
  1307.         before accessing any specific SVObjects again
  1308.         (e.g. for Write-Operations).
  1309.  
  1310.    BUGS
  1311.  
  1312.         No bugs known yet.
  1313.         But this function operates "deep in the system", so that
  1314.         there may occur interferences in very special situations
  1315.         (but usuallly should not).
  1316.  
  1317.    SINCE
  1318.  
  1319.         ... version 7 of the superview.library.
  1320.  
  1321.    SEE ALSO
  1322.  
  1323.         SVL_RemoveSVDriver
  1324.  
  1325. -----------------------------------------------------------------------------
  1326.  
  1327.    NAME
  1328.         SVL_RemoveSVDriver
  1329.  
  1330.    SYNOPSIS
  1331.  
  1332.         ULONG SVL_RemoveSVDriver(struct SVD_DriverNode *svd_node)
  1333.         D0    -$cc               A1
  1334.  
  1335.    FUNCTION
  1336.  
  1337.         Removes an SVDriver from the internal List of SVDrivers and tries
  1338.         to remove it from memory.
  1339.  
  1340.         This does only work, if not more than one programm is accessing
  1341.         superview.library and the SVDriver.
  1342.  
  1343.         ***
  1344.         REMEMBER TO UPDATE YOUR PROGRAM'S INTERNAL SVDRIVER-LISTS
  1345.         AFTER SUCH AN ACTION !
  1346.         ***
  1347.  
  1348.    INPUT(S)
  1349.  
  1350.         svd_node - a pointer to a SVD_DriverNode structure
  1351.  
  1352.    RESULT
  1353.  
  1354.         boolean value
  1355.  
  1356.    WARNING
  1357.  
  1358.         This function invalidates the internal SVDriver-List of
  1359.         superview.library.
  1360.         Remember to update your personal copies of this list,
  1361.         before accessing any specific SVDrivers again
  1362.         (e.g. for displaying graphics).
  1363.  
  1364.    BUGS
  1365.  
  1366.         No bugs known yet.
  1367.         But this function operates "deep in the system", so that
  1368.         there may occur interferences in very special situations
  1369.         (but usuallly should not).
  1370.  
  1371.    SINCE
  1372.  
  1373.         ... version 7 of the superview.library.
  1374.  
  1375.    SEE ALSO
  1376.  
  1377.         SVL_RemoveSVObject
  1378.  
  1379. -----------------------------------------------------------------------------
  1380.  
  1381.    NAME
  1382.         SVL_AddSVObject
  1383.  
  1384.    SYNOPSIS
  1385.  
  1386.         ULONG SVL_AddSVObject(UBYTE *name)
  1387.         D0    -$d2            A1
  1388.  
  1389.    FUNCTION
  1390.  
  1391.         Tries to open the specified SVObject (full AmigaDOS-Path) and
  1392.         attempts to add it to the internal Lists.
  1393.  
  1394.         ***
  1395.         REMEMBER TO UPDATE YOUR PROGRAM'S INTERNAL SVOBJECT-LISTS
  1396.         AFTER SUCH AN ACTION !
  1397.         ***
  1398.  
  1399.    INPUT(S)
  1400.  
  1401.         name - full AmigaDOS-Path of the SVObject to add to the lists
  1402.  
  1403.    RESULT
  1404.  
  1405.         boolean value
  1406.  
  1407.    WARNING
  1408.  
  1409.         This function invalidates the internal SVObject-List of
  1410.         superview.library.
  1411.         Remember to update your personal copies of this list,
  1412.         before accessing any specific SVObjects again
  1413.         (e.g. for Write-Operations).
  1414.  
  1415.         Secondly, it is not checked, whether the added Library is
  1416.         _really_ a SVObject.
  1417.         Adding other libraries may result in a damaged internal
  1418.         SVObject-List in superview.library.
  1419.  
  1420.    SINCE
  1421.  
  1422.         ... version 7 of the superview.library.
  1423.  
  1424.    SEE ALSO
  1425.  
  1426.         SVL_AddSVDriver
  1427.  
  1428. -----------------------------------------------------------------------------
  1429.  
  1430.    NAME
  1431.         SVL_AddSVDriver
  1432.  
  1433.    SYNOPSIS
  1434.  
  1435.         ULONG SVL_AddSVDriver(UBYTE *name)
  1436.         D0    -$d8            A1
  1437.  
  1438.    FUNCTION
  1439.  
  1440.         Tries to open the specified SVDriver (full AmigaDOS-Path) and
  1441.         attempts to add it to the internal Lists.
  1442.  
  1443.         ***
  1444.         REMEMBER TO UPDATE YOUR PROGRAM'S INTERNAL SVDRIVER-LISTS
  1445.         AFTER SUCH AN ACTION !
  1446.         ***
  1447.  
  1448.    INPUT(S)
  1449.  
  1450.         name - full AmigaDOS-Path of the SVDriver to add to the lists
  1451.  
  1452.    RESULT
  1453.  
  1454.         boolean value
  1455.  
  1456.    WARNING
  1457.  
  1458.         This function invalidates the internal SVDriver-List of
  1459.         superview.library.
  1460.         Remember to update your personal copies of this list,
  1461.         before accessing any specific SVDrivers again
  1462.         (e.g. for displaying graphics).
  1463.  
  1464.         Secondly, it is not checked, whether the added Library is
  1465.         _really_ a SVDriver.
  1466.         Adding other libraries may result in a damaged internal
  1467.         SVDriver-List in superview.library.
  1468.  
  1469.    SINCE
  1470.  
  1471.         ... version 7 of the superview.library.
  1472.  
  1473.    SEE ALSO
  1474.  
  1475.         SVL_AddSVObject
  1476.  
  1477. -----------------------------------------------------------------------------
  1478.    Functions added with Version 8 :
  1479. -----------------------------------------------------------------------------
  1480.  
  1481.    NAME
  1482.         SVL_GetFileType
  1483.  
  1484.    SYNOPSIS
  1485.  
  1486.         ULONG SVL_GetFileType(APTR handle, char *filename, ULONG *filetype)
  1487.         D0    -$de            A1           A2              A3
  1488.  
  1489.    FUNCTION
  1490.  
  1491.         Finds out superview-specific FileType-Code
  1492.         (redefined with every re-initialization of the Library) or
  1493.         SV_FILE_TYPE_UNKNOWN (== NULL == FALSE).
  1494.  
  1495.         Use the following call for a simple check :
  1496.  
  1497.         handle   = SVL_AllocHandle(N);
  1498.         sverr    = SVL_GetFileType(handle, filename, &filetype);
  1499.                    SVL_FreeHandle(handle);
  1500.  
  1501.         This handle should NOT be used for any further operations
  1502.         on the file (will be opened and checked twice but only
  1503.         closed once, etc).
  1504.         Initialization operations are allowed nevertheless
  1505.         (e.g. SVL_InitHandleAsClip() ).
  1506.  
  1507.         Note, that this function fills in FILETYPES, not SUBTYPES.
  1508.         For e.g. writing you must specify SUBTYPES
  1509.         (ILBM-0, ILBM-1 or GIF87, GIF89a).
  1510.  
  1511.         FILETYPES are only for short identification and do only
  1512.         specify the global file type (ILBM, GIF, PCX).
  1513.  
  1514.    INPUT(S)
  1515.  
  1516.         handle   - a valid handle
  1517.         filename - a valid AmigaDOS FilePath and -Name
  1518.         filetype - pointer to ULONG for SV_FILETYPE-Value
  1519.  
  1520.    RESULT
  1521.  
  1522.         NULL or an adequate SVERR-Errorcode.
  1523.  
  1524.    SINCE
  1525.  
  1526.         ... version 8 of the superview.library.
  1527.  
  1528.    SEE ALSO
  1529.  
  1530.         SVL_AllocHandle(), SVL_FreeHandle()
  1531.  
  1532. -----------------------------------------------------------------------------
  1533.    Functions added with Version 9-10 :
  1534. -----------------------------------------------------------------------------
  1535.  
  1536.    NAME
  1537.         SVL_DoOperation
  1538.  
  1539.    SYNOPSIS
  1540.  
  1541.         ULONG SVL_DoOperation(APTR handle, struct SV_GfxBuffer *source,
  1542.         D0    -$e4            A1           A2
  1543.  
  1544.                               struct SV_GfxBuffer **dest,
  1545.                               A3
  1546.  
  1547.                               struct SVOperatorNode *operator, APTR future);
  1548.                               D2                               D3
  1549.  
  1550.  
  1551.    FUNCTION
  1552.  
  1553.         handle   = SVL_AllocHandle(N);
  1554.         sverr    = SVL_DoOperation( ... );
  1555.                    SVL_FreeHandle(handle);
  1556.  
  1557.         This function allows to do any available operations (via SVOperators)
  1558.         on a given SV_GfxBuffer.
  1559.  
  1560.         The Source buffer is not touched this way, but a new buffer will
  1561.         be allocated instead.
  1562.         The pointer of the new buffer is returned by writing it to a given
  1563.         pointer variable or may be examined by calling SVL_GetGfxBuffer()
  1564.         also.
  1565.  
  1566.    INPUT(S)
  1567.  
  1568.         handle   - a valid handle
  1569.         source   - a SV_GfxBuffer to be used as "source"
  1570.         dest     - a pointer to a pointer for the "destination" SV_GfxBuffer
  1571.         operator - an SVOperator description, as found in the internal
  1572.                    list of SuperViewBase
  1573.         future   - always NULL yet
  1574.  
  1575.    RESULT
  1576.  
  1577.         NULL or an adequate SVERR-Errorcode.
  1578.  
  1579.    SINCE
  1580.  
  1581.         ... version 9 of the superview.library.
  1582.  
  1583.    SEE ALSO
  1584.  
  1585.         SVL_AllocHandle(), SVL_FreeHandle(), SVL_GetGfxBuffer()
  1586.  
  1587. -----------------------------------------------------------------------------
  1588.  
  1589.    NAME
  1590.         SVL_GetSVOperatorList
  1591.  
  1592.    SYNOPSIS
  1593.  
  1594.         ULONG SVL_GetSVOperatorList(struct SVOperatorInfo **listhead)
  1595.         D0    -$ea                  A1
  1596.  
  1597.    FUNCTION
  1598.  
  1599.         Creates a simplified list of all SVOperators, which
  1600.         may be used for read-only purposes until it has been freed
  1601.         via SVL_FreeSVOperatorList.
  1602.  
  1603.    INPUT(S)
  1604.  
  1605.         listhead - a pointer to a SVOperatorInfo structure pointer
  1606.  
  1607.    RESULT
  1608.  
  1609.         NULL or an adequate SVERR-Errorcode.
  1610.  
  1611.    SINCE
  1612.  
  1613.         ... version 9 of the superview.library.
  1614.  
  1615.    SEE ALSO
  1616.  
  1617.         SVL_FreeSVOperatorList
  1618.  
  1619. -----------------------------------------------------------------------------
  1620.  
  1621.    NAME
  1622.         SVL_FreeSVOperatorList
  1623.  
  1624.    SYNOPSIS
  1625.  
  1626.         ULONG SVL_FreeSVOperatorList(struct SVOperatorInfo *listhead)
  1627.         D0    -$f0                   A1
  1628.  
  1629.    FUNCTION
  1630.  
  1631.         Frees a list returned by SVL_GetSVOperatorList.
  1632.  
  1633.         Pass the List-Header, not an entry !
  1634.  
  1635.    INPUT(S)
  1636.  
  1637.         listhead - a pointer to a SVOperatorInfo structure
  1638.  
  1639.    RESULT
  1640.  
  1641.         NULL or an adequate SVERR-Errorcode.
  1642.  
  1643.    SINCE
  1644.  
  1645.         ... version 9 of the superview.library.
  1646.  
  1647.    SEE ALSO
  1648.  
  1649.         SVL_GetSVOperatorList
  1650.  
  1651. -----------------------------------------------------------------------------
  1652.  
  1653.    NAME
  1654.         SVL_RemoveSVOperator
  1655.  
  1656.    SYNOPSIS
  1657.  
  1658.         ULONG SVL_RemoveSVOperator(struct SVP_OperatorNode *svp_node)
  1659.         D0    -$f6                 A1
  1660.  
  1661.    FUNCTION
  1662.  
  1663.         Removes an SVOperator from the internal List of SVOperators and
  1664.         tries to remove it from memory.
  1665.  
  1666.         This does only work, if not more than one programm is accessing
  1667.         superview.library and the SVOperator.
  1668.  
  1669.         ***
  1670.         REMEMBER TO UPDATE YOUR PROGRAM'S INTERNAL SVOPERATOR-LISTS
  1671.         AFTER SUCH AN ACTION !
  1672.         ***
  1673.  
  1674.    INPUT(S)
  1675.  
  1676.         svp_node - a pointer to a SVP_OperatorNode structure
  1677.  
  1678.    RESULT
  1679.  
  1680.         boolean value
  1681.  
  1682.    WARNING
  1683.  
  1684.         This function invalidates the internal SVOperator-List of
  1685.         superview.library.
  1686.         Remember to update your personal copies of this list,
  1687.         before accessing any specific SVOperators again.
  1688.  
  1689.    BUGS
  1690.  
  1691.         No bugs known yet.
  1692.         But this function operates "deep in the system", so that
  1693.         there may occur interferences in very special situations
  1694.         (but usuallly should not).
  1695.  
  1696.    SINCE
  1697.  
  1698.         ... version 9 of the superview.library.
  1699.  
  1700.    SEE ALSO
  1701.  
  1702.         SVL_RemoveSVOperator
  1703.  
  1704. -----------------------------------------------------------------------------
  1705.  
  1706.    NAME
  1707.         SVL_AddSVOperator
  1708.  
  1709.    SYNOPSIS
  1710.  
  1711.         ULONG SVL_AddSVOperator(UBYTE *name)
  1712.         D0    -$fc              A1
  1713.  
  1714.    FUNCTION
  1715.  
  1716.         Tries to open the specified SVOperator (full AmigaDOS-Path) and
  1717.         attempts to add it to the internal Lists.
  1718.  
  1719.         ***
  1720.         REMEMBER TO UPDATE YOUR PROGRAM'S INTERNAL SVOPERATOR-LISTS
  1721.         AFTER SUCH AN ACTION !
  1722.         ***
  1723.  
  1724.    INPUT(S)
  1725.  
  1726.         name - full AmigaDOS-Path of the SVObject to add to the lists
  1727.  
  1728.    RESULT
  1729.  
  1730.         boolean value
  1731.  
  1732.    WARNING
  1733.  
  1734.         This function invalidates the internal SVOperator-List of
  1735.         superview.library.
  1736.         Remember to update your personal copies of this list,
  1737.         before accessing any specific SVOperators again.
  1738.  
  1739.         Secondly, it is not checked, whether the added Library is
  1740.         _really_ a SVOperator.
  1741.         Adding other libraries may result in a damaged internal
  1742.         SVOperator-List in superview.library.
  1743.  
  1744.    SINCE
  1745.  
  1746.         ... version 9 of the superview.library.
  1747.  
  1748.    SEE ALSO
  1749.  
  1750.         SVL_AddSVOperator
  1751.  
  1752. -----------------------------------------------------------------------------
  1753.    Functions added with Version 11 :
  1754. -----------------------------------------------------------------------------
  1755.  
  1756.    NAME
  1757.         SVL_GetModeList
  1758.  
  1759.    SYNOPSIS
  1760.  
  1761.         ULONG SVL_GetModeList(APTR handle, struct SVModeList **modelist,
  1762.         D0    -$102           A1           A2
  1763.  
  1764.                               struct SV_GfxBuffer *refbuf, ULONG future)
  1765.                               A3                           A4
  1766.    FUNCTION
  1767.  
  1768.         (Re-)opens the standard SVDriver and tries to get an appropriate
  1769.         list of possible ScreenModes for this GfxBuffer/SVDriver
  1770.         combination.
  1771.  
  1772.         If NULL is specified for the SV_GfxBuffer pointer, any possible
  1773.         ScreenModes for this SVDriver will be returned.
  1774.  
  1775.  
  1776.         Note: This function makes use of the enhanced SVDriver V2
  1777.               specification. For V1 SVDrivers you will just
  1778.               get "SVERR_VERSION_CONFLICT".
  1779.  
  1780.  
  1781.         For a quick check on any SVDriver's capabilities you may also
  1782.         take a look into the SVD_DriverNode structure, which simply
  1783.         contains the maximum values for width, height and depth
  1784.         (or 0xFFFFFFFF).
  1785.  
  1786.    INPUT(S)
  1787.  
  1788.         handle   - a valid handle
  1789.         modelist - a pointer to a SVModeList pointer
  1790.         refbuf   - a SV_GfxBuffer as "ScreenMode reference"
  1791.         future   - always NULL yet
  1792.  
  1793.    RESULT
  1794.  
  1795.         NULL or an adequate SVERR-Errorcode.
  1796.  
  1797.    WARNING
  1798.  
  1799.         * This function does NOT interpret any internal GfxBuffer pointers.
  1800.           It only checks the given "refbuf" (if not NULL).
  1801.  
  1802.         * This function _may_ cause a currently opened display, which is
  1803.           attached to this handle, to be closed (if GfxBuffer-dependent
  1804.           display is used), because it frees and (re-)initializes any
  1805.           currently used internal SVDriver handle to be able to react on
  1806.           any SVDriver preferences changes (new SVDriver might have been
  1807.           selected in the meantime).
  1808.  
  1809.           So your application should better call SVL_CloseDisplay()
  1810.           before calling this function to allow a smart clean-up (_always_).
  1811.  
  1812.           Another possibility would be to just use a separate handle
  1813.           for doing this operation (that's always the safer way and
  1814.           saves memory, because the ScreenModeList might be delocated
  1815.           sooner, then).
  1816.  
  1817.           This problem might be solved when - if ever - local
  1818.           (handle-related) SVDriver settings might be supported by the
  1819.           library.
  1820.  
  1821.    SINCE
  1822.  
  1823.         ... version 11 of the superview.library.
  1824.  
  1825.    SEE ALSO
  1826.  
  1827.         SVL_DisplayGfxBuffer, SVL_CloseDisplay
  1828.  
  1829. -----------------------------------------------------------------------------
  1830.  
  1831.