001 002package net.filebot.subtitle; 003 004import net.filebot.MediaTypes; 005import net.filebot.util.ExtensionFileFilter; 006 007public enum SubtitleFormat { 008 009 SubRip { 010 011 @Override 012 public SubtitleDecoder getDecoder() { 013 return SubRipReader::decode; 014 } 015 016 @Override 017 public ExtensionFileFilter getFilter() { 018 return MediaTypes.SRT; 019 } 020 }, 021 022 MicroDVD { 023 024 @Override 025 public SubtitleDecoder getDecoder() { 026 return MicroDVDReader::decode; 027 } 028 029 @Override 030 public ExtensionFileFilter getFilter() { 031 return MediaTypes.SUB; 032 } 033 }, 034 035 SubViewer { 036 037 @Override 038 public SubtitleDecoder getDecoder() { 039 return SubViewerReader::decode; 040 } 041 042 @Override 043 public ExtensionFileFilter getFilter() { 044 return MediaTypes.SUB; 045 } 046 }, 047 048 SubStationAlpha { 049 050 @Override 051 public SubtitleDecoder getDecoder() { 052 return SubStationAlphaReader::decode; 053 } 054 055 @Override 056 public ExtensionFileFilter getFilter() { 057 return MediaTypes.SSA; 058 } 059 }, 060 061 SAMI { 062 063 @Override 064 public SubtitleDecoder getDecoder() { 065 return SamiDecoder::decode; 066 } 067 068 @Override 069 public ExtensionFileFilter getFilter() { 070 return MediaTypes.SAMI; 071 } 072 }, 073 074 MPL2 { 075 @Override 076 public SubtitleDecoder getDecoder() { 077 return MPlayerReader::decode; 078 } 079 080 @Override 081 public ExtensionFileFilter getFilter() { 082 return new ExtensionFileFilter("mpl", "txt"); 083 } 084 }, 085 086 TMPlayer { 087 @Override 088 public SubtitleDecoder getDecoder() { 089 return TMPlayerReader::decode; 090 } 091 092 @Override 093 public ExtensionFileFilter getFilter() { 094 return new ExtensionFileFilter("tmp", "txt"); 095 } 096 }; 097 098 public abstract SubtitleDecoder getDecoder(); 099 100 public abstract ExtensionFileFilter getFilter(); 101 102}