# -*- coding: utf8 -*-

"""
Copyright (C) 2007 Adolfo González Blázquez <code@infinicode.org>

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version. 

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. 

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

If you find any bugs or have any suggestions email: code@infinicode.org
"""

class FileFormat:

        def __init__(self,m):
                self.data = self.parse(m)

        def get_data(self):
                return self.data

        def parse(self, m):

                format = m.int8()

                if format == 0:         # Unknown
                        return
                elif format == 1:       # Generic
                        extension = m.string()
                        kind = m.string()
                        return extension, kind
                elif format == 2:       # AVI
                        codec = m.string()
                        width = m.int32()
                        height = m.int32()
                        fps = m.int32()
                        rate = m.int32()
                        return codec, width, height, fps, rate
                elif format == 3:       # MP3
                        title = m.string()
                        artist = m.string()
                        album = m.string()
                        year = m.string()
                        comment = m.string()
                        track = m.int32()
                        genre = m.int32()
                        return title, artist, album, year, comment, track, genre
                else: pass