this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

start implementing flac shit

+78
flac

This is a binary file and will not be displayed.

+6
ols.json
··· 1 + { 2 + "$schema": "https://raw.githubusercontent.com/DanielGavin/ols/master/misc/ols.schema.json", 3 + "enable_document_symbols": true, 4 + "enable_hover": true, 5 + "enable_snippets": true 6 + }
+72
src/formats/flac.odin
··· 1 + package formats 2 + 3 + import "core:bufio" 4 + import "core:fmt" 5 + import os "core:os/os2" 6 + import "core:testing" 7 + 8 + 9 + is_flac :: proc(r: ^bufio.Reader) -> bool { 10 + 11 + marker := make([]byte, 4) 12 + defer delete(marker) 13 + n, err := bufio.reader_read(r, marker) 14 + 15 + if err != nil || n != 4 { 16 + return false 17 + } 18 + 19 + if string(marker) != "fLaC" { 20 + return false 21 + } 22 + 23 + return true 24 + } 25 + 26 + read :: proc(file: ^os.File) { 27 + 28 + r: bufio.Reader 29 + buffer: [1024]byte 30 + bufio.reader_init_with_buf(&r, os.to_reader(file), buffer[:]) 31 + defer bufio.reader_destroy(&r) 32 + 33 + // Check marker 34 + 35 + marker := make([]byte, 4) 36 + n, err := bufio.reader_read(&r, marker) 37 + 38 + if err != nil || n != 4 { 39 + return // file is corrupted 40 + } 41 + 42 + if string(marker) != "fLaC" { 43 + return // not flac 44 + } 45 + 46 + fmt.printfln("{}", string(marker)) 47 + 48 + return 49 + } 50 + 51 + 52 + @(test) 53 + should_read_flac_file :: proc(t: ^testing.T) { 54 + 55 + file_path := "../../test-data/07. Vampire in the Corner.flac" 56 + f, ferr := os.open(file_path, {.Read}) 57 + if ferr != nil { 58 + fmt.eprintfln("{}", ferr) 59 + testing.expect(t, false, "failed to open flac file") 60 + } 61 + defer os.close(f) 62 + 63 + 64 + r: bufio.Reader 65 + buffer: [1024]byte 66 + bufio.reader_init_with_buf(&r, os.to_reader(f), buffer[:]) 67 + defer bufio.reader_destroy(&r) 68 + 69 + actual := is_flac(&r) 70 + 71 + testing.expect(t, actual == true, "failed to open flac file") 72 + }
test-data/07. Vampire in the Corner.flac

This is a binary file and will not be displayed.