/** * $URL$ * * $LastChangedBy$ - $LastChangedDate$ */ package com.gpac.Osmo4; /** * Interface to implement by Java Objects to listen for callbacks from GPAC native code * * @version $Revision$ * */ public interface GpacCallback { /** * GPAC Error codes * * @version $Revision$ * */ public enum GF_Err { /** Message from any scripting engine used in the presentation (ECMAScript, MPEG-J, ...) (Info). */ GF_SCRIPT_INFO(3), /** * Indicates an data frame has several AU packed (not MPEG-4 compliant). This is used by decoders to force * multiple decoding of the same data frame (Info). */ GF_PACKED_FRAMES(2), /** Indicates the end of a stream or of a file (Info). */ GF_EOS(1), /* * ! \n\n */ /** Operation success (no error). */ GF_OK(0), /** \n */ /** One of the input parameter is not correct or cannot be used in the current operating mode of the framework. */ GF_BAD_PARAM(-1), /** Memory allocation failure. */ GF_OUT_OF_MEM(-2), /** Input/Output failure (disk access, system call failures) */ GF_IO_ERR(-3), /** The desired feature or operation is not supported by the framework */ GF_NOT_SUPPORTED(-4), /** Input data has been corrupted */ GF_CORRUPTED_DATA(-5), /** A modification was attempted on a scene node which could not be found */ GF_SG_UNKNOWN_NODE(-6), /** The PROTO node interface does not match the nodes using it */ GF_SG_INVALID_PROTO(-7), /** An error occured in the scripting engine */ GF_SCRIPT_ERROR(-8), /** * Buffer is too small to contain decoded data. Decoders shall use this error whenever they need to resize their * output memory buffers */ GF_BUFFER_TOO_SMALL(-9), /** Bitstream is not compliant to the specfication it refers to */ GF_NON_COMPLIANT_BITSTREAM(-10), /** No decoders could be found to handle the desired media type */ GF_CODEC_NOT_FOUND(-11), /** The URL is not properly formatted or cannot be found */ GF_URL_ERROR(-12), /** An service error has occured at the local side */ GF_SERVICE_ERROR(-13), /** A service error has occured at the remote (server) side */ GF_REMOTE_SERVICE_ERROR(-14), /** The desired stream could not be found in the service */ GF_STREAM_NOT_FOUND(-15), /** The IsoMedia file is not a valid one */ GF_ISOM_INVALID_FILE(-20), /** The IsoMedia file is not complete. Either the file is being downloaded, or it has been truncated */ GF_ISOM_INCOMPLETE_FILE(-21), /** The media in this IsoMedia track is not valid (usually due to a broken stream description) */ GF_ISOM_INVALID_MEDIA(-22), /** The requested operation cannot happen in the current opening mode of the IsoMedia file */ GF_ISOM_INVALID_MODE(-23), /** This IsoMedia track refers to media outside the file in an unknown way */ GF_ISOM_UNKNOWN_DATA_REF(-24), /** An invalid MPEG-4 Object Descriptor was found */ GF_ODF_INVALID_DESCRIPTOR(-30), /** An MPEG-4 Object Descriptor was found or added to a forbidden descriptor */ GF_ODF_FORBIDDEN_DESCRIPTOR(-31), /** An invalid MPEG-4 BIFS command was detected */ GF_ODF_INVALID_COMMAND(-32), /** The scene has been encoded using an unknown BIFS version */ GF_BIFS_UNKNOWN_VERSION(-33), /** The remote IP address could not be solved */ GF_IP_ADDRESS_NOT_FOUND(-40), /** The connection to the remote peer has failed */ GF_IP_CONNECTION_FAILURE(-41), /** The network operation has failed */ GF_IP_NETWORK_FAILURE(-42), /** The network connection has been closed */ GF_IP_CONNECTION_CLOSED(-43), /** The network operation has failed because no data is available */ GF_IP_NETWORK_EMPTY(-44), /** The network operation has been discarded because it would be a blocking one */ GF_IP_SOCK_WOULD_BLOCK(-45), /** * UDP connection did not receive any data at all. Signaled by client services to reconfigure network if * possible */ GF_IP_UDP_TIMEOUT(-46), /** Authentication with the remote host has failed */ GF_AUTHENTICATION_FAILURE(-50), /** Script not ready for playback */ GF_SCRIPT_NOT_READY(-51), /** * Unknown GPAC Error code */ JAVA_UNKNOWN_ERROR(-100); int value; GF_Err(int x) { this.value = x; } /** * Get a GPAC Error code from its value * * @param status The int status corresponding to the error * @return A {@link GF_Err} object */ public static GF_Err getError(int status) { for (GF_Err x : values()) { if (x.value == status) return x; } return JAVA_UNKNOWN_ERROR; } } /** * Mapping between GPAC Log Modules and Java symbols * * @version $Revision$ * */ public enum GF_Log_Module implements Comparable<GF_Log_Module> { /** Log message from the core library (init, threads, network calls, etc) */ GF_LOG_CORE(0), /** Log message from a raw media parser (BIFS, LASeR, A/V formats) */ GF_LOG_CODING(1), /** Log message from a bitstream parser (IsoMedia, MPEG-2 TS, OGG, ...) */ GF_LOG_CONTAINER(2), /** Log message from the network/service stack (messages & co) */ GF_LOG_NETWORK(3), /** Log message from the RTP/RTCP stack (TS info) and packet structure & hinting (debug) */ GF_LOG_RTP(4), /** Log message from authoring subsystem (file manip, import/export) */ GF_LOG_AUTHOR(5), /** Log message from the sync layer of the terminal */ GF_LOG_SYNC(6), /** Log message from a codec */ GF_LOG_CODEC(7), /** Log message from any XML parser (context loading, etc) */ GF_LOG_PARSER(8), /** Log message from the terminal/compositor, indicating media object state */ GF_LOG_MEDIA(9), /** Log message from the scene graph/scene manager (handling of nodes and attribute modif, DOM core) */ GF_LOG_SCENE(10), /** Log message from the scripting engine */ GF_LOG_SCRIPT(11), /** Log message from event handling */ GF_LOG_INTERACT(12), /** Log message from compositor */ GF_LOG_COMPOSE(13), /** Log for video object cache */ GF_LOG_CACHE(14), /** Log message from multimedia I/O devices (audio/video input/output, ...) */ GF_LOG_MMIO(15), /** Log for runtime info (times, memory, CPU usage) */ GF_LOG_RTI(16), /** Log for SMIL timing and animation */ GF_LOG_SMIL(17), /** Log for memory tracker */ GF_LOG_MEMORY(18), /** Log for audio compositor */ GF_LOG_AUDIO(19), /** generic Log for modules */ GF_LOG_MODULE(20), /** * Log for GPAC mutexes and threads (Very verbose at DEBUG) * */ GF_LOG_MUTEX(21), /*! Log for threads and condition */ GF_LOG_CONDITION(22), /*! Log for all HTTP streaming */ GF_LOG_DASH(23), /*! Log for all messages coming from GF_Terminal or script alert()*/ GF_LOG_CONSOLE(24), /*! Log for all messages coming the application, not used by libgpac or the modules*/ GF_LOG_APP(25), /*! Log for all messages coming from the scheduler */ GF_LOG_SCHEDULER(26), /** * Unknown Log subsystem */ GF_LOG_UNKNOWN(30); int value; /** * Private Constructor */ private GF_Log_Module(int x) { this.value = x; } /** * Finds a module from its module_code * * @param module_code * @return The Module found (never null) */ public static GF_Log_Module getModule(int module_code) { for (GF_Log_Module x : values()) { if (x.value == module_code) return x; } return GF_LOG_UNKNOWN; } } /** * Display a message * * @param message * @param title * @param errorCode */ public void displayMessage(String message, String title, int errorCode); /** * Called when setup log file * * @param path */ public void setLogFile(String path); /** * Called when logging * * @param level * @param module * @param message */ public void onLog(int level, int module, String message); /** * Called when progress is set * * @param msg * @param done * @param total */ public void onProgress(String msg, int done, int total); /** * Called when GPAC is ready */ public void onGPACReady(); /** * Called when GPAC initialization fails * * @param e */ public void onGPACError(Throwable e); // /** // * Returns UserName:Password for given site // * // * @param siteURL The URL of site requiring authorization // * @param userName The User Name (may be null if never set) // * @param password The password (may be null if never set) // * @return A String formated as username:password // */ // public String onGPACAuthorization(String siteURL, String userName, String password); /** * Set the new caption for the application * * @param newCaption The new caption to set for application */ public void setCaption(String newCaption); /** * Show the virtual keyboard * * @param showKeyboard */ public void showKeyboard(boolean showKeyboard); /** * Toggle Sensors on/off * * @param active sensor (true/false) */ public void sensorSwitch(boolean active); }