FreeburnDefs.h
上传用户:cnxinhai
上传日期:2013-08-06
资源大小:265k
文件大小:8k
- /* Definitions of macros used throughout FreeBurn
- *
- * Copyright (C) 2001, 2002 Adam Schlag
- */
- /*
- * FreeBurn Software License
- * (based on the Apache Software License)
- *
- * Version 1.1
- *
- * Copyright (c) 2001, 2002 The FreeBurn Project. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. The end-user documentation included with the redistribution, if any, must
- * include the following acknowledgment:
- *
- * "This product includes software developed by the FreeBurn
- * Project (http://freeburn.sourceforge.net/)."
- *
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "FreeBurn" and "FreeBurn Project" must not be
- * used to endorse or promote products derived from this software
- * without prior written permission. For written permission, please
- * contact aschlag@users.sourceforge.net.
- *
- * 5. Products derived from this software may not be called "FreeBurn",
- * nor may "FreeBurn" appear in their name, without prior written
- * permission of the FreeBurn Project.
- *
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE FREEBURN PROJECT OR ITS
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the FreeBurn Project. For more
- * information on the FreeBurn Project and FreeBurn, please see
- * <http://freeburn.sourceforge.net/>.
- *
- * This software is distributed with software that is released under the GNU
- * General Public License (GPL). You can find the terms of this license in the
- * file GPL.txt distributed in this package. You can find information on the
- * software distributed with this package in the file PROGRAMS.txt.
- */
- #ifndef FREEBURN_DEFS_H
- #define FREEBURN_DEFS_H
- // NULL definition just in case it's needed
- #ifndef NULL
- #define NULL 0
- #endif
- // Constant name of the application (i.e. FreeBurn)
- #define FB_APP_NAME "FreeBurn"
- #define FB_VENDOR_NAME "FreeBurn Project"
- #define FB_MAJOR_VERSION "0"
- #define FB_MINOR_VERSION "10"
- // Default Height and Width of the application window
- #define FB_HEIGHT 400
- #define FB_WIDTH 600
- #define FB_XPOS 75
- #define FB_YPOS 75
- // Macros for the strings representing the different program themes
- #define DEFAULT_THEME 0
- #define GNOME_THEME 1
- #define KDE_THEME 2
- #define XP_THEME 3
- // Macros for the names of external programs/directories used in the program
- #define DEFAULT_PROGRAM_DIRECTORY ".\programs"
- #define CDRECORD_WINDOWS_NAME "\cdrecord"
- #define CDRECORD_UNIX_NAME "/cdrecord"
- #define SH_WINDOWS_NAME "\sh"
- #define SH_UNIX_NAME "/sh"
- #define MKISOFS_WINDOWS_NAME "\mkisofs"
- #define MKISOFS_UNIX_NAME "/mkisofs"
- #define CDRDAO_WINDOWS_NAME "\cdrdao"
- #define CDRDAO_UNIX_NAME "/cdrdao"
- #define EXE_EXTENSION ".exe"
- // Macro representing different strings
- #define EMPTY_STRING ""
- #define QUOTE """
- #define SPACE " "
- #define SHELL_COMMAND " -c "
- #define COMMAND_BREAK "\n"
- #define NEW_LINE "n"
- // Macro representing the font faces used in the program
- #define FIXED_FONT "Courier New"
- #define HELP_FONT "Verdana"
- #define SANS_SERIF "MS Sans Serif"
- // Macros for string lengths in different areas of the program
- #define CHAR_BUFFER_SIZE 1024
- #define CONSOLE_LINE_SIZE 80
- // The following macros are of particular use with the CFreeburnDisc class, but are
- // needed in other places, so are put here.
- // the maximum blocks on a typical (74/650) CD-R
- #define MAX_CD_SPACE_BLOCKS 333000
- // the maximum blocks on a large (80/700) CD-R
- #define MAX_CD_LARGE_SPACE_BLOCKS 360000
- // the maximum space in bytes on a 650 MB (74/650) CD-R
- #define MAX_CD_SPACE_BYTES 681984000
- // the maximum space in bytes on a 700 MB (80/700) CD-R
- #define MAX_CD_LARGE_SPACE_BYTES 737280000
- // the maximum space in minutes on a 74 minute (74/650) CD-R
- #define MAX_CD_SPACE_MINUTES 74
- // the maximum space in minutes on a 80 minute (80/700) CD-R
- #define MAX_CD_LARGE_SPACE_MINUTES 80
- // the maximum space in seconds on a 74 minute (74/650) CD-R
- #define MAX_CD_SPACE_SECONDS 4440
- // the maximum space in seconds on a 80 minute (80/700) CD-R
- #define MAX_CD_LARGE_SPACE_SECONDS 4800
- // the number of bytes in one block
- #define BYTES_IN_ONE_BLOCK 2048
- // the number of blocks in one second
- #define BLOCKS_IN_ONE_SECOND 75
- // the number of blocks in one minute
- #define BLOCKS_IN_ONE_MINUTE 4500
- // defines for the disc size types
- #define _74_650_DISC 0
- #define _80_700_DISC 1
- // these define the kind of disc types that can be set
- // CD_DA stands for an audio disc, CD_ROM stands for data,
- // CD_MIXED_MODE stands for audio and data, and CDROM_XA
- // is for discs that will contain some kind of XA track
- #define CD_DA 0
- #define CD_ROM 1
- #define CDROM_XA 2
- // defines for CD Text languages that are known
- // The num defines the code that will be used, the
- // string is the string that the code can be
- // identified by.
- #define CD_TEXT_ENGLISH_NUM 9
- #define CD_TEXT_ENGLISH_STR "EN"
- #define CD_TEXT_ENG_LONGSTR "English"
- #define CD_TEXT_LANG_ARRAY_LENGTH 8
- // define for the exact length a catalog string must be
- #define CD_CATALOG_STRING_LENGTH 13
- // define the maximum & minimum number of tracks on a cd (which is always 99 & 1)
- #define MAX_CD_TRACKS 99
- #define MIN_CD_TRACKS 1
- // The following macros are of particular use with the CFreeburnTrack class, but are
- // needed in other places, so are put here.
- // Defines for the track mode
- // Audio Track
- #define AUDIO 0
- // Data Track
- #define MODE_1 1
- // Data Track in RAW mode (data is in the form as it would be on the disc)
- #define MODE_1_RAW 2
- // CD-ROM/XA Mode 2, try to use form 1 or 2
- #define MODE_2 3
- // Form 1, 2048 bytes of data, with error correction, for data
- #define MODE_2_FORM_1 4
- // Form 2, 2324 bytes of data, no ecc, for audio/video
- #define MODE_2_FORM_2 5
- // Mode 2 track in RAW mode (data is in the form as it would be on the disc)
- #define MODE_2_RAW 6
- // describing the copy properties for a track
- // default copy property
- #define COPY 0
- // the other copy property
- #define NO_COPY 1
- // describing the pre-emphasis properties for a track
- #define NO_PRE_EMPHASIS 0
- #define PRE_EMPHASIS 1
- // describing the track data properties. These can be strung together to
- // create a highly-customizable track, but only in DAO mode. TAO tracks are
- // more limited (they can only have a silent/zero pregap defined in addition
- // to just a straight audio or data track based on one file)
- #define AUDIOFILE 0
- #define DATAFILE 1
- #define SILENCE 2
- #define ZERO 3
- #define START 4
- #define PREGAP 5
- #define INDEX 6
- // define the initial size of a track properties array
- #define INITIAL_TRACK_PROP_ARRAY_SIZE 5
- // define min and max boundries for DiscTime
- #define MIN_FRAMES 0
- #define MAX_FRAMES 74
- #define MIN_SECONDS 0
- #define MAX_SECONDS 59
- #define MIN_MINUTES 0
- // define the number of chars in each ISRC subsection
- #define ISRC_COUNTRY 2
- #define ISRC_OWNER 3
- #define ISRC_YEAR 2
- #define ISRC_SERIAL 5
- #endif