feat(ui/views/App/Calls/Incall): supports vu meter
|
|
@ -6,9 +6,9 @@
|
|||
<defs></defs>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="camera_off">
|
||||
<path d="M20,40.3145406 C31.045695,40.3145406 40,31.3602356 40,20.3145406 C40,9.26884559 31.045695,0.314540582 20,0.314540582 C8.954305,0.314540582 0,9.26884559 0,20.3145406 C0,31.3602356 8.954305,40.3145406 20,40.3145406 Z" fill="#D0D8DE"></path>
|
||||
<path d="M20,40.3145406 C31.045695,40.3145406 40,31.3602356 40,20.3145406 C40,9.26884559 31.045695,0.314540582 20,0.314540582 C8.954305,0.314540582 0,9.26884559 0,20.3145406 C0,31.3602356 8.954305,40.3145406 20,40.3145406 Z" fill="#96A6B1"></path>
|
||||
<path d="M9,30.2917175 L28.1397841,11.3145406 L9,30.2917175 Z" stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<polygon stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" points="24.8941594 26.3145406 24.8941594 21.6287855 30.7045152 25.9910443 30.7045152 14.6377075 24.8941594 19.0006251 24.8941594 14.3145406 9 14.3145406 9 26.167946 9.17456154 26.3145406"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
|
@ -6,7 +6,7 @@
|
|||
<defs></defs>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="camera_on">
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" fill="#D0D8DE"></path>
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" fill="#96A6B1"></path>
|
||||
<polygon stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" points="24.8941594 26 24.8941594 21.3142449 30.7045152 25.6765037 30.7045152 14.3231669 24.8941594 18.6860845 24.8941594 14 9 14 9 25.8534054 9.17456154 26"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 938 B After Width: | Height: | Size: 938 B |
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>chat_on</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="chat_on">
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" fill="#4B5964"></path>
|
||||
<g id="chat_icon" transform="translate(11.000000, 11.000000)" stroke-width="1.5" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M6.45514411,16.6653354 C6.45490676,16.6653354 3.61717822,19.6701782 0,18.8619676 C0,18.8619676 3.54193902,17.8269451 2.73827987,14.6957526 L2.71240897,14.5508779 C1.03459842,13.0064191 0,10.8924366 0,8.55995464 C0,3.83252839 4.25137115,0 9.49414345,0 C14.7371531,0 18.9880496,3.83252839 18.9880496,8.55995464 C18.9880496,13.2873809 14.7371531,17.1196718 9.49414345,17.1196718 C8.43082597,17.1196718 7.40904432,16.9626847 6.45466941,16.6719854 L6.45514411,16.6653354 L6.45514411,16.6653354 Z M5.07378077,7.04494575 L13.889822,7.04494575 L5.07378077,7.04494575 Z M5.07378077,10.0749635 L13.889822,10.0749635 L5.07378077,10.0749635 Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.5 KiB |
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>chat_off</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="chat_off">
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" fill="#96A6B1"></path>
|
||||
<g id="chat_icon" transform="translate(11.000000, 11.000000)" stroke-width="1.5" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M6.45514411,16.6653354 C6.45490676,16.6653354 3.61717822,19.6701782 0,18.8619676 C0,18.8619676 3.54193902,17.8269451 2.73827987,14.6957526 L2.71240897,14.5508779 C1.03459842,13.0064191 0,10.8924366 0,8.55995464 C0,3.83252839 4.25137115,0 9.49414345,0 C14.7371531,0 18.9880496,3.83252839 18.9880496,8.55995464 C18.9880496,13.2873809 14.7371531,17.1196718 9.49414345,17.1196718 C8.43082597,17.1196718 7.40904432,16.9626847 6.45466941,16.6719854 L6.45514411,16.6653354 L6.45514411,16.6653354 Z M5.07378077,7.04494575 L13.889822,7.04494575 L5.07378077,7.04494575 Z M5.07378077,10.0749635 L13.889822,10.0749635 L5.07378077,10.0749635 Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.5 KiB |
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>chat_on_off_clic</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="chat_on_off_clic">
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" id="chat_clic" fill="#FF5E00"></path>
|
||||
<g id="chat_icon" transform="translate(11.000000, 11.000000)" stroke-width="1.5" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M6.45514411,16.6653354 C6.45490676,16.6653354 3.61717822,19.6701782 0,18.8619676 C0,18.8619676 3.54193902,17.8269451 2.73827987,14.6957526 L2.71240897,14.5508779 C1.03459842,13.0064191 0,10.8924366 0,8.55995464 C0,3.83252839 4.25137115,0 9.49414345,0 C14.7371531,0 18.9880496,3.83252839 18.9880496,8.55995464 C18.9880496,13.2873809 14.7371531,17.1196718 9.49414345,17.1196718 C8.43082597,17.1196718 7.40904432,16.9626847 6.45466941,16.6719854 L6.45514411,16.6653354 L6.45514411,16.6653354 Z M5.07378077,7.04494575 L13.889822,7.04494575 L5.07378077,7.04494575 Z M5.07378077,10.0749635 L13.889822,10.0749635 L5.07378077,10.0749635 Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.5 KiB |
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>chat_off</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="chat_off">
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" fill="#96A6B1"></path>
|
||||
<g id="chat_icon" transform="translate(11.000000, 11.000000)" stroke-width="1.5" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M6.45514411,16.6653354 C6.45490676,16.6653354 3.61717822,19.6701782 0,18.8619676 C0,18.8619676 3.54193902,17.8269451 2.73827987,14.6957526 L2.71240897,14.5508779 C1.03459842,13.0064191 0,10.8924366 0,8.55995464 C0,3.83252839 4.25137115,0 9.49414345,0 C14.7371531,0 18.9880496,3.83252839 18.9880496,8.55995464 C18.9880496,13.2873809 14.7371531,17.1196718 9.49414345,17.1196718 C8.43082597,17.1196718 7.40904432,16.9626847 6.45466941,16.6719854 L6.45514411,16.6653354 L6.45514411,16.6653354 Z M5.07378077,7.04494575 L13.889822,7.04494575 L5.07378077,7.04494575 Z M5.07378077,10.0749635 L13.889822,10.0749635 L5.07378077,10.0749635 Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.5 KiB |
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>chat_on</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="chat_on">
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" fill="#4B5964"></path>
|
||||
<g id="chat_icon" transform="translate(11.000000, 11.000000)" stroke-width="1.5" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M6.45514411,16.6653354 C6.45490676,16.6653354 3.61717822,19.6701782 0,18.8619676 C0,18.8619676 3.54193902,17.8269451 2.73827987,14.6957526 L2.71240897,14.5508779 C1.03459842,13.0064191 0,10.8924366 0,8.55995464 C0,3.83252839 4.25137115,0 9.49414345,0 C14.7371531,0 18.9880496,3.83252839 18.9880496,8.55995464 C18.9880496,13.2873809 14.7371531,17.1196718 9.49414345,17.1196718 C8.43082597,17.1196718 7.40904432,16.9626847 6.45466941,16.6719854 L6.45514411,16.6653354 L6.45514411,16.6653354 Z M5.07378077,7.04494575 L13.889822,7.04494575 L5.07378077,7.04494575 Z M5.07378077,10.0749635 L13.889822,10.0749635 L5.07378077,10.0749635 Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.5 KiB |
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>chat_on_off_clic</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="chat_on_off_clic">
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" id="chat_clic" fill="#FF5E00"></path>
|
||||
<g id="chat_icon" transform="translate(11.000000, 11.000000)" stroke-width="1.5" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M6.45514411,16.6653354 C6.45490676,16.6653354 3.61717822,19.6701782 0,18.8619676 C0,18.8619676 3.54193902,17.8269451 2.73827987,14.6957526 L2.71240897,14.5508779 C1.03459842,13.0064191 0,10.8924366 0,8.55995464 C0,3.83252839 4.25137115,0 9.49414345,0 C14.7371531,0 18.9880496,3.83252839 18.9880496,8.55995464 C18.9880496,13.2873809 14.7371531,17.1196718 9.49414345,17.1196718 C8.43082597,17.1196718 7.40904432,16.9626847 6.45466941,16.6719854 L6.45514411,16.6653354 L6.45514411,16.6653354 Z M5.07378077,7.04494575 L13.889822,7.04494575 L5.07378077,7.04494575 Z M5.07378077,10.0749635 L13.889822,10.0749635 L5.07378077,10.0749635 Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.5 KiB |
|
|
@ -1,13 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>speaker_on</title>
|
||||
<title>speaker_off</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="speaker_on">
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" fill="#4B5964"></path>
|
||||
<g id="speaker_off">
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" fill="#96A6B1"></path>
|
||||
<path d="M10.1559954,23.7737278 L15.8840871,23.7737278 L22.3361811,29 L22.3361811,11 L15.8840871,16.2259714 L10,16.2259714 L10,23.7737278 L10.1559954,23.7737278 L10.1559954,23.7737278 Z M25.5099238,21.7675107 C26.548364,20.7459012 26.548364,19.0898471 25.5099238,18.0688393 M27.9740401,23.254199 C29.8472089,21.4119328 29.8475148,18.4241163 27.9740401,16.5818501" stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<path d="M10,29.8313182 L29.1397841,10.8541412 L10,29.8313182 Z" stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.3 KiB |
|
|
@ -6,9 +6,9 @@
|
|||
<defs></defs>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="speaker_off">
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" fill="#D0D8DE"></path>
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" fill="#4B5964"></path>
|
||||
<path d="M10.1559954,23.7737278 L15.8840871,23.7737278 L22.3361811,29 L22.3361811,11 L15.8840871,16.2259714 L10,16.2259714 L10,23.7737278 L10.1559954,23.7737278 L10.1559954,23.7737278 Z M25.5099238,21.7675107 C26.548364,20.7459012 26.548364,19.0898471 25.5099238,18.0688393 M27.9740401,23.254199 C29.8472089,21.4119328 29.8475148,18.4241163 27.9740401,16.5818501" stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<path d="M10,29.8313182 L29.1397841,10.8541412 L10,29.8313182 Z" stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
|
@ -1,13 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>speaker_on_clic</title>
|
||||
<title>speaker_off_clic</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="speaker_on_clic">
|
||||
<g id="speaker_off_clic">
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" fill="#FF5E00"></path>
|
||||
<path d="M10.1559954,23.7737278 L15.8840871,23.7737278 L22.3361811,29 L22.3361811,11 L15.8840871,16.2259714 L10,16.2259714 L10,23.7737278 L10.1559954,23.7737278 L10.1559954,23.7737278 Z M25.5099238,21.7675107 C26.548364,20.7459012 26.548364,19.0898471 25.5099238,18.0688393 M27.9740401,23.254199 C29.8472089,21.4119328 29.8475148,18.4241163 27.9740401,16.5818501" stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<path d="M10,29.8313182 L29.1397841,10.8541412 L10,29.8313182 Z" stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.3 KiB |
|
|
@ -1,14 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>speaker_off</title>
|
||||
<title>speaker_on</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="speaker_off">
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" fill="#D0D8DE"></path>
|
||||
<g id="speaker_on">
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" fill="#96A6B1"></path>
|
||||
<path d="M10.1559954,23.7737278 L15.8840871,23.7737278 L22.3361811,29 L22.3361811,11 L15.8840871,16.2259714 L10,16.2259714 L10,23.7737278 L10.1559954,23.7737278 L10.1559954,23.7737278 Z M25.5099238,21.7675107 C26.548364,20.7459012 26.548364,19.0898471 25.5099238,18.0688393 M27.9740401,23.254199 C29.8472089,21.4119328 29.8475148,18.4241163 27.9740401,16.5818501" stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<path d="M10,29.8313182 L29.1397841,10.8541412 L10,29.8313182 Z" stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.1 KiB |
|
|
@ -1,14 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>speaker_off_clic</title>
|
||||
<title>speaker_on_clic</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs></defs>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="speaker_off_clic">
|
||||
<g id="speaker_on_clic">
|
||||
<path d="M20,40 C31.045695,40 40,31.045695 40,20 C40,8.954305 31.045695,0 20,0 C8.954305,0 0,8.954305 0,20 C0,31.045695 8.954305,40 20,40 Z" fill="#FF5E00"></path>
|
||||
<path d="M10.1559954,23.7737278 L15.8840871,23.7737278 L22.3361811,29 L22.3361811,11 L15.8840871,16.2259714 L10,16.2259714 L10,23.7737278 L10.1559954,23.7737278 L10.1559954,23.7737278 Z M25.5099238,21.7675107 C26.548364,20.7459012 26.548364,19.0898471 25.5099238,18.0688393 M27.9740401,23.254199 C29.8472089,21.4119328 29.8475148,18.4241163 27.9740401,16.5818501" stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<path d="M10,29.8313182 L29.1397841,10.8541412 L10,29.8313182 Z" stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.1 KiB |
|
|
@ -43,12 +43,6 @@
|
|||
<file>assets/images/chat_error.svg</file>
|
||||
<file>assets/images/chat_hovered.svg</file>
|
||||
<file>assets/images/chat_normal.svg</file>
|
||||
<file>assets/images/chat_off_hovered.svg</file>
|
||||
<file>assets/images/chat_off_normal.svg</file>
|
||||
<file>assets/images/chat_off_pressed.svg</file>
|
||||
<file>assets/images/chat_on_hovered.svg</file>
|
||||
<file>assets/images/chat_on_normal.svg</file>
|
||||
<file>assets/images/chat_on_pressed.svg</file>
|
||||
<file>assets/images/chat_pressed.svg</file>
|
||||
<file>assets/images/chat_send.svg</file>
|
||||
<file>assets/images/chevron_green.svg</file>
|
||||
|
|
@ -212,6 +206,7 @@
|
|||
<file>ui/modules/Common/Helpers/InvertedMouseArea.qml</file>
|
||||
<file>ui/modules/Common/Image/Icon.qml</file>
|
||||
<file>ui/modules/Common/Image/RoundedImage.qml</file>
|
||||
<file>ui/modules/Common/Indicators/VuMeter.qml</file>
|
||||
<file>ui/modules/Common/Menus/ActionMenuEntry.qml</file>
|
||||
<file>ui/modules/Common/Menus/ActionMenu.qml</file>
|
||||
<file>ui/modules/Common/Menus/Menu.qml</file>
|
||||
|
|
@ -252,6 +247,7 @@
|
|||
<file>ui/modules/Common/Styles/Form/Tab/TabButtonStyle.qml</file>
|
||||
<file>ui/modules/Common/Styles/Form/Tab/TabContainerStyle.qml</file>
|
||||
<file>ui/modules/Common/Styles/Form/TransparentTextInputStyle.qml</file>
|
||||
<file>ui/modules/Common/Styles/Indicators/VuMeterStyle.qml</file>
|
||||
<file>ui/modules/Common/Styles/Menus/ActionMenuStyle.qml</file>
|
||||
<file>ui/modules/Common/Styles/Menus/MenuStyle.qml</file>
|
||||
<file>ui/modules/Common/Styles/Misc/CollapseStyle.qml</file>
|
||||
|
|
|
|||
|
|
@ -255,6 +255,8 @@ CallModel::CallStatus CallModel::getStatus () const {
|
|||
return m_linphone_call->getDir() == linphone::CallDirIncoming ? CallStatusIncoming : CallStatusOutgoing;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
int CallModel::getDuration () const {
|
||||
return m_linphone_call->getDuration();
|
||||
}
|
||||
|
|
@ -263,6 +265,30 @@ float CallModel::getQuality () const {
|
|||
return m_linphone_call->getCurrentQuality();
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
#define VU_MIN (-20.f)
|
||||
#define VU_MAX (4.f)
|
||||
|
||||
inline float computeVu (float volume) {
|
||||
if (volume < VU_MIN)
|
||||
return 0.f;
|
||||
if (volume > VU_MAX)
|
||||
return 1.f;
|
||||
|
||||
return (volume - VU_MIN) / (VU_MAX - VU_MIN);
|
||||
}
|
||||
|
||||
float CallModel::getMicroVu () const {
|
||||
return computeVu(m_linphone_call->getRecordVolume());
|
||||
}
|
||||
|
||||
float CallModel::getSpeakerVu () const {
|
||||
return computeVu(m_linphone_call->getPlayVolume());
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
bool CallModel::getMicroMuted () const {
|
||||
return !CoreManager::getInstance()->getCore()->micEnabled();
|
||||
}
|
||||
|
|
@ -276,6 +302,8 @@ void CallModel::setMicroMuted (bool status) {
|
|||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
bool CallModel::getPausedByUser () const {
|
||||
return m_paused_by_user;
|
||||
}
|
||||
|
|
@ -301,6 +329,8 @@ void CallModel::setPausedByUser (bool status) {
|
|||
m_linphone_call->resume();
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
bool CallModel::getVideoEnabled () const {
|
||||
shared_ptr<linphone::CallParams> params = m_linphone_call->getCurrentParams();
|
||||
return params && params->videoEnabled() && getStatus() == CallStatusConnected;
|
||||
|
|
@ -324,6 +354,8 @@ void CallModel::setVideoEnabled (bool status) {
|
|||
m_linphone_call->update(params);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
bool CallModel::getUpdating () const {
|
||||
switch (m_linphone_call->getState()) {
|
||||
case linphone::CallStateConnected:
|
||||
|
|
|
|||
|
|
@ -35,8 +35,12 @@ class CallModel : public QObject {
|
|||
Q_PROPERTY(CallStatus status READ getStatus NOTIFY statusChanged);
|
||||
|
||||
Q_PROPERTY(bool isOutgoing READ isOutgoing CONSTANT);
|
||||
Q_PROPERTY(int duration READ getDuration CONSTANT); // Constant but called with a timer in qml.
|
||||
Q_PROPERTY(float quality READ getQuality CONSTANT); // Same idea.
|
||||
|
||||
Q_PROPERTY(int duration READ getDuration CONSTANT); // Constants but called with a timer in qml.
|
||||
Q_PROPERTY(float quality READ getQuality CONSTANT);
|
||||
Q_PROPERTY(float microVu READ getMicroVu CONSTANT);
|
||||
Q_PROPERTY(float speakerVu READ getSpeakerVu CONSTANT);
|
||||
|
||||
Q_PROPERTY(bool microMuted READ getMicroMuted WRITE setMicroMuted NOTIFY microMutedChanged);
|
||||
|
||||
Q_PROPERTY(bool pausedByUser READ getPausedByUser WRITE setPausedByUser NOTIFY statusChanged);
|
||||
|
|
@ -97,6 +101,8 @@ private:
|
|||
|
||||
int getDuration () const;
|
||||
float getQuality () const;
|
||||
float getMicroVu () const;
|
||||
float getSpeakerVu () const;
|
||||
|
||||
bool getMicroMuted () const;
|
||||
void setMicroMuted (bool status);
|
||||
|
|
|
|||
78
linphone-desktop/ui/modules/Common/Indicators/VuMeter.qml
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
|
||||
import Common.Styles 1.0
|
||||
|
||||
// =============================================================================
|
||||
|
||||
Column {
|
||||
id: vuMeter
|
||||
|
||||
property bool enabled: true
|
||||
property double value: 0
|
||||
|
||||
height: VuMeterStyle.height
|
||||
width: VuMeterStyle.width
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
ProgressBar {
|
||||
id: high
|
||||
|
||||
height: parent.height * 0.25
|
||||
width: parent.width
|
||||
|
||||
from: 0.75
|
||||
to: 1.0
|
||||
|
||||
value: parent.value
|
||||
|
||||
background: Rectangle {
|
||||
color: vuMeter.enabled
|
||||
? VuMeterStyle.high.background.color.enabled
|
||||
: VuMeterStyle.high.background.color.disabled
|
||||
}
|
||||
|
||||
contentItem: Item {
|
||||
Rectangle {
|
||||
anchors.bottom: parent.bottom
|
||||
|
||||
color: VuMeterStyle.high.contentItem.color
|
||||
height: high.visualPosition * parent.height
|
||||
width: parent.width
|
||||
|
||||
visible: vuMeter.enabled
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ProgressBar {
|
||||
id: low
|
||||
|
||||
height: parent.height * 0.75
|
||||
width: parent.width
|
||||
|
||||
from: 0
|
||||
to: 0.75
|
||||
|
||||
value: parent.value
|
||||
|
||||
background: Rectangle {
|
||||
color: vuMeter.enabled
|
||||
? VuMeterStyle.low.background.color.enabled
|
||||
: VuMeterStyle.low.background.color.disabled
|
||||
}
|
||||
|
||||
contentItem: Item {
|
||||
Rectangle {
|
||||
anchors.bottom: parent.bottom
|
||||
|
||||
color: VuMeterStyle.low.contentItem.color
|
||||
height: low.visualPosition * parent.height
|
||||
width: parent.width
|
||||
|
||||
visible: vuMeter.enabled
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.7
|
||||
|
||||
import Common 1.0
|
||||
|
||||
// =============================================================================
|
||||
|
||||
QtObject {
|
||||
property int height: 40
|
||||
property int width: 5
|
||||
|
||||
property QtObject high: QtObject {
|
||||
property QtObject background: QtObject {
|
||||
property QtObject color: QtObject {
|
||||
property color disabled: Colors.y
|
||||
property color enabled: Colors.x
|
||||
}
|
||||
}
|
||||
|
||||
property QtObject contentItem: QtObject {
|
||||
property color color: Colors.s
|
||||
}
|
||||
}
|
||||
|
||||
property QtObject low: QtObject {
|
||||
property QtObject background: QtObject {
|
||||
property QtObject color: QtObject {
|
||||
property color disabled: Colors.y
|
||||
property color enabled: Colors.x
|
||||
}
|
||||
}
|
||||
|
||||
property QtObject contentItem: QtObject {
|
||||
property color color: Colors.j
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -38,6 +38,8 @@ singleton FormVGroupStyle 1.0 Form/Placements/FormVGroupStyle.qml
|
|||
singleton TabButtonStyle 1.0 Form/Tab/TabButtonStyle.qml
|
||||
singleton TabContainerStyle 1.0 Form/Tab/TabContainerStyle.qml
|
||||
|
||||
singleton VuMeterStyle 1.0 Indicators/VuMeterStyle.qml
|
||||
|
||||
singleton ActionMenuStyle 1.0 Menus/ActionMenuStyle.qml
|
||||
singleton MenuStyle 1.0 Menus/MenuStyle.qml
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ ListView {
|
|||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
// TODO: Find a solution at this bug => https://bugreports.qt.io/browse/QTBUG-31573
|
||||
SequentialAnimation {
|
||||
id: scrollAnimation
|
||||
|
||||
|
|
|
|||
|
|
@ -56,6 +56,8 @@ InvertedMouseArea 1.0 Helpers/InvertedMouseArea.qml
|
|||
Icon 1.0 Image/Icon.qml
|
||||
RoundedImage 1.0 Image/RoundedImage.qml
|
||||
|
||||
VuMeter 1.0 Indicators/VuMeter.qml
|
||||
|
||||
ActionMenu 1.0 Menus/ActionMenu.qml
|
||||
ActionMenuEntry 1.0 Menus/ActionMenuEntry.qml
|
||||
Menu 1.0 Menus/Menu.qml
|
||||
|
|
|
|||
|
|
@ -28,19 +28,6 @@ function clearTimeout (timer) {
|
|||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
// Connect a signal to a function only for one call.
|
||||
function connectOnce (signal, cb) {
|
||||
var func = function () {
|
||||
signal.disconnect(func)
|
||||
cb.apply(this, arguments)
|
||||
}
|
||||
|
||||
signal.connect(func)
|
||||
return func
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
function encodeTextToQmlRichFormat (text, options) {
|
||||
var images = ''
|
||||
|
||||
|
|
|
|||
|
|
@ -286,24 +286,68 @@ Rectangle {
|
|||
verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
||||
rowSpacing: ActionBarStyle.spacing
|
||||
columns: incall.width < CallStyle.actionArea.lowWidth ? 2 : 4
|
||||
rowSpacing: ActionBarStyle.spacing
|
||||
|
||||
ActionSwitch {
|
||||
enabled: !call.microMuted
|
||||
icon: 'micro'
|
||||
iconSize: CallStyle.actionArea.iconSize
|
||||
Row {
|
||||
spacing: CallStyle.actionArea.vu.spacing
|
||||
|
||||
onClicked: call.microMuted = enabled
|
||||
VuMeter {
|
||||
Timer {
|
||||
interval: 50
|
||||
repeat: true
|
||||
running: micro.enabled
|
||||
|
||||
onTriggered: parent.value = call.microVu
|
||||
}
|
||||
|
||||
enabled: micro.enabled
|
||||
}
|
||||
|
||||
ActionSwitch {
|
||||
id: micro
|
||||
|
||||
enabled: !call.microMuted
|
||||
icon: 'micro'
|
||||
iconSize: CallStyle.actionArea.iconSize
|
||||
|
||||
onClicked: call.microMuted = enabled
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
spacing: CallStyle.actionArea.vu.spacing
|
||||
|
||||
VuMeter {
|
||||
Timer {
|
||||
interval: 50
|
||||
repeat: true
|
||||
running: speaker.enabled
|
||||
|
||||
onTriggered: parent.value = call.speakerVu
|
||||
}
|
||||
|
||||
enabled: speaker.enabled
|
||||
}
|
||||
|
||||
ActionSwitch {
|
||||
id: speaker
|
||||
|
||||
enabled: true
|
||||
icon: 'speaker'
|
||||
iconSize: CallStyle.actionArea.iconSize
|
||||
|
||||
onClicked: console.log('TODO')
|
||||
}
|
||||
}
|
||||
|
||||
ActionSwitch {
|
||||
enabled: !call.videoEnabled
|
||||
enabled: call.videoEnabled
|
||||
icon: 'camera'
|
||||
iconSize: CallStyle.actionArea.iconSize
|
||||
updating: call.updating
|
||||
|
||||
onClicked: call.videoEnabled = enabled
|
||||
onClicked: call.videoEnabled = !enabled
|
||||
}
|
||||
|
||||
ActionButton {
|
||||
|
|
@ -360,12 +404,11 @@ Rectangle {
|
|||
onClicked: call.terminate()
|
||||
}
|
||||
|
||||
ActionSwitch {
|
||||
enabled: window.chatIsOpened
|
||||
ActionButton {
|
||||
icon: 'chat'
|
||||
|
||||
onClicked: {
|
||||
if (enabled) {
|
||||
if (window.chatIsOpened) {
|
||||
window.closeChat()
|
||||
} else {
|
||||
window.openChat()
|
||||
|
|
|
|||
|
|
@ -211,12 +211,56 @@ Window {
|
|||
|
||||
rowSpacing: ActionBarStyle.spacing
|
||||
|
||||
ActionSwitch {
|
||||
enabled: !call.microMuted
|
||||
icon: 'micro'
|
||||
iconSize: CallStyle.actionArea.iconSize
|
||||
Row {
|
||||
spacing: CallStyle.actionArea.vu.spacing
|
||||
|
||||
onClicked: call.microMuted = enabled
|
||||
VuMeter {
|
||||
Timer {
|
||||
interval: 50
|
||||
repeat: true
|
||||
running: micro.enabled
|
||||
|
||||
onTriggered: parent.value = call.microVu
|
||||
}
|
||||
|
||||
enabled: micro.enabled
|
||||
}
|
||||
|
||||
ActionSwitch {
|
||||
id: micro
|
||||
|
||||
enabled: !call.microMuted
|
||||
icon: 'micro'
|
||||
iconSize: CallStyle.actionArea.iconSize
|
||||
|
||||
onClicked: call.microMuted = enabled
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
spacing: CallStyle.actionArea.vu.spacing
|
||||
|
||||
VuMeter {
|
||||
Timer {
|
||||
interval: 50
|
||||
repeat: true
|
||||
running: speaker.enabled
|
||||
|
||||
onTriggered: parent.value = call.speakerVu
|
||||
}
|
||||
|
||||
enabled: speaker.enabled
|
||||
}
|
||||
|
||||
ActionSwitch {
|
||||
id: speaker
|
||||
|
||||
enabled: true
|
||||
icon: 'speaker'
|
||||
iconSize: CallStyle.actionArea.iconSize
|
||||
|
||||
onClicked: console.log('TODO')
|
||||
}
|
||||
}
|
||||
|
||||
ActionSwitch {
|
||||
|
|
|
|||
|
|
@ -12,13 +12,17 @@ QtObject {
|
|||
property int height: 100
|
||||
property int iconSize: 40
|
||||
property int leftButtonsGroupMargin: 50
|
||||
property int lowWidth: 515
|
||||
property int lowWidth: 650
|
||||
property int rightButtonsGroupMargin: 50
|
||||
|
||||
property QtObject userVideo: QtObject {
|
||||
property int height: 90
|
||||
property int width: 130
|
||||
}
|
||||
|
||||
property QtObject vu: QtObject {
|
||||
property int spacing: 5
|
||||
}
|
||||
}
|
||||
|
||||
property QtObject container: QtObject {
|
||||
|
|
|
|||