File indexing completed on 2024-05-12 04:51:10
0001 /* 0002 SPDX-FileCopyrightText: 2003-2004 Christian Kvasny <chris@k3b.org> 0003 SPDX-FileCopyrightText: 1998-2008 Sebastian Trueg <trueg@k3b.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef K3B_VCD_OPTIONS_H 0009 #define K3B_VCD_OPTIONS_H 0010 0011 #include "k3b_export.h" 0012 #include <KConfigGroup> 0013 #include <QString> 0014 0015 namespace K3b { 0016 class LIBK3B_EXPORT VcdOptions 0017 { 0018 public: 0019 VcdOptions(); 0020 0021 enum MPEGVersion { 0022 VCD11 = 0, 0023 VCD20 = 1, 0024 SVCD10 = 2, 0025 HQVCD10 = 3 0026 }; 0027 0028 QString volumeId() const 0029 { 0030 return m_volumeID; 0031 } 0032 QString albumId() const 0033 { 0034 return m_albumID; 0035 } 0036 QString volumeSetId() const 0037 { 0038 return m_volumeSetId; 0039 } 0040 QString preparer() const 0041 { 0042 return m_preparer; 0043 } 0044 QString publisher() const 0045 { 0046 return m_publisher; 0047 } 0048 0049 QString applicationId() const 0050 { 0051 return m_applicationId; 0052 } 0053 QString systemId() const 0054 { 0055 return m_systemId; 0056 } 0057 0058 QString vcdClass() const 0059 { 0060 return m_vcdclass; 0061 } 0062 QString vcdVersion() const 0063 { 0064 return m_vcdversion; 0065 } 0066 0067 int PreGapLeadout() 0068 { 0069 return m_pregapleadout; 0070 } 0071 int PreGapTrack() 0072 { 0073 return m_pregaptrack; 0074 } 0075 int FrontMarginTrack() 0076 { 0077 return m_frontmargintrack; 0078 } 0079 int RearMarginTrack() 0080 { 0081 return m_rearmargintrack; 0082 } 0083 int FrontMarginTrackSVCD() 0084 { 0085 return m_frontmargintrackSVCD; 0086 } 0087 int RearMarginTrackSVCD() 0088 { 0089 return m_rearmargintrackSVCD; 0090 } 0091 0092 MPEGVersion mpegVersion() const 0093 { 0094 return m_mpegversion; 0095 } 0096 0097 int volumeCount() const 0098 { 0099 return m_volumeCount; 0100 } 0101 int volumeNumber() const 0102 { 0103 return m_volumeNumber; 0104 } 0105 0106 bool AutoDetect() const 0107 { 0108 return m_autodetect; 0109 } 0110 bool CdiSupport() const 0111 { 0112 return m_cdisupport; 0113 } 0114 bool NonCompliantMode() const 0115 { 0116 return m_brokensvcdmode; 0117 } 0118 bool VCD30interpretation() const 0119 { 0120 return m_VCD30interpretation; 0121 } 0122 bool Sector2336() const 0123 { 0124 return m_sector2336; 0125 } 0126 bool UpdateScanOffsets() const 0127 { 0128 return m_updatescanoffsets; 0129 } 0130 bool RelaxedAps() const 0131 { 0132 return m_relaxedaps; 0133 } 0134 bool UseGaps() const 0135 { 0136 return m_usegaps; 0137 } 0138 unsigned long long CDIsize() const 0139 { 0140 return m_cdisize; 0141 } 0142 0143 void setAlbumId( const QString& s ) 0144 { 0145 m_albumID = s; 0146 } 0147 void setVolumeId( const QString& s ) 0148 { 0149 m_volumeID = s; 0150 } 0151 void setVolumeSetId( const QString& s ) 0152 { 0153 m_volumeSetId = s; 0154 } 0155 void setPreparer( const QString& s ) 0156 { 0157 m_preparer = s; 0158 } 0159 void setPublisher( const QString& s ) 0160 { 0161 m_publisher = s; 0162 } 0163 0164 void setVcdClass( const QString& s ) 0165 { 0166 m_vcdclass = s; 0167 } 0168 void setVcdVersion( const QString& s ) 0169 { 0170 m_vcdversion = s; 0171 } 0172 0173 void setPreGapLeadout( int i ) 0174 { 0175 m_pregapleadout = i; 0176 } 0177 void setPreGapTrack( int i ) 0178 { 0179 m_pregaptrack = i; 0180 } 0181 void setFrontMarginTrack( int i ) 0182 { 0183 m_frontmargintrack = i; 0184 } 0185 void setRearMarginTrack( int i ) 0186 { 0187 m_rearmargintrack = i; 0188 } 0189 void setFrontMarginTrackSVCD( int i ) 0190 { 0191 m_frontmargintrackSVCD = i; 0192 } 0193 void setRearMarginTrackSVCD( int i ) 0194 { 0195 m_rearmargintrackSVCD = i; 0196 } 0197 0198 void setMpegVersion( MPEGVersion v ) 0199 { 0200 m_mpegversion = v; 0201 } 0202 void setVolumeCount( int c ) 0203 { 0204 m_volumeCount = c; 0205 } 0206 void setVolumeNumber( int n ) 0207 { 0208 m_volumeNumber = n; 0209 } 0210 0211 void setAutoDetect( bool b ) 0212 { 0213 m_autodetect = b; 0214 } 0215 void setCdiSupport( bool b ) 0216 { 0217 m_cdisupport = b; 0218 } 0219 void setNonCompliantMode( bool b ) 0220 { 0221 m_brokensvcdmode = b; 0222 } 0223 void setVCD30interpretation( bool b ) 0224 { 0225 m_VCD30interpretation = b; 0226 } 0227 void setSector2336( bool b ) 0228 { 0229 m_sector2336 = b; 0230 } 0231 void setUpdateScanOffsets( bool b ) 0232 { 0233 m_updatescanoffsets = b; 0234 } 0235 void setRelaxedAps( bool b ) 0236 { 0237 m_relaxedaps = b; 0238 } 0239 void setUseGaps( bool b ) 0240 { 0241 m_usegaps = b; 0242 } 0243 0244 bool checkCdiFiles(); 0245 void save( KConfigGroup c ); 0246 0247 static VcdOptions load( const KConfigGroup& c ); 0248 static VcdOptions defaults(); 0249 0250 void setPbcEnabled( bool b ) 0251 { 0252 m_pbcenabled = b; 0253 } 0254 bool PbcEnabled() const 0255 { 0256 return m_pbcenabled; 0257 }; 0258 void setPbcNumkeysEnabled( bool b ) 0259 { 0260 m_pbcnumkeysenabled = b; 0261 } 0262 bool PbcNumkeysEnabled() const 0263 { 0264 return m_pbcnumkeysenabled; 0265 }; 0266 0267 void setPbcPlayTime( int i ) 0268 { 0269 m_def_pbcplaytime = i; 0270 } 0271 int PbcPlayTime( ) 0272 { 0273 return m_def_pbcplaytime; 0274 } 0275 0276 void setPbcWaitTime( int i ) 0277 { 0278 m_def_pbcwaittime = i; 0279 } 0280 int PbcWaitTime( ) 0281 { 0282 return m_def_pbcwaittime; 0283 } 0284 0285 void setSegmentFolder( bool b ) 0286 { 0287 m_segmentfolder = b; 0288 } 0289 bool SegmentFolder() const 0290 { 0291 return m_segmentfolder; 0292 }; 0293 0294 void setRestriction( int i ) 0295 { 0296 m_restriction = i; 0297 } 0298 int Restriction() const 0299 { 0300 return m_restriction; 0301 }; 0302 void increaseSegments( ) 0303 { 0304 m_segment += 1; 0305 } 0306 void decreaseSegments( ) 0307 { 0308 m_segment -= 1; 0309 } 0310 bool haveSegments() const 0311 { 0312 return m_segment > 0; 0313 }; 0314 void increaseSequence( ) 0315 { 0316 m_sequence += 1; 0317 } 0318 void decreaseSequence( ) 0319 { 0320 m_sequence -= 1; 0321 } 0322 0323 bool haveSequence() const 0324 { 0325 return m_sequence > 0; 0326 } 0327 0328 private: 0329 int m_restriction; 0330 int m_segment; 0331 int m_sequence; 0332 0333 // pbc 0334 bool m_pbcenabled; 0335 bool m_pbcnumkeysenabled; 0336 0337 // volume descriptor 0338 QString m_volumeID; 0339 QString m_albumID; 0340 QString m_volumeSetId; 0341 0342 QString m_preparer; 0343 QString m_publisher; 0344 0345 QString m_applicationId; 0346 QString m_systemId; 0347 0348 QString m_vcdclass; 0349 QString m_vcdversion; 0350 0351 int m_pregapleadout; 0352 int m_pregaptrack; 0353 int m_frontmargintrack; 0354 int m_rearmargintrack; 0355 int m_frontmargintrackSVCD; 0356 int m_rearmargintrackSVCD; 0357 0358 MPEGVersion m_mpegversion; 0359 int m_volumeCount; 0360 int m_volumeNumber; 0361 0362 bool m_autodetect; 0363 bool m_cdisupport; 0364 bool m_brokensvcdmode; 0365 bool m_VCD30interpretation; 0366 bool m_sector2336; 0367 bool m_updatescanoffsets; 0368 bool m_relaxedaps; 0369 bool m_segmentfolder; 0370 bool m_usegaps; 0371 0372 int m_def_pbcplaytime; 0373 int m_def_pbcwaittime; 0374 unsigned long long m_cdisize; 0375 }; 0376 } 0377 0378 #endif