# -*- coding: utf-8 -*-
"""
formatage des événements

$Id$
$URL$
"""

from events import eventNames
import sys
self = sys.modules[__name__]

def log_NOTEON(e):
    return '%3d %3d %3d' % (e.chan, e.key, e.vel)
    
def log_NOTEOFF(e):
    return '%3d %3d' % (e.chan, e.key)
    
def log_NOTEEND(e):
    return ''

def log_SONGEND(e) :
    return ''
        
def log_COLSTATECHANGE(e):
    col = e.column
    tone = col.tone
    return u'%2d %5s %3s %3s %s' % \
            (col.index, e.state, tone.midi, tone.name, e.syllabus)

def _log_col(e) :
    """ formate les événements de colonne COLDOWN, COLUP, COLOVER
        - etat
        - index de colonne
        - hauteur midi
        - nom de la note /A-G[#b]?/
    """
    col = e.column
    tone = col.tone
    pos = e.pos
    return u'%2d %5s %3s %3s %r' % \
            (col.index, col.state, tone.midi, tone.name, pos)

log_COLDOWN = log_COLUP = log_COLOVER = _log_col

def log_default(e) :
    return str(e)

pprinters = {}
for type, name in eventNames.items() :
    f = getattr(self, 'log_%s' % name, log_default)
    pprinters[type] = f
    
__all__ = ('pprinters')