FreeburnDefs.h
上传用户:cnxinhai
上传日期:2013-08-06
资源大小:265k
文件大小:8k
源码类别:

DVD

开发平台:

Visual C++

  1. /* Definitions of macros used throughout FreeBurn
  2.  *
  3.  * Copyright (C) 2001, 2002  Adam Schlag
  4.  */
  5. /*
  6.  * FreeBurn Software License
  7.  * (based on the Apache Software License)
  8.  * 
  9.  * Version 1.1
  10.  * 
  11.  * Copyright (c) 2001, 2002 The FreeBurn Project. All rights reserved.
  12.  * 
  13.  * Redistribution and use in source and binary forms, with or without 
  14.  * modification, are permitted provided that the following conditions are met:
  15.  * 
  16.  * 1. Redistributions of source code must retain the above copyright 
  17.  * notice, this list of conditions and the following disclaimer.
  18.  * 
  19.  * 2. Redistributions in binary form must reproduce the above copyright 
  20.  * notice, this list of conditions and the following disclaimer in the 
  21.  * documentation and/or other materials provided with the distribution.
  22.  * 
  23.  * 3. The end-user documentation included with the redistribution, if any, must 
  24.  * include the following acknowledgment:
  25.  * 
  26.  *  "This product includes software developed by the FreeBurn 
  27.  *     Project (http://freeburn.sourceforge.net/)."
  28.  * 
  29.  * Alternately, this acknowledgment may appear in the software itself, 
  30.  * if and wherever such third-party acknowledgments normally appear.
  31.  * 
  32.  * 4. The names "FreeBurn" and "FreeBurn Project" must not be 
  33.  * used to endorse or promote products derived from this software 
  34.  * without prior written permission. For written permission, please 
  35.  * contact aschlag@users.sourceforge.net.
  36.  * 
  37.  * 5. Products derived from this software may not be called "FreeBurn", 
  38.  * nor may "FreeBurn" appear in their name, without prior written 
  39.  * permission of the FreeBurn Project.
  40.  * 
  41.  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED 
  42.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
  43.  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
  44.  * DISCLAIMED. IN NO EVENT SHALL THE FREEBURN PROJECT OR ITS 
  45.  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
  46.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
  47.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 
  48.  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
  49.  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
  50.  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 
  51.  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
  52.  * SUCH DAMAGE.
  53.  * 
  54.  * This software consists of voluntary contributions made by many 
  55.  * individuals on behalf of the FreeBurn Project. For more 
  56.  * information on the FreeBurn Project and FreeBurn, please see 
  57.  * <http://freeburn.sourceforge.net/>.
  58.  * 
  59.  * This software is distributed with software that is released under the GNU 
  60.  * General Public License (GPL).  You can find the terms of this license in the
  61.  * file GPL.txt distributed in this package.  You can find information on the
  62.  * software distributed with this package in the file PROGRAMS.txt.
  63.  */
  64. #ifndef FREEBURN_DEFS_H
  65. #define FREEBURN_DEFS_H
  66. // NULL definition just in case it's needed
  67. #ifndef NULL
  68. #define NULL 0
  69. #endif
  70. // Constant name of the application (i.e. FreeBurn)
  71. #define FB_APP_NAME      "FreeBurn"
  72. #define FB_VENDOR_NAME   "FreeBurn Project"
  73. #define FB_MAJOR_VERSION "0"
  74. #define FB_MINOR_VERSION "10"
  75. // Default Height and Width of the application window
  76. #define FB_HEIGHT 400
  77. #define FB_WIDTH  600
  78. #define FB_XPOS   75
  79. #define FB_YPOS   75
  80. // Macros for the strings representing the different program themes
  81. #define DEFAULT_THEME 0
  82. #define GNOME_THEME   1
  83. #define KDE_THEME     2
  84. #define XP_THEME      3
  85. // Macros for the names of external programs/directories used in the program
  86. #define DEFAULT_PROGRAM_DIRECTORY ".\programs"
  87. #define CDRECORD_WINDOWS_NAME     "\cdrecord"
  88. #define CDRECORD_UNIX_NAME        "/cdrecord"
  89. #define SH_WINDOWS_NAME           "\sh"
  90. #define SH_UNIX_NAME              "/sh"
  91. #define MKISOFS_WINDOWS_NAME      "\mkisofs"
  92. #define MKISOFS_UNIX_NAME         "/mkisofs"
  93. #define CDRDAO_WINDOWS_NAME       "\cdrdao"
  94. #define CDRDAO_UNIX_NAME          "/cdrdao"
  95. #define EXE_EXTENSION             ".exe"
  96. // Macro representing different strings
  97. #define EMPTY_STRING  ""
  98. #define QUOTE         """
  99. #define SPACE         " "
  100. #define SHELL_COMMAND " -c "
  101. #define COMMAND_BREAK "\n"
  102. #define NEW_LINE      "n"
  103. // Macro representing the font faces used in the program
  104. #define FIXED_FONT "Courier New"
  105. #define HELP_FONT  "Verdana"
  106. #define SANS_SERIF "MS Sans Serif"
  107. // Macros for string lengths in different areas of the program
  108. #define CHAR_BUFFER_SIZE  1024
  109. #define CONSOLE_LINE_SIZE 80
  110. // The following macros are of particular use with the CFreeburnDisc class, but are
  111. // needed in other places, so are put here.
  112. // the maximum blocks on a typical (74/650) CD-R
  113. #define MAX_CD_SPACE_BLOCKS        333000
  114. // the maximum blocks on a large (80/700) CD-R
  115. #define MAX_CD_LARGE_SPACE_BLOCKS  360000
  116. // the maximum space in bytes on a 650 MB (74/650) CD-R
  117. #define MAX_CD_SPACE_BYTES         681984000
  118. // the maximum space in bytes on a 700 MB (80/700) CD-R
  119. #define MAX_CD_LARGE_SPACE_BYTES   737280000
  120. // the maximum space in minutes on a 74 minute (74/650) CD-R
  121. #define MAX_CD_SPACE_MINUTES       74
  122. // the maximum space in minutes on a 80 minute (80/700) CD-R
  123. #define MAX_CD_LARGE_SPACE_MINUTES 80
  124. // the maximum space in seconds on a 74 minute (74/650) CD-R
  125. #define MAX_CD_SPACE_SECONDS       4440
  126. // the maximum space in seconds on a 80 minute (80/700) CD-R
  127. #define MAX_CD_LARGE_SPACE_SECONDS 4800
  128. // the number of bytes in one block
  129. #define BYTES_IN_ONE_BLOCK         2048
  130. // the number of blocks in one second
  131. #define BLOCKS_IN_ONE_SECOND       75
  132. // the number of blocks in one minute
  133. #define BLOCKS_IN_ONE_MINUTE       4500
  134. // defines for the disc size types
  135. #define _74_650_DISC 0
  136. #define _80_700_DISC 1
  137. // these define the kind of disc types that can be set
  138. // CD_DA stands for an audio disc, CD_ROM stands for data,
  139. // CD_MIXED_MODE stands for audio and data, and CDROM_XA
  140. // is for discs that will contain some kind of XA track
  141. #define CD_DA    0
  142. #define CD_ROM   1
  143. #define CDROM_XA 2
  144. // defines for CD Text languages that are known
  145. // The num defines the code that will be used, the
  146. // string is the string that the code can be 
  147. // identified by.
  148. #define CD_TEXT_ENGLISH_NUM 9
  149. #define CD_TEXT_ENGLISH_STR "EN"
  150. #define CD_TEXT_ENG_LONGSTR "English"
  151. #define CD_TEXT_LANG_ARRAY_LENGTH 8
  152. // define for the exact length a catalog string must be
  153. #define CD_CATALOG_STRING_LENGTH 13
  154. // define the maximum & minimum number of tracks on a cd (which is always 99 & 1)
  155. #define MAX_CD_TRACKS 99
  156. #define MIN_CD_TRACKS 1
  157. // The following macros are of particular use with the CFreeburnTrack class, but are
  158. // needed in other places, so are put here.
  159. // Defines for the track mode
  160. // Audio Track
  161. #define AUDIO           0
  162. // Data Track
  163. #define MODE_1          1
  164. // Data Track in RAW mode (data is in the form as it would be on the disc)
  165. #define MODE_1_RAW      2
  166. // CD-ROM/XA Mode 2, try to use form 1 or 2
  167. #define MODE_2          3
  168. // Form 1, 2048 bytes of data, with error correction, for data
  169. #define MODE_2_FORM_1   4
  170. // Form 2, 2324 bytes of data, no ecc, for audio/video
  171. #define MODE_2_FORM_2   5
  172. // Mode 2 track in RAW mode (data is in the form as it would be on the disc)
  173. #define MODE_2_RAW      6
  174. // describing the copy properties for a track
  175. // default copy property
  176. #define COPY    0
  177. // the other copy property
  178. #define NO_COPY 1
  179. // describing the pre-emphasis properties for a track
  180. #define NO_PRE_EMPHASIS 0
  181. #define PRE_EMPHASIS    1
  182. // describing the track data properties.  These can be strung together to 
  183. // create a highly-customizable track, but only in DAO mode.  TAO tracks are 
  184. // more limited (they can only have a silent/zero pregap defined in addition 
  185. // to just a straight audio or data track based on one file)
  186. #define AUDIOFILE 0
  187. #define DATAFILE  1
  188. #define SILENCE   2
  189. #define ZERO      3
  190. #define START     4
  191. #define PREGAP    5
  192. #define INDEX     6
  193. // define the initial size of a track properties array
  194. #define INITIAL_TRACK_PROP_ARRAY_SIZE 5
  195. // define min and max boundries for DiscTime
  196. #define MIN_FRAMES 0
  197. #define MAX_FRAMES 74
  198. #define MIN_SECONDS 0
  199. #define MAX_SECONDS 59
  200. #define MIN_MINUTES 0
  201. // define the number of chars in each ISRC subsection
  202. #define ISRC_COUNTRY 2
  203. #define ISRC_OWNER   3
  204. #define ISRC_YEAR    2
  205. #define ISRC_SERIAL  5
  206. #endif