blob: 82d16f7bd3aea05ed3c30ea3343c33434b80c6ec [file] [log] [blame]
// 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