AppData: (shared singleton class)
    bool isIPhone;
    NSMutableArray* galleryCellsInfo; //Array of GalleryCellInfo

GalleryCellInfo: NSObject
    UIImage *thumbnail;
    int duration;
    NSString* title;
    NSDate* date;

//-----------------------------------------------------------------------------------------------

VideoInfo: NSObject
    NSURL* videoURL; //video URL pointing to the video file saved to the documents folder
    AVAsset *asset;
    UIImage *thumbnail;
    NSString *thumbnailPath; //path to the thumbnail file
    float duration; //duration in seconds

//-----------------------------------------------------------------------------------------------

EffectsLibrary: NSMutableDictionary* (shared singleton class)
    NSMutableArray* soundEffects; //array of NSMutableDictionary representing a sound effect
    NSMutableArray* imageEffects; //array of NSMutableDictionary representing an image effect

SoundEffect: NSMutableDictionary*
    NSString* name; //name or title of the sound effect
    NSString* category; //category
    NSString* fileName; //name of the file i.e. "beep" //This is also the sound id
    NSString* fileExtension; //extension of the file i.e. "mp3"
    float duration; //It is initialized the first time SoundEffectsViewController is loaded.

ImageEffect: NSMutableDictionary*
    NSString* name; //name or title of the image effect
    NSString* category; //category
    NSString* fileName; //name of the file i.e. "pow" //This is also the image id
    NSString* fileExtension; //extension of the file i.e. "png"
    float width;
    float height;

//-----------------------------------------------------------------------------------------------

Projects:  NSMutableDictionary* (shared singleton class)
    NSMutableArray* projects; //array of NSMutableDictionary representing a project
    //Default Project Settings --------------
    int resolution; //0-720.0f, 1-1080.0f, 2-2160.0f
    int aspectRatio; // 0-1:1 Square, 1-4:3, 2-16:9, 3-2:1
    int orientation; // 0-Landscape, 1-Portrait
    float defaultPhotoSlidesDuration; // in seconds
    int defaultTransition; // 0-none, 1-fade in/fade out, 2-Crossfade
    int defautlCropOption: // 0-Fill screen, 1-Fit screen;
    int defaultBackColor; // 0-Black, 1-White
    //-------------------------------

Project: NSMutableDictionary*
    NSString* thumbnailPath; //path to the thumbnail saved to the documents folder
    float duration; //duration in seconds
    NSString* mergedVideoPath; //path to the merged video saved to the documents folder
    bool isSquare; //false by default
    float width; //project video width
    float height; //project video height
    NSMutableArray* effects; //array of NSMutableDictionary representing an effect
    NSString* description;
    NSString* title;
    NSDate* date;
    float defaultPhotoDuration;
    float defaultBackColorR;
    float defaultBackColorG;
    float defaultBackColorB;

Effect: NSMutableDictionary*
    NSString* type; //SONG, SOUND, VOICE, IMAGE, TEXT, VIDEO, PHOTO, VIDEO_ON_TOP
    float position; //in seconds
    float duration; //in seconds
    //--------For VIDEO/PHOTO/VIDEO_ON_TOP/VIDEO_AUDIO effect ---------------
    NSString* videoPath; //path to the original video saved to the documents folder
    NSString *videoThumbnailPath; //path to the thumbnail file
    float videoDuration; //in seconds
    float videoWidth;
    float videoHeight;
    float videoTrimPosition; //in seconds
    float videoTrimDuration; //in seconds
    bool videoMuteAudio; //mute video audio
    float videoVolume; //from 0.0f to 1.0f
    bool videoMuteVideoAudio; //mute main video audio while playing video. FOR VIDEO_ON_TOP and VIDEO_AUDIO only
    int speed; // -3 -2 -1 0 1 2 3
            // 0 - original speed
            // 1 - 2x speed
            // 2 - 3x speed
            // 3 - 4x speed
            // -1 - 1/2 speed
            // -2 - 1/3 speed
            // -3 - 1/4 speed
    bool reverse; //play in reverse
    bool fadeIn;
    bool fadeOut;
    bool crossFade;
    float fadeInDuration;
    float fadeOutDuration;
    NSString* videoReversePath; //path to the original video in reverse saved to the documents folder
    NSMutableArray* videoBlurVideos; //array of blur videos if there is any blur effect on this video.
    float cropX; //crop rectagle origin x
    float cropY; //crop rectangle origin y
    float cropWidth; //crop rectangle width
    float cropHeight; //crop rectangle height
    float backColorR; // red/255.0f
    float backColorG; // green/255.0f
    float backColorB; // blue/255.0f
    NSString* originalPhotoPath; //for PHOTO effect only. Path to the original photo saved to the documents folder
    float originalPhotoWidth; //for PHOTO effect only. Width of the original photo
    float originalPhotoHeight; //for PHOTO effect only. Height of the original photo
    float kbStartX; //for PHOTO effect only. Ken burns effect start rectagle origin x
    float kbStartY; //for PHOTO effect only. Ken burns effect start rectangle origin y
    float kbStartWidth; //for PHOTO effect only. Ken burns effect start rectangle width
    float kbStartHeight; //for PHOTO effect only. Ken burns effect start rectangle height
    float kbEndX; //for PHOTO effect only. Ken burns effect end rectagle origin x
    float kbEndY; //for PHOTO effect only. Ken burns effect end rectangle origin y
    float kbEndWidth; //for PHOTO effect only. Ken burns effect end rectangle width
    float kbEndHeight; //for PHOTO effect only. Ken burns effect end rectangle height
    //---------------------------------------------
    //--------For SONG effect ----------------
    NSURL* songURL; //URL pointing to the song in the iPod library
    NSString* songFilePath; //path to the song file. Used only when song created from Files
    NSString* songAudioWaveImagePath; //path to the song audio wave image file. It can be nil if it cannot be created.
    NSString* songName;
    NSString* songImagePath; //path to the song image file saved to the documents folder
    float songDuration; //in seconds
    float songTrimPosition; //in seconds
    float songTrimDuration; //in seconds
    bool songMuteVideoAudio; //mute video audio while playing song
    float songVolume; //from 0.0f to 1.0f
    bool fadeIn;
    bool fadeOut;
    //----------------------------------------
    //--------For VOICE effect ----------------
    NSString* voiceFilePath; //path to the voice file in the documents folder library
    float voiceDuration; //in seconds
    float voiceTrimPosition; //in seconds
    float voiceTrimDuration; //in seconds
    bool voiceMuteVideoAudio; //mute video audio while playing voice
    float voiceVolume; //from 0.0f to 1.0f
    bool fadeIn;
    bool fadeOut;
    //----------------------------------------
    //--------For SOUND effect ----------------
    NSString* soundId; //id of the sound effect from the sound effects library. 
                        //It is the sound effect file name
    float soundDuration; //in seconds
    float soundTrimPosition; //in seconds
    float soundTrimDuration; //in seconds
    bool soundMuteVideoAudio; //mute video audio while playing sound
    float soundVolume; //from 0.0f to 1.0f
    bool fadeIn;
    bool fadeOut;
    //----------------------------------------
    //--------For TEXT effect ----------------
    NSString* text;
    int textAlign; //0-left, 1-center 2-right
    NSString* textFontName; //font name
    int textFontSize;
    float textFontColorR; // red/255.0f
    float textFontColorG; // green/255.0f
    float textFontColorB; // blue/255.0f
    float textBackgroundColorR; // red/255.0f -1 if not used, this property does not exist in old projects.
    float textBackgroundColorG; // green/255.0f -1 if not used, this property does not exist in old projects.
    float textBackgroundColorB; // blue/255.0f -1 if not used, this property does not exist in old projects.
    float textShadowColorR; // red/255.0f -1 if not used, this property does not exist in old projects.
    float textShadowColorG; // green/255.0f -1 if not used, this property does not exist in old projects.
    float textShadowColorB; // blue/255.0f -1 if not used, this property does not exist in old projects.
    float textPositionX; //position in proportion to the width of the video (value is a percent)
    float textPositionY; //position in proportion to the height of the video (value is a percent)
    float textWidth; //width in proportion to the width of the video (value is a percent)
    float textHeight; //height in proportion to the height of the video (value is a percent)
    int transitionIn; //0-none 1-fade 2-Wipe LR 3-Wipe RL 4-Wipe BT 5-Wipe TB 6-Scale 7-Scale Big 8-Move LR 9-Move RL 10-Move BT 11-Move TB 12-Drop 13-Wipe CH 14-Wipe CV
    int transitionOut;
    float transitionDuration; //in seconds, default is 0.75s
    NSString* textImagePath; //path to the text image file saved to the documents folder
    //----------------------------------------
    //--------For IMAGE effect ----------------
    NSString* imageId; //id of the image from the image library.
                        //It is the image file name
    bool flipH;
    bool flipV;
    float imagePositionX; //position in proportion to the width of the video (value is a percent)
    float imagePositionY; //position in proportion to the height of the video (value is a percent)
    float imageWidth; //width in proportion to the width of the video (value is a percent)
    float imageHeight; //height in proportion to the height of the video (value is a percent)
    int transitionIn; //0-none 1-fade 2-Wipe LR 3-Wipe RL 4-Wipe BT 5-Wipe TB 6-Scale 7-Scale Big 8-Move LR 9-Move RL 10-Move BT 11-Move TB 12-Drop 13-Wipe CH 14-Wipe CV
    int transitionOut;
    float transitionDuration; //in seconds, default is 0.75s
    NSString* imagePath; //path to the image file saved to the documents folder
    NSString* originalImagePath; //path to the original image file saved to the documents folder (selected from camera roll)
    //----------------------------------------

BlurVideo: NSMutableDictionary*
    float position; //in seconds //this is a position from the start of its video
    float duration; //in seconds
    NSString* videoPath; //path to the blur video saved to the documents folder


//-----------------------------------------------------------------------------------------------
