All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.royale.swf.ISWF Maven / Gradle / Ivy

The newest version!
/*
 *
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You under the Apache License, Version 2.0
 *  (the "License"); you may not use this file except in compliance with
 *  the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 */

package org.apache.royale.swf;

import org.apache.royale.swf.tags.EnableDebugger2Tag;
import org.apache.royale.swf.tags.EnableTelemetryTag;
import org.apache.royale.swf.tags.ProductInfoTag;
import org.apache.royale.swf.tags.ScriptLimitsTag;
import org.apache.royale.swf.types.RGB;
import org.apache.royale.swf.types.Rect;

/**
 * SWF model interface. The properties include fields in SWF header,
 * {@code FileAttributes} tag and optionally {@code Metadata} tag.
 */
public interface ISWF
{
    /**
     * Get SWF file version.
     * 
     * @return version number.
     */
    int getVersion();

    /**
     * Set SWF version.
     * 
     * @param version SWF version
     */
    void setVersion(int version);

    /**
     * Get frame delay in 8.8 fixed number of frames per second.
     * 
     * @return frame delay.
     */
    float getFrameRate();

    /**
     * Set frame rate.
     * 
     * @param frameRate frame per second
     */
    void setFrameRate(float frameRate);

    /**
     * Get SWF frame size in Twips.
     * 
     * @return frame size
     */
    Rect getFrameSize();

    /**
     * Set frame size.
     * 
     * @param rect frame size
     */
    void setFrameSize(Rect rect);

    /**
     * Get number of frames.
     * 
     * @return frame count.
     */
    int getFrameCount();

    // Frame operations

    /**
     * Add a frame.
     * 
     * @param frame SWF frame.
     */
    void addFrame(SWFFrame frame);

    /**
     * Get frame by index.
     * 
     * @param index frame index.
     * @return frame
     */
    SWFFrame getFrameAt(int index);

    // Properties in managed tags

    /**
     * Get SWF movie background color.
     * 
     * @return color
     */
    RGB getBackgroundColor();

    /**
     * Set SWF movie background color.
     * 
     * @param color color in RGB
     */
    void setBackgroundColor(RGB color);

    /**
     * Get the QName of the top level class.
     * 
     * @return name of top level class.
     */
    String getTopLevelClass();

    /**
     * Set root class name.
     * 
     * @param value root class name
     */
    void setTopLevelClass(String value);

    /**
     * Get the Metadata text. This is a Metadata property.
     * 

* The Metadata tag is an optional tag to describe the SWF file to an * external process. The tag embeds XML metadata in the SWF file so that, * for example, a search engine can locate this tag, access a title for the * SWF file, and display that title in search results. * * @return metadata XML text; null if Metadata tag doesn't exit. */ String getMetadata(); /** * Set the Metadata text. This is a Metadata property. *

* The Metadata tag is an optional tag to describe the SWF file to an * external process. The tag embeds XML metadata in the SWF file so that, * for example, a search engine can locate this tag, access a title for the * SWF file, and display that title in search results. *

* Setting a non-null value will also set FileAttributes.hasMetadata to * true. * * @param value Metadata XML string; null value will remove the Metadata * tag on the SWF. */ void setMetadata(String value); /** * Check if the SWF has Metadata tag. This is a FileAttributes property. * * @return true if the SWF has Metadata tag */ boolean hasMetadata(); /** * Check if the SWF uses ActionScript3. This is a FileAttributes property. * * @return true if the SWF uses ActionScript3 */ boolean getUseAS3(); /** * Set whether the SWF uses ActionScript3. This is a FileAttributes * property. * * @param value true if the SWF uses ActionScript3 */ void setUseAS3(boolean value); /** * Check if the SWF uses direct Blit. This is a FileAttributes property. * * @return true if the SWF uses direct Blit. */ boolean getUseDirectBlit(); /** * Set whether the SWF uses direct Blit. This is a FileAttributes property. * * @param value true if the SWF uses direct Blit. */ void setUseDirectBlit(boolean value); /** * Check if the SWF uses GPU. This is a FileAttributes property. * * @return true if the SWF uses GPU */ boolean getUseGPU(); /** * Set whether the SWF uses GPU. This is a FileAttributes property. * * @param value true if the SWF uses GPU */ void setUseGPU(boolean value); /** * Set whether the SWF uses network. This is a FileAttributes property. * * @return true if the SWF uses network. */ boolean getUseNetwork(); /** * Check if the SWF uses network. This is a FileAttributes property. * * @param value true if the SWF uses network. */ void setUseNetwork(boolean value); /** * Delete a SWF frame. * * @param index frame index */ void deleteFrame(int index); /** * @return {@code EnableDebugger2} tag or null. */ EnableDebugger2Tag getEnableDebugger2(); /** * Set a script limit values. * * @param maxRecursionDepth max recursion depth * @param scriptTimeoutSeconds script timeout seconds */ void setScriptLimits(int maxRecursionDepth, int scriptTimeoutSeconds); /** * Get the managed {@code ScriptLimits} tag. * * @return {@code ScriptLimits} tag in this SWF, or {@code null} if * {@link #setScriptLimits(int, int)} hasn't be called. */ ScriptLimitsTag getScriptLimits(); /** * Get the {@code ProductInfoTag} tag. * * @return {@code ProductInfoTag} or null if there is no product info * associated with the SWF. */ ProductInfoTag getProductInfo(); /** * Set the product info tag associated with the SWF. * * @param tag the ProductInfoTag, may be null. */ void setProductInfo(ProductInfoTag tag); /** * Get the {@code EnableTelemetryTag} tag. * * @return {@code EnableTelemetryTag} or null if there is no enable telemetry * information associated with the SWF. */ EnableTelemetryTag getEnableTelemetry(); /** * Set the enable telemetry tag associated with the SWF. * * @param tag the EnableTelemetryTag, may be null. */ void setEnableTelemetry(EnableTelemetryTag tag); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy