1 /* 2 SPDX-FileCopyrightText: 2003-2004 Christian Kvasny <chris@k3b.org> 3 SPDX-FileCopyrightText: 1998-2008 Sebastian Trueg <trueg@k3b.org> 4 5 SPDX-License-Identifier: GPL-2.0-or-later 6 */ 7 8 #ifndef K3B_VCD_OPTIONS_H 9 #define K3B_VCD_OPTIONS_H 10 11 #include "k3b_export.h" 12 #include <KConfigGroup> 13 #include <QString> 14 15 namespace K3b { 16 class LIBK3B_EXPORT VcdOptions 17 { 18 public: 19 VcdOptions(); 20 21 enum MPEGVersion { 22 VCD11 = 0, 23 VCD20 = 1, 24 SVCD10 = 2, 25 HQVCD10 = 3 26 }; 27 volumeId()28 QString volumeId() const 29 { 30 return m_volumeID; 31 } albumId()32 QString albumId() const 33 { 34 return m_albumID; 35 } volumeSetId()36 QString volumeSetId() const 37 { 38 return m_volumeSetId; 39 } preparer()40 QString preparer() const 41 { 42 return m_preparer; 43 } publisher()44 QString publisher() const 45 { 46 return m_publisher; 47 } 48 applicationId()49 QString applicationId() const 50 { 51 return m_applicationId; 52 } systemId()53 QString systemId() const 54 { 55 return m_systemId; 56 } 57 vcdClass()58 QString vcdClass() const 59 { 60 return m_vcdclass; 61 } vcdVersion()62 QString vcdVersion() const 63 { 64 return m_vcdversion; 65 } 66 PreGapLeadout()67 int PreGapLeadout() 68 { 69 return m_pregapleadout; 70 } PreGapTrack()71 int PreGapTrack() 72 { 73 return m_pregaptrack; 74 } FrontMarginTrack()75 int FrontMarginTrack() 76 { 77 return m_frontmargintrack; 78 } RearMarginTrack()79 int RearMarginTrack() 80 { 81 return m_rearmargintrack; 82 } FrontMarginTrackSVCD()83 int FrontMarginTrackSVCD() 84 { 85 return m_frontmargintrackSVCD; 86 } RearMarginTrackSVCD()87 int RearMarginTrackSVCD() 88 { 89 return m_rearmargintrackSVCD; 90 } 91 mpegVersion()92 MPEGVersion mpegVersion() const 93 { 94 return m_mpegversion; 95 } 96 volumeCount()97 int volumeCount() const 98 { 99 return m_volumeCount; 100 } volumeNumber()101 int volumeNumber() const 102 { 103 return m_volumeNumber; 104 } 105 AutoDetect()106 bool AutoDetect() const 107 { 108 return m_autodetect; 109 } CdiSupport()110 bool CdiSupport() const 111 { 112 return m_cdisupport; 113 } NonCompliantMode()114 bool NonCompliantMode() const 115 { 116 return m_brokensvcdmode; 117 } VCD30interpretation()118 bool VCD30interpretation() const 119 { 120 return m_VCD30interpretation; 121 } Sector2336()122 bool Sector2336() const 123 { 124 return m_sector2336; 125 } UpdateScanOffsets()126 bool UpdateScanOffsets() const 127 { 128 return m_updatescanoffsets; 129 } RelaxedAps()130 bool RelaxedAps() const 131 { 132 return m_relaxedaps; 133 } UseGaps()134 bool UseGaps() const 135 { 136 return m_usegaps; 137 } CDIsize()138 unsigned long long CDIsize() const 139 { 140 return m_cdisize; 141 } 142 setAlbumId(const QString & s)143 void setAlbumId( const QString& s ) 144 { 145 m_albumID = s; 146 } setVolumeId(const QString & s)147 void setVolumeId( const QString& s ) 148 { 149 m_volumeID = s; 150 } setVolumeSetId(const QString & s)151 void setVolumeSetId( const QString& s ) 152 { 153 m_volumeSetId = s; 154 } setPreparer(const QString & s)155 void setPreparer( const QString& s ) 156 { 157 m_preparer = s; 158 } setPublisher(const QString & s)159 void setPublisher( const QString& s ) 160 { 161 m_publisher = s; 162 } 163 setVcdClass(const QString & s)164 void setVcdClass( const QString& s ) 165 { 166 m_vcdclass = s; 167 } setVcdVersion(const QString & s)168 void setVcdVersion( const QString& s ) 169 { 170 m_vcdversion = s; 171 } 172 setPreGapLeadout(int i)173 void setPreGapLeadout( int i ) 174 { 175 m_pregapleadout = i; 176 } setPreGapTrack(int i)177 void setPreGapTrack( int i ) 178 { 179 m_pregaptrack = i; 180 } setFrontMarginTrack(int i)181 void setFrontMarginTrack( int i ) 182 { 183 m_frontmargintrack = i; 184 } setRearMarginTrack(int i)185 void setRearMarginTrack( int i ) 186 { 187 m_rearmargintrack = i; 188 } setFrontMarginTrackSVCD(int i)189 void setFrontMarginTrackSVCD( int i ) 190 { 191 m_frontmargintrackSVCD = i; 192 } setRearMarginTrackSVCD(int i)193 void setRearMarginTrackSVCD( int i ) 194 { 195 m_rearmargintrackSVCD = i; 196 } 197 setMpegVersion(MPEGVersion v)198 void setMpegVersion( MPEGVersion v ) 199 { 200 m_mpegversion = v; 201 } setVolumeCount(int c)202 void setVolumeCount( int c ) 203 { 204 m_volumeCount = c; 205 } setVolumeNumber(int n)206 void setVolumeNumber( int n ) 207 { 208 m_volumeNumber = n; 209 } 210 setAutoDetect(bool b)211 void setAutoDetect( bool b ) 212 { 213 m_autodetect = b; 214 } setCdiSupport(bool b)215 void setCdiSupport( bool b ) 216 { 217 m_cdisupport = b; 218 } setNonCompliantMode(bool b)219 void setNonCompliantMode( bool b ) 220 { 221 m_brokensvcdmode = b; 222 } setVCD30interpretation(bool b)223 void setVCD30interpretation( bool b ) 224 { 225 m_VCD30interpretation = b; 226 } setSector2336(bool b)227 void setSector2336( bool b ) 228 { 229 m_sector2336 = b; 230 } setUpdateScanOffsets(bool b)231 void setUpdateScanOffsets( bool b ) 232 { 233 m_updatescanoffsets = b; 234 } setRelaxedAps(bool b)235 void setRelaxedAps( bool b ) 236 { 237 m_relaxedaps = b; 238 } setUseGaps(bool b)239 void setUseGaps( bool b ) 240 { 241 m_usegaps = b; 242 } 243 244 bool checkCdiFiles(); 245 void save( KConfigGroup c ); 246 247 static VcdOptions load( const KConfigGroup& c ); 248 static VcdOptions defaults(); 249 setPbcEnabled(bool b)250 void setPbcEnabled( bool b ) 251 { 252 m_pbcenabled = b; 253 } PbcEnabled()254 bool PbcEnabled() const 255 { 256 return m_pbcenabled; 257 }; setPbcNumkeysEnabled(bool b)258 void setPbcNumkeysEnabled( bool b ) 259 { 260 m_pbcnumkeysenabled = b; 261 } PbcNumkeysEnabled()262 bool PbcNumkeysEnabled() const 263 { 264 return m_pbcnumkeysenabled; 265 }; 266 setPbcPlayTime(int i)267 void setPbcPlayTime( int i ) 268 { 269 m_def_pbcplaytime = i; 270 } PbcPlayTime()271 int PbcPlayTime( ) 272 { 273 return m_def_pbcplaytime; 274 } 275 setPbcWaitTime(int i)276 void setPbcWaitTime( int i ) 277 { 278 m_def_pbcwaittime = i; 279 } PbcWaitTime()280 int PbcWaitTime( ) 281 { 282 return m_def_pbcwaittime; 283 } 284 setSegmentFolder(bool b)285 void setSegmentFolder( bool b ) 286 { 287 m_segmentfolder = b; 288 } SegmentFolder()289 bool SegmentFolder() const 290 { 291 return m_segmentfolder; 292 }; 293 setRestriction(int i)294 void setRestriction( int i ) 295 { 296 m_restriction = i; 297 } Restriction()298 int Restriction() const 299 { 300 return m_restriction; 301 }; increaseSegments()302 void increaseSegments( ) 303 { 304 m_segment += 1; 305 } decreaseSegments()306 void decreaseSegments( ) 307 { 308 m_segment -= 1; 309 } haveSegments()310 bool haveSegments() const 311 { 312 return m_segment > 0; 313 }; increaseSequence()314 void increaseSequence( ) 315 { 316 m_sequence += 1; 317 } decreaseSequence()318 void decreaseSequence( ) 319 { 320 m_sequence -= 1; 321 } 322 haveSequence()323 bool haveSequence() const 324 { 325 return m_sequence > 0; 326 } 327 328 private: 329 int m_restriction; 330 int m_segment; 331 int m_sequence; 332 333 // pbc 334 bool m_pbcenabled; 335 bool m_pbcnumkeysenabled; 336 337 // volume descriptor 338 QString m_volumeID; 339 QString m_albumID; 340 QString m_volumeSetId; 341 342 QString m_preparer; 343 QString m_publisher; 344 345 QString m_applicationId; 346 QString m_systemId; 347 348 QString m_vcdclass; 349 QString m_vcdversion; 350 351 int m_pregapleadout; 352 int m_pregaptrack; 353 int m_frontmargintrack; 354 int m_rearmargintrack; 355 int m_frontmargintrackSVCD; 356 int m_rearmargintrackSVCD; 357 358 MPEGVersion m_mpegversion; 359 int m_volumeCount; 360 int m_volumeNumber; 361 362 bool m_autodetect; 363 bool m_cdisupport; 364 bool m_brokensvcdmode; 365 bool m_VCD30interpretation; 366 bool m_sector2336; 367 bool m_updatescanoffsets; 368 bool m_relaxedaps; 369 bool m_segmentfolder; 370 bool m_usegaps; 371 372 int m_def_pbcplaytime; 373 int m_def_pbcwaittime; 374 unsigned long long m_cdisize; 375 }; 376 } 377 378 #endif 379