summaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/mattermost/rsc/qr/coding/gen.go
diff options
context:
space:
mode:
Diffstat (limited to 'Godeps/_workspace/src/github.com/mattermost/rsc/qr/coding/gen.go')
-rw-r--r--Godeps/_workspace/src/github.com/mattermost/rsc/qr/coding/gen.go149
1 files changed, 149 insertions, 0 deletions
diff --git a/Godeps/_workspace/src/github.com/mattermost/rsc/qr/coding/gen.go b/Godeps/_workspace/src/github.com/mattermost/rsc/qr/coding/gen.go
new file mode 100644
index 000000000..a3857f277
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/mattermost/rsc/qr/coding/gen.go
@@ -0,0 +1,149 @@
+// +build ignore
+
+package main
+
+import "fmt"
+
+// tables from qrencode-3.1.1/qrspec.c
+
+var capacity = [41]struct {
+ width int
+ words int
+ remainder int
+ ec [4]int
+}{
+ {0, 0, 0, [4]int{0, 0, 0, 0}},
+ {21, 26, 0, [4]int{7, 10, 13, 17}}, // 1
+ {25, 44, 7, [4]int{10, 16, 22, 28}},
+ {29, 70, 7, [4]int{15, 26, 36, 44}},
+ {33, 100, 7, [4]int{20, 36, 52, 64}},
+ {37, 134, 7, [4]int{26, 48, 72, 88}}, // 5
+ {41, 172, 7, [4]int{36, 64, 96, 112}},
+ {45, 196, 0, [4]int{40, 72, 108, 130}},
+ {49, 242, 0, [4]int{48, 88, 132, 156}},
+ {53, 292, 0, [4]int{60, 110, 160, 192}},
+ {57, 346, 0, [4]int{72, 130, 192, 224}}, //10
+ {61, 404, 0, [4]int{80, 150, 224, 264}},
+ {65, 466, 0, [4]int{96, 176, 260, 308}},
+ {69, 532, 0, [4]int{104, 198, 288, 352}},
+ {73, 581, 3, [4]int{120, 216, 320, 384}},
+ {77, 655, 3, [4]int{132, 240, 360, 432}}, //15
+ {81, 733, 3, [4]int{144, 280, 408, 480}},
+ {85, 815, 3, [4]int{168, 308, 448, 532}},
+ {89, 901, 3, [4]int{180, 338, 504, 588}},
+ {93, 991, 3, [4]int{196, 364, 546, 650}},
+ {97, 1085, 3, [4]int{224, 416, 600, 700}}, //20
+ {101, 1156, 4, [4]int{224, 442, 644, 750}},
+ {105, 1258, 4, [4]int{252, 476, 690, 816}},
+ {109, 1364, 4, [4]int{270, 504, 750, 900}},
+ {113, 1474, 4, [4]int{300, 560, 810, 960}},
+ {117, 1588, 4, [4]int{312, 588, 870, 1050}}, //25
+ {121, 1706, 4, [4]int{336, 644, 952, 1110}},
+ {125, 1828, 4, [4]int{360, 700, 1020, 1200}},
+ {129, 1921, 3, [4]int{390, 728, 1050, 1260}},
+ {133, 2051, 3, [4]int{420, 784, 1140, 1350}},
+ {137, 2185, 3, [4]int{450, 812, 1200, 1440}}, //30
+ {141, 2323, 3, [4]int{480, 868, 1290, 1530}},
+ {145, 2465, 3, [4]int{510, 924, 1350, 1620}},
+ {149, 2611, 3, [4]int{540, 980, 1440, 1710}},
+ {153, 2761, 3, [4]int{570, 1036, 1530, 1800}},
+ {157, 2876, 0, [4]int{570, 1064, 1590, 1890}}, //35
+ {161, 3034, 0, [4]int{600, 1120, 1680, 1980}},
+ {165, 3196, 0, [4]int{630, 1204, 1770, 2100}},
+ {169, 3362, 0, [4]int{660, 1260, 1860, 2220}},
+ {173, 3532, 0, [4]int{720, 1316, 1950, 2310}},
+ {177, 3706, 0, [4]int{750, 1372, 2040, 2430}}, //40
+}
+
+var eccTable = [41][4][2]int{
+ {{0, 0}, {0, 0}, {0, 0}, {0, 0}},
+ {{1, 0}, {1, 0}, {1, 0}, {1, 0}}, // 1
+ {{1, 0}, {1, 0}, {1, 0}, {1, 0}},
+ {{1, 0}, {1, 0}, {2, 0}, {2, 0}},
+ {{1, 0}, {2, 0}, {2, 0}, {4, 0}},
+ {{1, 0}, {2, 0}, {2, 2}, {2, 2}}, // 5
+ {{2, 0}, {4, 0}, {4, 0}, {4, 0}},
+ {{2, 0}, {4, 0}, {2, 4}, {4, 1}},
+ {{2, 0}, {2, 2}, {4, 2}, {4, 2}},
+ {{2, 0}, {3, 2}, {4, 4}, {4, 4}},
+ {{2, 2}, {4, 1}, {6, 2}, {6, 2}}, //10
+ {{4, 0}, {1, 4}, {4, 4}, {3, 8}},
+ {{2, 2}, {6, 2}, {4, 6}, {7, 4}},
+ {{4, 0}, {8, 1}, {8, 4}, {12, 4}},
+ {{3, 1}, {4, 5}, {11, 5}, {11, 5}},
+ {{5, 1}, {5, 5}, {5, 7}, {11, 7}}, //15
+ {{5, 1}, {7, 3}, {15, 2}, {3, 13}},
+ {{1, 5}, {10, 1}, {1, 15}, {2, 17}},
+ {{5, 1}, {9, 4}, {17, 1}, {2, 19}},
+ {{3, 4}, {3, 11}, {17, 4}, {9, 16}},
+ {{3, 5}, {3, 13}, {15, 5}, {15, 10}}, //20
+ {{4, 4}, {17, 0}, {17, 6}, {19, 6}},
+ {{2, 7}, {17, 0}, {7, 16}, {34, 0}},
+ {{4, 5}, {4, 14}, {11, 14}, {16, 14}},
+ {{6, 4}, {6, 14}, {11, 16}, {30, 2}},
+ {{8, 4}, {8, 13}, {7, 22}, {22, 13}}, //25
+ {{10, 2}, {19, 4}, {28, 6}, {33, 4}},
+ {{8, 4}, {22, 3}, {8, 26}, {12, 28}},
+ {{3, 10}, {3, 23}, {4, 31}, {11, 31}},
+ {{7, 7}, {21, 7}, {1, 37}, {19, 26}},
+ {{5, 10}, {19, 10}, {15, 25}, {23, 25}}, //30
+ {{13, 3}, {2, 29}, {42, 1}, {23, 28}},
+ {{17, 0}, {10, 23}, {10, 35}, {19, 35}},
+ {{17, 1}, {14, 21}, {29, 19}, {11, 46}},
+ {{13, 6}, {14, 23}, {44, 7}, {59, 1}},
+ {{12, 7}, {12, 26}, {39, 14}, {22, 41}}, //35
+ {{6, 14}, {6, 34}, {46, 10}, {2, 64}},
+ {{17, 4}, {29, 14}, {49, 10}, {24, 46}},
+ {{4, 18}, {13, 32}, {48, 14}, {42, 32}},
+ {{20, 4}, {40, 7}, {43, 22}, {10, 67}},
+ {{19, 6}, {18, 31}, {34, 34}, {20, 61}}, //40
+}
+
+var align = [41][2]int{
+ {0, 0},
+ {0, 0}, {18, 0}, {22, 0}, {26, 0}, {30, 0}, // 1- 5
+ {34, 0}, {22, 38}, {24, 42}, {26, 46}, {28, 50}, // 6-10
+ {30, 54}, {32, 58}, {34, 62}, {26, 46}, {26, 48}, //11-15
+ {26, 50}, {30, 54}, {30, 56}, {30, 58}, {34, 62}, //16-20
+ {28, 50}, {26, 50}, {30, 54}, {28, 54}, {32, 58}, //21-25
+ {30, 58}, {34, 62}, {26, 50}, {30, 54}, {26, 52}, //26-30
+ {30, 56}, {34, 60}, {30, 58}, {34, 62}, {30, 54}, //31-35
+ {24, 50}, {28, 54}, {32, 58}, {26, 54}, {30, 58}, //35-40
+}
+
+var versionPattern = [41]int{
+ 0,
+ 0, 0, 0, 0, 0, 0,
+ 0x07c94, 0x085bc, 0x09a99, 0x0a4d3, 0x0bbf6, 0x0c762, 0x0d847, 0x0e60d,
+ 0x0f928, 0x10b78, 0x1145d, 0x12a17, 0x13532, 0x149a6, 0x15683, 0x168c9,
+ 0x177ec, 0x18ec4, 0x191e1, 0x1afab, 0x1b08e, 0x1cc1a, 0x1d33f, 0x1ed75,
+ 0x1f250, 0x209d5, 0x216f0, 0x228ba, 0x2379f, 0x24b0b, 0x2542e, 0x26a64,
+ 0x27541, 0x28c69,
+}
+
+func main() {
+ fmt.Printf("\t{},\n")
+ for i := 1; i <= 40; i++ {
+ apos := align[i][0] - 2
+ if apos < 0 {
+ apos = 100
+ }
+ astride := align[i][1] - align[i][0]
+ if astride < 1 {
+ astride = 100
+ }
+ fmt.Printf("\t{%v, %v, %v, %#x, [4]level{{%v, %v}, {%v, %v}, {%v, %v}, {%v, %v}}}, // %v\n",
+ apos, astride, capacity[i].words,
+ versionPattern[i],
+ eccTable[i][0][0]+eccTable[i][0][1],
+ float64(capacity[i].ec[0])/float64(eccTable[i][0][0]+eccTable[i][0][1]),
+ eccTable[i][1][0]+eccTable[i][1][1],
+ float64(capacity[i].ec[1])/float64(eccTable[i][1][0]+eccTable[i][1][1]),
+ eccTable[i][2][0]+eccTable[i][2][1],
+ float64(capacity[i].ec[2])/float64(eccTable[i][2][0]+eccTable[i][2][1]),
+ eccTable[i][3][0]+eccTable[i][3][1],
+ float64(capacity[i].ec[3])/float64(eccTable[i][3][0]+eccTable[i][3][1]),
+ i,
+ )
+ }
+}