feat(icon)+fix(audio): 앱 아이콘 적용 + 트레이 아이콘 + 마이크 테스트 조기 종료 수정
Some checks failed
Build macOS / Build & Package (macOS) (push) Failing after 5s
Build macOS / Build & Package (macOS)-1 (push) Failing after 5s

- 앱 아이콘: icon.svg 마스터(d3ro 브랜드 — 메탈 섀시+오렌지 웨이브) → png/ico
  생성 스크립트(generate-icons.mjs, sharp) + electron-builder win/mac 연결
- 트레이: createEmpty() 빈 아이콘 → 실제 앱 아이콘 (getAppIconPath)
- 마이크 테스트: 초기 무음 level:0을 종료로 오인하던 조기 종료 버그 —
  AUDIO.TEST_LEVEL에 done 플래그 신설(SSOT), STOP 버튼이 실제 캡처 중지,
  testDevice 실패 시 상태 롤백
This commit is contained in:
Yun Chan 2026-07-21 19:00:23 +09:00
parent 26b3fd1f63
commit cbed451209
12 changed files with 184 additions and 11 deletions

View file

@ -0,0 +1,61 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
<!-- D3RO Voice 앱 아이콘 — 정밀 계측기 정체성: 메탈 섀시 + 다크 글래스 + 앰버 포스포 웨이브
색상 SSOT: d3roPalette (accent #f25b29 / light #ff7a4d / chassis #242528 / crtGlass #050605) -->
<defs>
<linearGradient id="chassis" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#35363a"/>
<stop offset="0.5" stop-color="#242528"/>
<stop offset="1" stop-color="#18191b"/>
</linearGradient>
<linearGradient id="glass" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#101113"/>
<stop offset="1" stop-color="#050605"/>
</linearGradient>
<linearGradient id="bar" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#ff7a4d"/>
<stop offset="1" stop-color="#f25b29"/>
</linearGradient>
<linearGradient id="topSheen" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#ffffff" stop-opacity="0.10"/>
<stop offset="1" stop-color="#ffffff" stop-opacity="0"/>
</linearGradient>
<filter id="glow" x="-60%" y="-60%" width="220%" height="220%">
<feGaussianBlur stdDeviation="30"/>
</filter>
<clipPath id="glassClip">
<rect x="88" y="88" width="848" height="848" rx="176"/>
</clipPath>
</defs>
<!-- 메탈 섀시 -->
<rect x="16" y="16" width="992" height="992" rx="230" fill="url(#chassis)"/>
<!-- 섀시 상단 하이라이트 (inset 촉감) -->
<rect x="20" y="20" width="984" height="984" rx="226" fill="none"
stroke="#ffffff" stroke-opacity="0.10" stroke-width="3"/>
<!-- 다크 글래스 패널 -->
<rect x="88" y="88" width="848" height="848" rx="176" fill="url(#glass)"/>
<rect x="88" y="88" width="848" height="848" rx="176" fill="none"
stroke="#000000" stroke-opacity="0.55" stroke-width="6"/>
<!-- 포스포 글로우 (블러 레이어) -->
<g filter="url(#glow)" opacity="0.55" clip-path="url(#glassClip)">
<rect x="207" y="424.5" width="74" height="175" rx="37" fill="#f25b29"/>
<rect x="341" y="355.5" width="74" height="313" rx="37" fill="#f25b29"/>
<rect x="475" y="282" width="74" height="460" rx="37" fill="#f25b29"/>
<rect x="609" y="355.5" width="74" height="313" rx="37" fill="#f25b29"/>
<rect x="743" y="424.5" width="74" height="175" rx="37" fill="#f25b29"/>
</g>
<!-- 웨이브 바 (cos 분포 5개) -->
<g>
<rect x="207" y="424.5" width="74" height="175" rx="37" fill="url(#bar)"/>
<rect x="341" y="355.5" width="74" height="313" rx="37" fill="url(#bar)"/>
<rect x="475" y="282" width="74" height="460" rx="37" fill="url(#bar)"/>
<rect x="609" y="355.5" width="74" height="313" rx="37" fill="url(#bar)"/>
<rect x="743" y="424.5" width="74" height="175" rx="37" fill="url(#bar)"/>
</g>
<!-- 글래스 상단 반사 -->
<rect x="88" y="88" width="848" height="300" rx="176" fill="url(#topSheen)" clip-path="url(#glassClip)"/>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB