All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.korlibs.audio.format.mod.UtilsExt.kt Maven / Gradle / Ivy

The newest version!
package korlibs.audio.format.mod

import korlibs.memory.Uint8Buffer

// helper functions for picking up signed, unsigned, little endian, etc from an unsigned 8-bit buffer
internal fun le_word(buffer: Uint8Buffer, offset: Int): Int = buffer[offset] or (buffer[offset+1] shl 8)
internal fun le_dword(buffer: Uint8Buffer, offset: Int): Int =
    buffer[offset] or (buffer[offset+1] shl 8) or (buffer[offset+2] shl 16) or (buffer[offset+3] shl 24)
internal fun s_byte(buffer: Uint8Buffer, offset: Int): Int = (buffer[offset] shl 24) shr 24
internal fun s_le_word(buffer: Uint8Buffer, offset: Int): Int = (le_word(buffer,offset) shl 16) shr 16

// convert from MS-DOS extended ASCII to Unicode
private const val ASCII_EX_UNICODE = "\u00c7\u00fc\u00e9\u00e2\u00e4\u00e0\u00e5\u00e7\u00ea\u00eb\u00e8\u00ef\u00ee\u00ec\u00c4\u00c5\u00c9\u00e6\u00c6\u00f4\u00f6\u00f2\u00fb\u00f9\u00ff\u00d6\u00dc\u00f8\u00a3\u00d8\u00d7\u0192\u00e1\u00ed\u00f3\u00fa\u00f1\u00d1\u00aa\u00ba\u00bf\u00ae\u00ac\u00bd\u00bc\u00a1\u00ab\u00bb\u2591\u2592\u2593\u2502\u2524\u00c1\u00c2\u00c0\u00a9\u2563\u2551\u2557\u255d\u00a2\u00a5\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u00e3\u00c3\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u00a4\u00f0\u00d0\u00ca\u00cb\u00c8\u0131\u00cd\u00ce\u00cf\u2518\u250c\u2588\u2584\u00a6\u00cc\u2580\u00d3\u00df\u00d4\u00d2\u00f5\u00d5\u00b5\u00fe\u00de\u00da\u00db\u00d9\u00fd\u00dd\u00af\u00b4\u00ad\u00b1\u2017\u00be\u00b6\u00a7\u00f7\u00b8\u00b0\u00a8\u00b7\u00b9\u00b3\u00b2\u25a0\u00a0"

internal fun dos2utf(c: Int): Char {
    if (c < 128) return c.toChar()
    return ASCII_EX_UNICODE[c - 128]
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy