ข้ามไปยังเนื้อหา

แสงไฟ

ทรัพยากร Lighting ทำงานร่วมกับ canvas และเอฟเฟกต์ที่กำลังเล่นอยู่ ที่นี่คุณสามารถดูเอฟเฟกต์ปัจจุบัน เปลี่ยนเอฟเฟกต์ เปลี่ยนพรีเซ็ตของเอฟเฟกต์ หรือวนดูเอฟเฟกต์ทั้งหมดที่ผู้ใช้ติดตั้งไว้ในปัจจุบัน

เมธอดEndpoint
GETlighting
PATCHlighting/global_brightness
PATCHlighting/enabled
GETlighting/effects
GETlighting/effect/:id
GETlighting/effect/:id/presets
PATCHlighting/effect/:id/presets
POSTlighting/effect/:id/apply
GETlighting/next
POSTlighting/next
GETlighting/previous
POSTlighting/previous
POSTlighting/shuffle

ดึงข้อมูลเกี่ยวกับเอฟเฟกต์ที่กำลังเล่นอยู่ ความสว่างรวม (Global Brightness) และสถานะการเล่นของ Canvas คุณสามารถใช้ลิงก์ self เพื่อรับข้อมูลเพิ่มเติมเกี่ยวกับเอฟเฟกต์นี้ได้หากต้องการ

Terminal window
curl http://localhost:16038/api/v1/lighting
{
"api_version": "1.0",
"data": {
"attributes": {
"enabled": true,
"global_brightness": 50,
"name": "Neon Shift"
},
"id": "Neon Shift.html",
"links": {
"self": "/api/v1/lighting/effects/Neon Shift.html"
},
"type": "current_effect"
},
"id": 6,
"method": "/api/v1/lighting",
"params": {},
"status": "ok"
}

ตั้งค่าความสว่างรวม (Global Brightness) ปัจจุบัน

Terminal window
curl -X PATCH -d "{\"global_brightness\":73}" http://localhost:16038/api/v1/lighting/global_brightness
{
"api_version": "1.0",
"data": {
"attributes": {
"enabled": true,
"global_brightness": 73
},
"type": "effect"
},
"id": 3,
"method": "/api/v1/lighting/global_brightness",
"params": {
"body": {
"global_brightness": 73
}
},
"status": "ok"
}

กำหนดว่า Canvas ทำงานอยู่ในขณะนี้หรือไม่ เมื่อปิดใช้งาน อุปกรณ์ทั้งหมดจะได้รับสีดำ (#000000) สำหรับคำขอสีทั้งหมด

Terminal window
curl -X PATCH -d "{\"enabled\":false}" http://localhost:16038/api/v1/lighting/enabled
{
"api_version": "1.0",
"data": {
"attributes": {
"enabled": false,
"global_brightness": 73
},
"type": "effect"
},
"id": 4,
"method": "/api/v1/lighting/enabled",
"params": {
"body": {
"enabled": false
}
},
"status": "ok"
}

ส่งคืนรายการเอฟเฟกต์ทั้งหมดที่ผู้ใช้ติดตั้งไว้

  • เนื่องจาก endpoint นี้อาจมีขนาดข้อมูลตอบกลับใหญ่ จึงควรระมัดระวังและลดจำนวนครั้งในการเรียกใช้
Terminal window
curl http://localhost:16038/api/v1/lighting/effects
{
"apiVersion": "1.0",
"data": {
"items": [
{
"attributes": {
"name": " Wolfenstein II: TNC"
},
"id": "-MQtFeX-o2hMR6sv8aFr",
"links": {
"apply": "/api/v1/lighting/effects/-MQtFeX-o2hMR6sv8aFr/apply",
"self": "/api/v1/lighting/effects/-MQtFeX-o2hMR6sv8aFr"
},
"type": "effect"
},
{
"attributes": {
"name": "4th Dimension"
},
"id": "-N-YhDDs2ZIGJ42azDgJ",
"links": {
"apply": "/api/v1/lighting/effects/-N-YhDDs2ZIGJ42azDgJ/apply",
"self": "/api/v1/lighting/effects/-N-YhDDs2ZIGJ42azDgJ"
},
"type": "effect"
},
...
],
"type": "effects"
},
"id": 7,
"method": "/api/v1/lighting/effects",
"params": {},
"status": "ok"
}

ส่งคืนข้อมูลโดยละเอียดเกี่ยวกับเอฟเฟกต์ที่ระบุ

  • หากไม่มี effect id ที่ระบุ endpoint นี้จะส่งคืนข้อผิดพลาด 404
Terminal window
curl http://localhost:16038/api/v1/lighting/effects/-Mg1qujV9F4rabJxlSOS
{
"api_version": "1.0",
"data": {
"attributes": {
"description": "A colorful drizzle of softly moving lines.",
"developer_effect": false,
"image": "https://imagedelivery.net/uPA_EtOZxmT3DaI0aRG2mQ/-Mg1qujV9F4rabJxlSOS/main/dashcard",
"name": "Drizzle",
"parameters": {
"backColorMode": {
"label": "Background Color Mode",
"type": "combobox",
"value": "Static"
},
"backHue": {
"label": "Background Color (Static)",
"type": "color",
"value": "#320056"
},
"confHue": {
"label": "Line Color (Static)",
"type": "color",
"value": "#ff0000"
},
"confLength": {
"label": "Line Length",
"type": "number",
"value": 70
}
},
"publisher": "SignalRGB",
"uses_audio": false,
"uses_input": false,
"uses_meters": false,
"uses_video": false
},
"id": "-Mg1qujV9F4rabJxlSOS",
"links": {
"apply": "/api/v1/lighting/effects/-Mg1qujV9F4rabJxlSOS/apply",
"self": "/api/v1/lighting/effects/-Mg1qujV9F4rabJxlSOS"
},
"type": "effect"
},
"id": 1,
"method": "/api/v1/lighting/effects/-Mg1qujV9F4rabJxlSOS",
"params": {
"id": "-Mg1qujV9F4rabJxlSOS"
},
"status": "ok"
}
{
"api_version": "1.0",
"errors": [
{
"code": "404",
"detail": "The requested effect was not found",
"title": "Not Found"
}
],
"id": 2,
"method": "/api/v1/lighting/effects/-Mg1qujV9F4rabJxlSO",
"params": {
"id": "-Mg1qujV9F4rabJxlSO"
},
"status": "error"
}

ส่งคืนรายการพรีเซ็ตที่มีให้สำหรับเอฟเฟกต์นี้

  • หากไม่มี effect id ที่ระบุ endpoint นี้จะส่งคืนข้อผิดพลาด 404
Terminal window
curl http://localhost:16038/api/v1/lighting/effects/-Mg1qujV9F4rabJxlSOS/presets
{
"api_version": "1.0",
"data": {
"id": "-Mg1qujV9F4rabJxlSOS",
"items": [
{
"id": "My Fancy Preset 1",
"type": "preset"
},
{
"id": "My Other Preset",
"type": "preset"
}
],
"type": "presets"
},
"id": 1,
"method": "/api/v1/lighting/effects/-Mg1qujV9F4rabJxlSOS/presets",
"params": {
"id": "-Mg1qujV9F4rabJxlSOS"
},
"status": "ok"
}
{
"api_version": "1.0",
"errors": [
{
"code": "404",
"detail": "The requested effect was not found",
"title": "Not Found"
}
],
"id": 4,
"method": "/api/v1/lighting/effects/-Mg1qujV9F4rabJxlSS/presets",
"params": {
"id": "-Mg1qujV9F4rabJxlSS"
},
"status": "error"
}

ใช้พรีเซ็ตเอฟเฟกต์เป้าหมายสำหรับ effect id ที่ระบุ

  • หากไม่มี effect id หรือพรีเซ็ตที่ระบุ endpoint นี้จะส่งคืนข้อผิดพลาด 404
Terminal window
curl -X PATCH -d "{\"preset\":\"My Fancy Preset 1\"}" http://localhost:16038/api/v1/lighting/effects/-Mg1qujV9F4rabJxlSOS/presets

ใช้ effect id ที่ระบุ หากมีอยู่

  • หากไม่มี effect id ที่ระบุ endpoint นี้จะส่งคืนข้อผิดพลาด 404
Terminal window
curl -X POST http://localhost:16038/api/v1/lighting/effects/-Mg1qujV9F4rabJxlSOS/apply
{
"api_version": "1.0",
"id": 3,
"method": "/api/v1/lighting/effects/-Mg1qujV9F4rabJxlSOS/apply",
"params": {
"id": "-Mg1qujV9F4rabJxlSOS"
},
"status": "ok"
}
{
"api_version": "1.0",
"errors": [
{
"code": "404",
"detail": "The requested effect was not found",
"title": "Not Found"
}
],
"id": 4,
"method": "/api/v1/lighting/effects/-Mg1qujV9F4rabJxlSS/apply",
"params": {
"id": "-Mg1qujV9F4rabJxlSS"
},
"status": "error"
}

ส่งคืนข้อมูลเกี่ยวกับเอฟเฟกต์ถัดไปในประวัติ หากมี หากประวัติเอฟเฟกต์ไม่มีเอฟเฟกต์ถัดไป endpoint นี้จะส่งคืนข้อผิดพลาด 409

Terminal window
curl http://localhost:16038/api/v1/lighting/next
{
"api_version": "1.0",
"data": {
"attributes": {
"name": "Drizzle"
},
"id": "-Mg1qujV9F4rabJxlSOS",
"links": {
"self": "/api/v1/lighting/effects/-Mg1qujV9F4rabJxlSOS"
},
"type": "effect"
},
"id": 5,
"method": "/api/v1/lighting/next",
"params": {},
"status": "ok"
}
{
"api_version": "1.0",
"errors": [
{
"code": "409",
"detail": "Effect History doesn't contain a next effect",
"title": "No Next Effect"
}
],
"id": 24,
"method": "/api/v1/lighting/next",
"params": {},
"status": "error"
}// Click to edit code

จำลองการทำงานแบบกรอไปข้างหน้า (Fast Forward) ของสื่อกับเอฟเฟกต์ที่กำลังเล่นอยู่ หากไม่มีเอฟเฟกต์ถัดไปในประวัติ SignalRGB จะสุ่มเลือกเอฟเฟกต์ที่ติดตั้งไว้ซึ่งไม่ใช่เอฟเฟกต์ผสานรวมเกมและไม่ใช่เอฟเฟกต์สำหรับนักพัฒนา

ส่งคืนเอฟเฟกต์ที่เพิ่งถูกนำมาใช้

Terminal window
curl -X POST http://localhost:16038/api/v1/lighting/next
{
"api_version": "1.0",
"data": {
"attributes": {
"name": "Drizzle"
},
"id": "-Mg1qujV9F4rabJxlSOS",
"links": {
"self": "/api/v1/lighting/effects/-Mg1qujV9F4rabJxlSOS"
},
"type": "effect"
},
"id": 5,
"method": "/api/v1/lighting/next",
"params": {},
"status": "ok"
}
{
"api_version": "1.0",
"errors": [
{
"code": "409",
"detail": "Effect History doesn't contain a next effect",
"title": "No Next Effect"
}
],
"id": 24,
"method": "/api/v1/lighting/next",
"params": {},
"status": "error"
}

ส่งคืนข้อมูลเกี่ยวกับเอฟเฟกต์ก่อนหน้าในประวัติ หากมี หากประวัติเอฟเฟกต์ไม่มีเอฟเฟกต์ก่อนหน้า endpoint นี้จะส่งคืนข้อผิดพลาด 409

Terminal window
curl http://localhost:16038/api/v1/lighting/previous
{
"api_version": "1.0",
"data": {
"attributes": {
"name": "Gradient Generator"
},
"id": "-MA7wCKkv_359cmwPOEK",
"links": {
"self": "/api/v1/lighting/effects/-MA7wCKkv_359cmwPOEK"
},
"type": "effect"
},
"id": 7,
"method": "/api/v1/lighting/previous",
"params": {},
"status": "ok"
}
{
"api_version": "1.0",
"errors": [
{
"code": "409",
"detail": "Effect History doesn't contain a previous effect",
"title": "No Previous Effect"
}
],
"id": 15,
"method": "/api/v1/lighting/previous",
"params": {},
"status": "error"
}

จำลองการทำงานแบบกรอย้อนกลับ (Rewind) ของสื่อกับเอฟเฟกต์ที่กำลังเล่นอยู่ หากไม่มีเอฟเฟกต์ก่อนหน้าในประวัติ จะส่งคืนข้อผิดพลาด 409

ส่งคืนเอฟเฟกต์ที่เพิ่งถูกนำมาใช้

Terminal window
curl -X POST http://localhost:16038/api/v1/lighting/previous
{
"api_version": "1.0",
"data": {
"attributes": {
"name": "Gradient Generator"
},
"id": "-MA7wCKkv_359cmwPOEK",
"links": {
"self": "/api/v1/lighting/effects/-MA7wCKkv_359cmwPOEK"
},
"type": "effect"
},
"id": 7,
"method": "/api/v1/lighting/previous",
"params": {},
"status": "ok"
}
{
"api_version": "1.0",
"errors": [
{
"code": "409",
"detail": "Effect History doesn't contain a previous effect",
"title": "No Previous Effect"
}
],
"id": 15,
"method": "/api/v1/lighting/previous",
"params": {},
"status": "error"
}

จำลองการทำงานแบบสุ่มเล่น (Shuffle) ของสื่อกับเอฟเฟกต์ที่กำลังเล่นอยู่ SignalRGB จะสุ่มเลือกเอฟเฟกต์ที่ติดตั้งไว้ซึ่งไม่ใช่เอฟเฟกต์ผสานรวมเกมและไม่ใช่เอฟเฟกต์สำหรับนักพัฒนา

ส่งคืนเอฟเฟกต์ที่เพิ่งถูกนำมาใช้

Terminal window
curl -X POST http://localhost:16038/api/v1/lighting/shuffle
{
"api_version": "1.0",
"data": {
"attributes": {
"name": "Borealis"
},
"id": "-N1LC8HkC4fZ6IlFA30j",
"links": {
"self": "/api/v1/lighting/effects/-N1LC8HkC4fZ6IlFA30j"
},
"type": "effect"
},
"id": 6,
"method": "/api/v1/lighting/shuffle",
"params": {},
"status": "ok"
}