matrix/noah: move RGB Matrix LED config to data driven (#24117)
				
					
				
			This commit is contained in:
		
							parent
							
								
									c70c99367a
								
							
						
					
					
						commit
						a763dd5bbd
					
				| @ -21,4 +21,3 @@ | |||||||
| // rgb matrix setting
 | // rgb matrix setting
 | ||||||
| #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND | #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND | ||||||
| #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA | #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA | ||||||
| #define RGB_MATRIX_LED_COUNT 72 |  | ||||||
|  | |||||||
| @ -74,6 +74,84 @@ | |||||||
|       "solid_splash": true, |       "solid_splash": true, | ||||||
|       "solid_multisplash": true |       "solid_multisplash": true | ||||||
|     }, |     }, | ||||||
|  |     "layout": [ | ||||||
|  |       {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, | ||||||
|  |       {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, | ||||||
|  |       {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, | ||||||
|  |       {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, | ||||||
|  |       {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, | ||||||
|  |       {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, | ||||||
|  |       {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, | ||||||
|  |       {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, | ||||||
|  |       {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4}, | ||||||
|  |       {"matrix": [0, 9], "x": 134, "y": 0, "flags": 4}, | ||||||
|  |       {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4}, | ||||||
|  |       {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4}, | ||||||
|  |       {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4}, | ||||||
|  |       {"matrix": [0, 14], "x": 202, "y": 0, "flags": 1}, | ||||||
|  |       {"matrix": [4, 14], "x": 224, "y": 0, "flags": 4}, | ||||||
|  | 
 | ||||||
|  |       {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, | ||||||
|  |       {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, | ||||||
|  |       {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, | ||||||
|  |       {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, | ||||||
|  |       {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, | ||||||
|  |       {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, | ||||||
|  |       {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, | ||||||
|  |       {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, | ||||||
|  |       {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, | ||||||
|  |       {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, | ||||||
|  |       {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, | ||||||
|  |       {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, | ||||||
|  |       {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, | ||||||
|  |       {"matrix": [1, 13], "x": 205, "y": 16, "flags": 1}, | ||||||
|  |       {"matrix": [4, 11], "x": 224, "y": 16, "flags": 4}, | ||||||
|  | 
 | ||||||
|  |       {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, | ||||||
|  |       {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, | ||||||
|  |       {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, | ||||||
|  |       {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, | ||||||
|  |       {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, | ||||||
|  |       {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, | ||||||
|  |       {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, | ||||||
|  |       {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, | ||||||
|  |       {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, | ||||||
|  |       {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, | ||||||
|  |       {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, | ||||||
|  |       {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4}, | ||||||
|  |       {"matrix": [2, 12], "x": 190, "y": 32, "flags": 4}, | ||||||
|  |       {"x": 207, "y": 24, "flags": 1}, | ||||||
|  |       {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1}, | ||||||
|  |       {"matrix": [4, 12], "x": 224, "y": 32, "flags": 4}, | ||||||
|  | 
 | ||||||
|  |       {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1}, | ||||||
|  |       {"x": 9, "y": 48, "flags": 1}, | ||||||
|  |       {"matrix": [3, 1], "x": 19, "y": 48, "flags": 1}, | ||||||
|  |       {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, | ||||||
|  |       {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, | ||||||
|  |       {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4}, | ||||||
|  |       {"matrix": [3, 5], "x": 78, "y": 48, "flags": 4}, | ||||||
|  |       {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4}, | ||||||
|  |       {"matrix": [3, 7], "x": 108, "y": 48, "flags": 4}, | ||||||
|  |       {"matrix": [3, 8], "x": 123, "y": 48, "flags": 4}, | ||||||
|  |       {"matrix": [3, 9], "x": 138, "y": 48, "flags": 4}, | ||||||
|  |       {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4}, | ||||||
|  |       {"matrix": [3, 11], "x": 168, "y": 48, "flags": 4}, | ||||||
|  |       {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1}, | ||||||
|  |       {"matrix": [3, 13], "x": 209, "y": 48, "flags": 4}, | ||||||
|  |       {"matrix": [4, 13], "x": 224, "y": 48, "flags": 4}, | ||||||
|  | 
 | ||||||
|  |       {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, | ||||||
|  |       {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, | ||||||
|  |       {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, | ||||||
|  |       {"matrix": [4, 4], "x": 95, "y": 64, "flags": 4}, | ||||||
|  |       {"x": 105, "y": 64, "flags": 4}, | ||||||
|  |       {"matrix": [4, 6], "x": 151, "y": 64, "flags": 1}, | ||||||
|  |       {"matrix": [4, 7], "x": 170, "y": 64, "flags": 1}, | ||||||
|  |       {"matrix": [4, 8], "x": 194, "y": 64, "flags": 4}, | ||||||
|  |       {"matrix": [4, 9], "x": 209, "y": 64, "flags": 4}, | ||||||
|  |       {"matrix": [4, 10], "x": 224, "y": 64, "flags": 4} | ||||||
|  |     ], | ||||||
|     "driver": "is31fl3731" |     "driver": "is31fl3731" | ||||||
|   }, |   }, | ||||||
|   "features": { |   "features": { | ||||||
|  | |||||||
| @ -68,139 +68,83 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { | |||||||
|  *   |  |       G location |  *   |  |       G location | ||||||
|  *   |  |       |       B location |  *   |  |       |       B location | ||||||
|  *   |  |       |       | */ |  *   |  |       |       | */ | ||||||
|  |     {0, C1_10,  C2_10,  C4_11}, // RGB101
 | ||||||
|  |     {0, C1_11,  C2_11,  C3_11}, // RGB102
 | ||||||
|  |     {0, C1_12,  C2_12,  C3_12}, // RGB103
 | ||||||
|  |     {0, C1_13,  C2_13,  C3_13}, // RGB104
 | ||||||
|  |     {0, C1_14,  C2_14,  C3_14}, // RGB105
 | ||||||
|  |     {0, C1_15,  C2_15,  C3_15}, // RGB106
 | ||||||
|  |     {0, C1_16,  C2_16,  C3_16}, // RGB107
 | ||||||
|  |     {1, C1_1,   C3_2,   C4_2}, // RGB108
 | ||||||
|  |     {1, C1_2,   C2_2,   C4_3}, // RGB109
 | ||||||
|  |     {1, C1_3,   C2_3,   C3_3}, // RGB1010
 | ||||||
|  |     {1, C1_4,   C2_4,   C3_4}, // RGB1011
 | ||||||
|  |     {1, C1_5,   C2_5,   C3_5}, // RGB1012
 | ||||||
|  |     {1, C1_6,   C2_6,   C3_6}, // RGB1013
 | ||||||
|  |     {1, C1_7,   C2_7,   C3_7}, // RGB1015
 | ||||||
|  |     {1, C1_8,   C2_8,   C3_8}, // RGB1016
 | ||||||
| 
 | 
 | ||||||
| // left CB
 |     {0, C1_9,   C3_10,  C4_10}, // RGB201
 | ||||||
|     {0, C1_9,   C3_10,  C4_10}, |     {0, C5_9,   C4_9,   C6_9}, // RGB202
 | ||||||
|     {0, C1_10,  C2_10,  C4_11}, |     {0, C9_9,   C8_9,   C7_9}, // RGB203
 | ||||||
|     {0, C1_11,  C2_11,  C3_11}, |     {0, C9_10,  C8_10,  C7_10}, // RGB204
 | ||||||
|     {0, C1_12,  C2_12,  C3_12}, |     {0, C9_11,  C8_11,  C7_11}, // RGB205
 | ||||||
|     {0, C1_13,  C2_13,  C3_13}, |     {0, C9_12,  C8_12,  C7_12}, // RGB206
 | ||||||
|     {0, C1_14,  C2_14,  C3_14}, |     {0, C9_13,  C8_13,  C7_13}, // RGB207
 | ||||||
|     {0, C1_15,  C2_15,  C3_15}, |     {1, C5_1,   C4_1,   C6_1}, // RGB208
 | ||||||
|     {0, C1_16,  C2_16,  C3_16}, |     {1, C9_1,   C8_1,   C7_1}, // RGB209
 | ||||||
|  |     {1, C9_2,   C8_2,   C7_2}, // RGB2010
 | ||||||
|  |     {1, C9_3,   C8_3,   C7_3}, // RGB2011
 | ||||||
|  |     {1, C9_4,   C8_4,   C7_4}, // RGB2012
 | ||||||
|  |     {1, C9_5,   C8_5,   C7_5}, // RGB2013
 | ||||||
|  |     {1, C9_6,   C8_6,   C7_6}, // RGB2014
 | ||||||
|  |     {1, C5_8,   C4_8,   C6_8}, // RGB2015
 | ||||||
| 
 | 
 | ||||||
|     {0, C5_9,   C4_9,   C6_9}, |     {0, C9_1,   C8_1,   C7_1}, // RGB301
 | ||||||
|     {0, C5_16,  C4_16,  C6_16}, |     {0, C1_1,   C3_2,   C4_2}, // RGB302
 | ||||||
|  |     {0, C5_1,   C4_1,   C6_1}, // RGB303
 | ||||||
|  |     {0, C5_16,  C4_16,  C6_16}, // RGB304
 | ||||||
|  |     {0, C1_2,   C2_2,   C4_3}, // RGB305
 | ||||||
|  |     {0, C9_14,  C8_14,  C7_14}, // RGB306
 | ||||||
|  |     {0, C9_15,  C8_15,  C6_14}, // RGB307
 | ||||||
|  |     {0, C9_16,  C7_15,  C6_15}, // RGB308
 | ||||||
|  |     {1, C1_10,  C2_10,  C4_11}, // RGB309
 | ||||||
|  |     {1, C1_11,  C2_11,  C3_11}, // RGB3010
 | ||||||
|  |     {1, C1_12,  C2_12,  C3_12}, // RGB3011
 | ||||||
|  |     {1, C1_13,  C2_13,  C3_13}, // RGB3012
 | ||||||
|  |     {1, C1_14,  C2_14,  C3_14}, // RGB3014
 | ||||||
|  |     {1, C9_7,   C8_7,   C6_6}, // RGB3013-2
 | ||||||
|  |     {1, C1_15,  C2_15,  C3_15}, // RGB3013
 | ||||||
|  |     {1, C9_8,   C7_7,   C6_7}, // RGB3015
 | ||||||
| 
 | 
 | ||||||
|     {0, C9_9,   C8_9,   C7_9}, |     {0, C9_3,   C8_3,   C7_3}, // RGB401-2
 | ||||||
|     {0, C9_10,  C8_10,  C7_10}, |     {0, C9_2,   C8_2,   C7_2}, // RGB401
 | ||||||
|     {0, C9_11,  C8_11,  C7_11}, |     {0, C9_4,   C8_4,   C7_4}, // RGB4014
 | ||||||
|     {0, C9_12,  C8_12,  C7_12}, |     {0, C9_5,   C8_5,   C7_5}, // RGB402
 | ||||||
|     {0, C9_13,  C8_13,  C7_13}, |     {0, C9_6,   C8_6,   C7_6}, // RGB403
 | ||||||
|     {0, C9_14,  C8_14,  C7_14}, |     {0, C1_3,   C2_3,   C3_3}, // RGB404
 | ||||||
|     {0, C9_15,  C8_15,  C6_14}, |     {0, C1_4,   C2_4,   C3_4}, // RGB405
 | ||||||
|     {0, C9_16,  C7_15,  C6_15}, |     {0, C1_6,   C2_6,   C3_6}, // RGB406
 | ||||||
|  |     {0, C1_5,   C2_5,   C3_5}, // RGB407
 | ||||||
|  |     {1, C1_9,   C3_10,  C4_10}, // RGB408
 | ||||||
|  |     {1, C5_9,   C4_9,   C6_9},  // RGB409
 | ||||||
|  |     {1, C9_9,   C8_9,   C7_9}, // RGB4010
 | ||||||
|  |     {1, C9_10,  C8_10,  C7_10}, // RGB4011
 | ||||||
|  |     {1, C9_11,  C8_11,  C7_11}, // RGB4012
 | ||||||
|  |     {1, C5_16,  C4_16,  C6_16}, // RGB4013
 | ||||||
|  |     {1, C1_16,  C2_16,  C3_16}, // RGB4015
 | ||||||
| 
 | 
 | ||||||
| // left CA
 |     {0, C9_7,   C8_7,   C6_6}, // RGB501
 | ||||||
|     {0, C1_1,   C3_2,   C4_2}, |     {0, C9_8,   C7_7,   C6_7}, // RGB502
 | ||||||
|     {0, C1_2,   C2_2,   C4_3}, |     {0, C5_8,   C4_8,   C6_8}, // RGB503
 | ||||||
|     {0, C1_3,   C2_3,   C3_3}, |     {0, C1_8,   C2_8,   C3_8}, // RGB506
 | ||||||
|     {0, C1_4,   C2_4,   C3_4}, |     {0, C1_7,   C2_7,   C3_7}, // RGB506-2
 | ||||||
|     {0, C1_5,   C2_5,   C3_5}, |     {1, C9_12,  C8_12,  C7_12}, // RGB507
 | ||||||
|     {0, C1_6,   C2_6,   C3_6}, |     {1, C9_13,  C8_13,  C7_13}, // RGB508
 | ||||||
|     {0, C1_7,   C2_7,   C3_7}, |     {1, C9_14,  C8_14,  C7_14}, // RGB5010
 | ||||||
|     {0, C1_8,   C2_8,   C3_8}, |     {1, C9_15,  C8_15,  C6_14}, // RGB5011
 | ||||||
| 
 |     {1, C9_16,  C7_15,  C6_15}, // RGB5012
 | ||||||
|     {0, C5_1,   C4_1,   C6_1}, |  | ||||||
|     {0, C5_8,   C4_8,   C6_8}, |  | ||||||
| 
 |  | ||||||
|     {0, C9_1,   C8_1,   C7_1}, |  | ||||||
|     {0, C9_2,   C8_2,   C7_2}, |  | ||||||
|     {0, C9_3,   C8_3,   C7_3}, |  | ||||||
|     {0, C9_4,   C8_4,   C7_4}, |  | ||||||
|     {0, C9_5,   C8_5,   C7_5}, |  | ||||||
|     {0, C9_6,   C8_6,   C7_6}, |  | ||||||
|     {0, C9_7,   C8_7,   C6_6}, |  | ||||||
|     {0, C9_8,   C7_7,   C6_7}, |  | ||||||
| 
 |  | ||||||
| // right CA
 |  | ||||||
|     {1, C1_1,   C3_2,   C4_2}, |  | ||||||
|     {1, C1_2,   C2_2,   C4_3}, |  | ||||||
|     {1, C1_3,   C2_3,   C3_3}, |  | ||||||
|     {1, C1_4,   C2_4,   C3_4}, |  | ||||||
|     {1, C1_5,   C2_5,   C3_5}, |  | ||||||
|     {1, C1_6,   C2_6,   C3_6}, |  | ||||||
|     {1, C1_7,   C2_7,   C3_7}, |  | ||||||
|     {1, C1_8,   C2_8,   C3_8}, |  | ||||||
| 
 |  | ||||||
|     {1, C5_1,   C4_1,   C6_1}, |  | ||||||
|     {1, C5_8,   C4_8,   C6_8}, |  | ||||||
| 
 |  | ||||||
|     {1, C9_1,   C8_1,   C7_1}, |  | ||||||
|     {1, C9_2,   C8_2,   C7_2}, |  | ||||||
|     {1, C9_3,   C8_3,   C7_3}, |  | ||||||
|     {1, C9_4,   C8_4,   C7_4}, |  | ||||||
|     {1, C9_5,   C8_5,   C7_5}, |  | ||||||
|     {1, C9_6,   C8_6,   C7_6}, |  | ||||||
|     {1, C9_7,   C8_7,   C6_6}, |  | ||||||
|     {1, C9_8,   C7_7,   C6_7}, |  | ||||||
| // right CB
 |  | ||||||
|     {1, C1_9,   C3_10,  C4_10}, |  | ||||||
|     {1, C1_10,  C2_10,  C4_11}, |  | ||||||
|     {1, C1_11,  C2_11,  C3_11}, |  | ||||||
|     {1, C1_12,  C2_12,  C3_12}, |  | ||||||
|     {1, C1_13,  C2_13,  C3_13}, |  | ||||||
|     {1, C1_14,  C2_14,  C3_14}, |  | ||||||
|     {1, C1_15,  C2_15,  C3_15}, |  | ||||||
|     {1, C1_16,  C2_16,  C3_16}, |  | ||||||
| 
 |  | ||||||
|     {1, C5_9,   C4_9,   C6_9}, |  | ||||||
|     {1, C5_16,  C4_16,  C6_16}, |  | ||||||
| 
 |  | ||||||
|     {1, C9_9,   C8_9,   C7_9}, |  | ||||||
|     {1, C9_10,  C8_10,  C7_10}, |  | ||||||
|     {1, C9_11,  C8_11,  C7_11}, |  | ||||||
|     {1, C9_12,  C8_12,  C7_12}, |  | ||||||
|     {1, C9_13,  C8_13,  C7_13}, |  | ||||||
|     {1, C9_14,  C8_14,  C7_14}, |  | ||||||
|     {1, C9_15,  C8_15,  C6_14}, |  | ||||||
|     {1, C9_16,  C7_15,  C6_15}, |  | ||||||
| }; | }; | ||||||
| 
 |  | ||||||
| led_config_t g_led_config = { |  | ||||||
|     { |  | ||||||
|         {  1,  2,      3,      4,      5,      6,   7,  36,     37,     38,      39,   40, NO_LED, 41}, |  | ||||||
|         {  0,  8,     10,     11,     12,     13,  14,  44,     46,     47,      48,   49,     50, 51}, |  | ||||||
|         { 30, 18,     26,      9,     19,     15,  16,  17,     55,     56,      57,   58,     59, 60}, |  | ||||||
|         { 29, 31,     32,     33,     20,     21,  23,  22,     54,     62,      64,   65,     66, 63}, |  | ||||||
|         { 34, 35,     27,     25,     67,     68,  69,  70,     71,     61,      53,   45,     42, 43}, |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|         {  0, 16},{  0,  0},{ 15,  0},{ 30,  0},{ 45,  0},{ 60,  0},{ 75,  0},{ 90,  0}, |  | ||||||
|         { 20, 16},{ 42, 32}, |  | ||||||
|         { 45, 16},{ 50, 16},{ 65, 16},{ 80, 16},{ 95, 16},{ 70, 32},{ 84, 32},{ 98, 32}, |  | ||||||
| 
 |  | ||||||
|         { 14, 32},{ 56, 32},{ 65, 48},{ 80, 48},{110, 48},{ 95, 48},{112, 64},{100, 64}, |  | ||||||
|         { 42, 32},{ 38, 64}, |  | ||||||
|         {  0, 32},{ 10, 48},{  0, 48},{ 20, 48},{ 35, 48},{ 50, 48},{  0, 64},{ 19, 64}, |  | ||||||
| 
 |  | ||||||
|         {105,  0},{120,  0},{135,  0},{150,  0},{165,  0},{180,  0},{202,  0},{224,  0}, |  | ||||||
|         {110, 16},{224, 16}, |  | ||||||
|         {125, 16},{140, 16},{155, 16},{172, 16},{187, 16},{202, 16},{210, 32},{224, 32}, |  | ||||||
| 
 |  | ||||||
|         {125, 48},{112, 32},{126, 32},{140, 32},{154, 32},{168, 32},{182, 32},{224, 48}, |  | ||||||
|         {140, 48},{200, 48}, |  | ||||||
|         {155, 48},{170, 48},{185, 48},{150, 64},{173, 64},{195, 64},{210, 64},{224, 64} |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|         1, 1, 4, 4, 4, 4, 4, 4, |  | ||||||
|         4, 4, |  | ||||||
|         4, 4, 4, 4, 4, 4, 4, 4, |  | ||||||
| 
 |  | ||||||
|         4, 4, 4, 4, 4, 4, 4, 4, |  | ||||||
|         4, 4, |  | ||||||
|         1, 1, 1, 4, 4, 4, 1, 1, |  | ||||||
| 
 |  | ||||||
|         4, 4, 4, 4, 4, 4, 1, 1, |  | ||||||
|         4, 1, |  | ||||||
|         4, 4, 4, 4, 4, 4, 4, 1, |  | ||||||
| 
 |  | ||||||
|         4, 4, 4, 4, 4, 4, 4, 1, |  | ||||||
|         4, 4, |  | ||||||
|         4, 4, 4, 1, 1, 1, 1, 1, |  | ||||||
|     } |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| bool process_record_kb(uint16_t keycode, keyrecord_t *record) { | bool process_record_kb(uint16_t keycode, keyrecord_t *record) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user