text: // Copyright 2013 The Chromium Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  #include "base/logging.h"
  #include "media/midi/midi_message_util.h"
  
  namespace media {
  namespace midi {
  
  size_t GetMidiMessageLength(uint8_t status_byte) {
    if (status_byte < 0x80)
      return 0;
    if (0x80 <= status_byte && status_byte <= 0xbf)
      return 3;
    if (0xc0 <= status_byte && status_byte <= 0xdf)
      return 2;
    if (0xe0 <= status_byte && status_byte <= 0xef)
      return 3;
  
    switch (status_byte) {
      case 0xf0:
        return 0;
      case 0xf1:
        return 2;
      case 0xf2:
        return 3;
      case 0xf3:
        return 2;
      case 0xf4:  // Reserved
      case 0xf5:  // Reserved
        return 0;
      case 0xf6:
        return 1;
      case 0xf7:
        return 0;
      case 0xf8:
      case 0xf9:
      case 0xfa:
      case 0xfb:
      case 0xfc:
      case 0xfd:
      case 0xfe:
      case 0xff:
        return 1;
      default:
        NOTREACHED();
        return 0;
    }
  }
  
  }  // namespace midi
  }  // namespace media
  