25 |
--------------------------------------------------------------------------------
/docs/CNAME:
--------------------------------------------------------------------------------
1 | opensoundmeter.com
--------------------------------------------------------------------------------
/docs/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | # Hello! This is where you manage which Jekyll version is used to run.
4 | # When you want to use a different version, change it below, save the
5 | # file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
6 | #
7 | # bundle exec jekyll serve
8 | #
9 | # This will help ensure the proper Jekyll version is running.
10 | # Happy Jekylling!
11 | gem "jekyll", "~> 3.8.3"
12 |
13 | # This is the default theme for new Jekyll sites. You may change this to anything you like.
14 | gem "minima", "~> 2.0"
15 |
16 | # If you want to use GitHub Pages, remove the "gem "jekyll"" above and
17 | # uncomment the line below. To upgrade, run `bundle update github-pages`.
18 | # gem "github-pages", group: :jekyll_plugins
19 |
20 | # If you have any plugins, put them here!
21 | group :jekyll_plugins do
22 | gem "jekyll-feed", "~> 0.6"
23 | end
24 |
25 | # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
26 | gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
27 |
28 | # Performance-booster for watching directories on Windows
29 | gem "wdm", "~> 0.1.0" if Gem.win_platform?
30 |
31 |
--------------------------------------------------------------------------------
/docs/_data/carousel.yml:
--------------------------------------------------------------------------------
1 | - src: images/screens/v0.1.screen.png
2 | - src: images/screens/v0.1.1.screen.png
3 | - src: images/screens/v0.1.2.png
4 | - src: images/screens/v0.1.3.png
5 |
--------------------------------------------------------------------------------
/docs/_includes/donate.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Donate
4 |
5 | Like the project? Please pay what you want — to help me make further improvements and updates.
6 |
16 |
--------------------------------------------------------------------------------
/docs/_includes/footer.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/_includes/google-analytics.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
--------------------------------------------------------------------------------
/docs/_includes/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | {{ page.title }}
15 |
16 | {% if jekyll.environment == 'production' %}
17 | {% include google-analytics.html %}
18 | {% endif %}
19 |
20 |
--------------------------------------------------------------------------------
/docs/_includes/header.html:
--------------------------------------------------------------------------------
1 |
2 |
39 |
--------------------------------------------------------------------------------
/docs/_includes/script.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/docs/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {% include head.html %}
5 | {% include script.html %}
6 |
7 |
8 |
9 |
10 |
11 |
12 | {% include header.html %}
13 |
14 |
15 | {{ content }}
16 |
17 |
18 | {% include footer.html %}
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/docs/_sass/main.scss:
--------------------------------------------------------------------------------
1 | @charset "utf-8";
2 |
3 | h1, h2, h3, h4, h5, h6 {
4 | -webkit-font-smoothing: antialiased;
5 | }
6 | .icon-block {
7 | padding: 0 15px;
8 | }
9 | .icon-block .material-icons {
10 | font-size: inherit;
11 | }
12 | .shadow-demo {
13 | background-color: #26a69a;
14 | width: 100px;
15 | height: 100px;
16 | margin: 20px auto;
17 | }
18 | h1.page-title {
19 | font-weight: 500;
20 | font-size: 2.3em;
21 | text-align: center;
22 | color: #29b6f6;
23 | }
24 | .col.grid-example {
25 | border: 1px solid #eee;
26 | margin: 7px 0;
27 | text-align: center;
28 | line-height: 50px;
29 | font-size: 28px;
30 | background-color: tomato;
31 | color: white;
32 | padding: 0;
33 | }
34 | .collection .collection-item.avatar {
35 | padding-right: 30px;
36 | }
37 | .last-post {
38 | padding: 10px 0 15px;
39 | }
40 | .last-post .collection .collection-item.avatar>.date-post {
41 | position: absolute;
42 | width: 54px;
43 | height: 54px;
44 | overflow: hidden;
45 | left: 10px;
46 | display: inline-block;
47 | padding: 16px 0;
48 | vertical-align: middle;
49 | background: #ad1457;
50 | color: #fff;
51 | text-align: center;
52 | }
53 | .txt-center {
54 | text-align: center;
55 | }
56 | .post-header h1.post-title {
57 | color: #29b6f6;
58 | font-size: 2.8em;
59 | font-weight: 800;
60 | }
61 | .post-header time {
62 | color: #cacaca;
63 | font-size: 0.9em;
64 | }
65 | p.rss-subscribe {
66 | margin: 0;
67 | }
--------------------------------------------------------------------------------
/docs/_sass/materialize/components/_badges.scss:
--------------------------------------------------------------------------------
1 | // Badges
2 | span.badge {
3 | min-width: 3rem;
4 | padding: 0 6px;
5 | margin-left: 14px;
6 | text-align: center;
7 | font-size: 1rem;
8 | line-height: $badge-height;
9 | height: $badge-height;
10 | color: color('grey', 'darken-1');
11 | float: right;
12 | box-sizing: border-box;
13 |
14 | &.new {
15 | font-weight: 300;
16 | font-size: 0.8rem;
17 | color: #fff;
18 | background-color: $badge-bg-color;
19 | border-radius: 2px;
20 | }
21 | &.new:after {
22 | content: " new";
23 | }
24 |
25 | &[data-badge-caption]::after {
26 | content: " " attr(data-badge-caption);
27 | }
28 | }
29 | nav ul a span.badge {
30 | display: inline-block;
31 | float: none;
32 | margin-left: 4px;
33 | line-height: $badge-height;
34 | height: $badge-height;
35 | }
36 |
37 | // Line height centering
38 | .collection-item span.badge {
39 | margin-top: calc(#{$collection-line-height / 2} - #{$badge-height / 2});
40 | }
41 | .collapsible span.badge {
42 | margin-top: calc(#{$collapsible-line-height / 2} - #{$badge-height / 2});
43 | }
44 | .side-nav span.badge {
45 | margin-top: calc(#{$sidenav-line-height / 2} - #{$badge-height / 2});
46 | }
47 |
--------------------------------------------------------------------------------
/docs/_sass/materialize/components/_dropdown.scss:
--------------------------------------------------------------------------------
1 | .dropdown-content {
2 | @extend .z-depth-1;
3 | background-color: $dropdown-bg-color;
4 | margin: 0;
5 | display: none;
6 | min-width: 100px;
7 | max-height: 650px;
8 | overflow-y: auto;
9 | opacity: 0;
10 | position: absolute;
11 | z-index: 999;
12 | will-change: width, height;
13 |
14 | li {
15 | clear: both;
16 | color: $off-black;
17 | cursor: pointer;
18 | min-height: $dropdown-item-height;
19 | line-height: 1.5rem;
20 | width: 100%;
21 | text-align: left;
22 | text-transform: none;
23 |
24 | &:hover, &.active, &.selected {
25 | background-color: $dropdown-hover-bg-color;
26 | }
27 |
28 | &.active.selected {
29 | background-color: darken($dropdown-hover-bg-color, 5%);
30 | }
31 |
32 | &.divider {
33 | min-height: 0;
34 | height: 1px;
35 | }
36 |
37 | & > a, & > span {
38 | font-size: 16px;
39 | color: $dropdown-color;
40 | display: block;
41 | line-height: 22px;
42 | padding: (($dropdown-item-height - 22) / 2) 16px;
43 | }
44 |
45 | & > span > label {
46 | top: 1px;
47 | left: 0;
48 | height: 18px;
49 | }
50 |
51 | // Icon alignment override
52 | & > a > i {
53 | height: inherit;
54 | line-height: inherit;
55 | float: left;
56 | margin: 0 24px 0 0;
57 | width: 24px;
58 | }
59 | }
60 | }
61 |
62 | // Input field specificity bugfix
63 | .input-field.col .dropdown-content [type="checkbox"] + label {
64 | top: 1px;
65 | left: 0;
66 | height: 18px;
67 | }
68 |
69 |
--------------------------------------------------------------------------------
/docs/_sass/materialize/components/_icons-material-design.scss:
--------------------------------------------------------------------------------
1 | /* This is needed for some mobile phones to display the Google Icon font properly */
2 | .material-icons {
3 | text-rendering: optimizeLegibility;
4 | font-feature-settings: 'liga';
5 | }
6 |
--------------------------------------------------------------------------------
/docs/_sass/materialize/components/_materialbox.scss:
--------------------------------------------------------------------------------
1 | .materialboxed {
2 | &:hover {
3 | &:not(.active) {
4 | opacity: .8;
5 | }
6 | }
7 |
8 | display: block;
9 | cursor: zoom-in;
10 | position: relative;
11 | transition: opacity .4s;
12 | -webkit-backface-visibility: hidden;
13 |
14 | &.active {
15 | cursor: zoom-out;
16 | }
17 | }
18 |
19 | #materialbox-overlay {
20 | position:fixed;
21 | top: 0;
22 | right: 0;
23 | bottom: 0;
24 | left: 0;
25 | background-color: #292929;
26 | z-index: 1000;
27 | will-change: opacity;
28 | }
29 |
30 | .materialbox-caption {
31 | position: fixed;
32 | display: none;
33 | color: #fff;
34 | line-height: 50px;
35 | bottom: 0;
36 | left: 0;
37 | width: 100%;
38 | text-align: center;
39 | padding: 0% 15%;
40 | height: 50px;
41 | z-index: 1000;
42 | -webkit-font-smoothing: antialiased;
43 | }
--------------------------------------------------------------------------------
/docs/_sass/materialize/components/_mixins.scss:
--------------------------------------------------------------------------------
1 | // @mixin box-shadow-2($args1, $args2) {
2 | // -webkit-box-shadow: $args1, $args2;
3 | // -moz-box-shadow: $args1, $args2;
4 | // box-shadow: $args1, $args2;
5 | // }
--------------------------------------------------------------------------------
/docs/_sass/materialize/components/_pulse.scss:
--------------------------------------------------------------------------------
1 | .pulse {
2 | &::before {
3 | content: '';
4 | display: block;
5 | position: absolute;
6 | width: 100%;
7 | height: 100%;
8 | top: 0;
9 | left: 0;
10 | background-color: inherit;
11 | border-radius: inherit;
12 | transition: opacity .3s, transform .3s;
13 | animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;
14 | z-index: -1;
15 | }
16 |
17 | overflow: initial;
18 | position: relative;
19 | }
20 |
21 | @keyframes pulse-animation {
22 | 0% {
23 | opacity: 1;
24 | transform: scale(1);
25 | }
26 | 50% {
27 | opacity: 0;
28 | transform: scale(1.5);
29 | }
30 | 100% {
31 | opacity: 0;
32 | transform: scale(1.5);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/docs/_sass/materialize/components/_roboto.scss:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: "Roboto";
3 | src: local(Roboto Thin),
4 | url("#{$roboto-font-path}Roboto-Thin.woff2") format("woff2"),
5 | url("#{$roboto-font-path}Roboto-Thin.woff") format("woff");
6 |
7 | font-weight: 100;
8 | }
9 | @font-face {
10 | font-family: "Roboto";
11 | src: local(Roboto Light),
12 | url("#{$roboto-font-path}Roboto-Light.woff2") format("woff2"),
13 | url("#{$roboto-font-path}Roboto-Light.woff") format("woff");
14 | font-weight: 300;
15 | }
16 |
17 | @font-face {
18 | font-family: "Roboto";
19 | src: local(Roboto Regular),
20 | url("#{$roboto-font-path}Roboto-Regular.woff2") format("woff2"),
21 | url("#{$roboto-font-path}Roboto-Regular.woff") format("woff");
22 | font-weight: 400;
23 | }
24 |
25 | @font-face {
26 | font-family: "Roboto";
27 | src: local(Roboto Medium),
28 | url("#{$roboto-font-path}Roboto-Medium.woff2") format("woff2"),
29 | url("#{$roboto-font-path}Roboto-Medium.woff") format("woff");
30 | font-weight: 500;
31 | }
32 |
33 | @font-face {
34 | font-family: "Roboto";
35 | src: local(Roboto Bold),
36 | url("#{$roboto-font-path}Roboto-Bold.woff2") format("woff2"),
37 | url("#{$roboto-font-path}Roboto-Bold.woff") format("woff");
38 | font-weight: 700;
39 | }
40 |
--------------------------------------------------------------------------------
/docs/_sass/materialize/components/_table_of_contents.scss:
--------------------------------------------------------------------------------
1 | /***************
2 | Nav List
3 | ***************/
4 | .table-of-contents {
5 | &.fixed {
6 | position: fixed;
7 | }
8 |
9 | li {
10 | padding: 2px 0;
11 | }
12 | a {
13 | display: inline-block;
14 | font-weight: 300;
15 | color: #757575;
16 | padding-left: 20px;
17 | height: 1.5rem;
18 | line-height: 1.5rem;
19 | letter-spacing: .4;
20 | display: inline-block;
21 |
22 | &:hover {
23 | color: lighten(#757575, 20%);
24 | padding-left: 19px;
25 | border-left: 1px solid $primary-color;
26 | }
27 | &.active {
28 | font-weight: 500;
29 | padding-left: 18px;
30 | border-left: 2px solid $primary-color;
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/docs/_sass/materialize/components/_toast.scss:
--------------------------------------------------------------------------------
1 | #toast-container {
2 | display:block;
3 | position: fixed;
4 | z-index: 10000;
5 |
6 | @media #{$small-and-down} {
7 | min-width: 100%;
8 | bottom: 0%;
9 | }
10 | @media #{$medium-only} {
11 | left: 5%;
12 | bottom: 7%;
13 | max-width: 90%;
14 | }
15 | @media #{$large-and-up} {
16 | top: 10%;
17 | right: 7%;
18 | max-width: 86%;
19 | }
20 | }
21 |
22 | .toast {
23 | @extend .z-depth-1;
24 | border-radius: 2px;
25 | top: 35px;
26 | width: auto;
27 | margin-top: 10px;
28 | position: relative;
29 | max-width:100%;
30 | height: auto;
31 | min-height: $toast-height;
32 | line-height: 1.5em;
33 | word-break: break-all;
34 | background-color: $toast-color;
35 | padding: 10px 25px;
36 | font-size: 1.1rem;
37 | font-weight: 300;
38 | color: $toast-text-color;
39 | display: flex;
40 | align-items: center;
41 | justify-content: space-between;
42 | cursor: default;
43 |
44 | .toast-action {
45 | color: $toast-action-color;
46 | font-weight: 500;
47 | margin-right: -25px;
48 | margin-left: 3rem;
49 | }
50 |
51 | &.rounded{
52 | border-radius: 24px;
53 | }
54 |
55 | @media #{$small-and-down} {
56 | width: 100%;
57 | border-radius: 0;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/docs/_sass/materialize/components/_tooltip.scss:
--------------------------------------------------------------------------------
1 | .material-tooltip {
2 | padding: 10px 8px;
3 | font-size: 1rem;
4 | z-index: 2000;
5 | background-color: transparent;
6 | border-radius: 2px;
7 | color: #fff;
8 | min-height: 36px;
9 | line-height: 120%;
10 | opacity: 0;
11 | position: absolute;
12 | text-align: center;
13 | max-width: calc(100% - 4px);
14 | overflow: hidden;
15 | left: 0;
16 | top: 0;
17 | pointer-events: none;
18 | visibility: hidden;
19 | }
20 |
21 | .backdrop {
22 | position: absolute;
23 | opacity: 0;
24 | height: 7px;
25 | width: 14px;
26 | border-radius: 0 0 50% 50%;
27 | background-color: #323232;
28 | z-index: -1;
29 | transform-origin: 50% 0%;
30 | visibility: hidden;
31 | }
32 |
--------------------------------------------------------------------------------
/docs/_sass/materialize/components/_transitions.scss:
--------------------------------------------------------------------------------
1 | // Scale transition
2 | .scale-transition {
3 | &.scale-out {
4 | transform: scale(0);
5 | transition: transform .2s !important;
6 | }
7 |
8 | &.scale-in {
9 | transform: scale(1);
10 | }
11 |
12 | transition: transform .3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;
13 | }
--------------------------------------------------------------------------------
/docs/_sass/materialize/components/forms/_file-input.scss:
--------------------------------------------------------------------------------
1 | /* File Input
2 | ========================================================================== */
3 |
4 | .file-field {
5 | position: relative;
6 |
7 | .file-path-wrapper {
8 | overflow: hidden;
9 | padding-left: 10px;
10 | }
11 |
12 | input.file-path { width: 100%; }
13 |
14 | .btn {
15 | float: left;
16 | height: $input-height;
17 | line-height: $input-height;
18 | }
19 |
20 | span {
21 | cursor: pointer;
22 | }
23 |
24 | input[type=file] {
25 |
26 | // Needed to override webkit button
27 | &::-webkit-file-upload-button {
28 | display: none;
29 | }
30 |
31 | position: absolute;
32 | top: 0;
33 | right: 0;
34 | left: 0;
35 | bottom: 0;
36 | width: 100%;
37 | margin: 0;
38 | padding: 0;
39 | font-size: 20px;
40 | cursor: pointer;
41 | opacity: 0;
42 | filter: alpha(opacity=0);
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/docs/_sass/materialize/components/forms/_forms.scss:
--------------------------------------------------------------------------------
1 | // Remove Focus Boxes
2 | select:focus {
3 | outline: $select-focus;
4 | }
5 |
6 | button:focus {
7 | outline: none;
8 | background-color: $button-background-focus;
9 | }
10 |
11 | label {
12 | font-size: $label-font-size;
13 | color: $input-border-color;
14 | }
15 |
16 | @import 'input-fields';
17 | @import 'radio-buttons';
18 | @import 'checkboxes';
19 | @import 'switches';
20 | @import 'select';
21 | @import 'file-input';
22 | @import 'range';
23 |
--------------------------------------------------------------------------------
/docs/_sass/materialize/materialize.scss:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 |
3 | // Mixins
4 | @import "components/mixins";
5 | @import "components/color";
6 |
7 | // Variables;
8 | @import "components/variables";
9 |
10 | // Reset
11 | @import "components/normalize";
12 |
13 | // components
14 | @import "components/global";
15 | @import "components/badges";
16 | @import "components/icons-material-design";
17 | @import "components/grid";
18 | @import "components/navbar";
19 | @import "components/roboto";
20 | @import "components/typography";
21 | @import "components/transitions";
22 | @import "components/cards";
23 | @import "components/toast";
24 | @import "components/tabs";
25 | @import "components/tooltip";
26 | @import "components/buttons";
27 | @import "components/dropdown";
28 | @import "components/waves";
29 | @import "components/modal";
30 | @import "components/collapsible";
31 | @import "components/chips";
32 | @import "components/materialbox";
33 | @import "components/forms/forms";
34 | @import "components/table_of_contents";
35 | @import "components/sideNav";
36 | @import "components/preloader";
37 | @import "components/slider";
38 | @import "components/carousel";
39 | @import "components/tapTarget";
40 | @import "components/pulse";
41 | @import "components/date_picker/default";
42 | @import "components/date_picker/default.date";
43 | @import "components/date_picker/default.time";
44 |
--------------------------------------------------------------------------------
/docs/assets/materialize.scss:
--------------------------------------------------------------------------------
1 | ---
2 | # Only the main Sass file needs front matter (the dashes are enough)
3 | ---
4 |
5 | @import "materialize/materialize";
6 |
--------------------------------------------------------------------------------
/docs/assets/osm.css:
--------------------------------------------------------------------------------
1 | /* GLOBAL STYLES
2 | -------------------------------------------------- */
3 | /* Padding below the footer and lighter body text */
4 |
5 | html {min-height: 100vh;}
6 | body {
7 | padding-top: 6.5rem;
8 | padding-bottom: 3rem;
9 | color: #5a5a5a;
10 | min-height: 100vh;
11 | }
12 |
13 | .brand-images
14 | {
15 | height: calc(140px - 3rem);
16 | margin-top: 3rem;
17 | }
18 | .brand-images img {
19 | width: 50%;
20 | }
21 | main {
22 | min-height: calc(100vh - 11.5rem);
23 | }
24 |
25 |
26 | /* MARKETING CONTENT
27 | -------------------------------------------------- */
28 |
29 | /* Center align the text within the three columns below the carousel */
30 | .marketing .col-lg-4 {
31 | margin-bottom: 1.5rem;
32 | text-align: center;
33 | }
34 | .marketing h2 {
35 | font-weight: 400;
36 | }
37 | .marketing .col-lg-4 p {
38 | margin-right: .75rem;
39 | margin-left: .75rem;
40 | }
41 |
42 |
43 | /* Featurettes
44 | ------------------------- */
45 |
46 | .featurette-divider {
47 | margin: 3rem 0; /* Space out the Bootstrap more */
48 | }
49 |
50 | /* Thin out the marketing headings */
51 | .featurette-heading {
52 | font-weight: 300;
53 | line-height: 1;
54 | letter-spacing: -.05rem;
55 | }
56 |
57 |
58 | /* RESPONSIVE CSS
59 | -------------------------------------------------- */
60 |
61 | @media (min-width: 40em) {
62 | /* Bump up size of carousel content */
63 | .carousel-caption p {
64 | margin-bottom: 1.25rem;
65 | font-size: 1.25rem;
66 | line-height: 1.4;
67 | }
68 |
69 | .featurette-heading {
70 | font-size: 50px;
71 | }
72 | }
73 |
74 | @media (min-width: 62em) {
75 | .featurette-heading {
76 | margin-top: 3rem;
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/docs/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/favicon.ico
--------------------------------------------------------------------------------
/docs/fonts/roboto/Roboto-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/fonts/roboto/Roboto-Bold.woff
--------------------------------------------------------------------------------
/docs/fonts/roboto/Roboto-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/fonts/roboto/Roboto-Bold.woff2
--------------------------------------------------------------------------------
/docs/fonts/roboto/Roboto-Light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/fonts/roboto/Roboto-Light.woff
--------------------------------------------------------------------------------
/docs/fonts/roboto/Roboto-Light.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/fonts/roboto/Roboto-Light.woff2
--------------------------------------------------------------------------------
/docs/fonts/roboto/Roboto-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/fonts/roboto/Roboto-Medium.woff
--------------------------------------------------------------------------------
/docs/fonts/roboto/Roboto-Medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/fonts/roboto/Roboto-Medium.woff2
--------------------------------------------------------------------------------
/docs/fonts/roboto/Roboto-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/fonts/roboto/Roboto-Regular.woff
--------------------------------------------------------------------------------
/docs/fonts/roboto/Roboto-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/fonts/roboto/Roboto-Regular.woff2
--------------------------------------------------------------------------------
/docs/fonts/roboto/Roboto-Thin.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/fonts/roboto/Roboto-Thin.woff
--------------------------------------------------------------------------------
/docs/fonts/roboto/Roboto-Thin.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/fonts/roboto/Roboto-Thin.woff2
--------------------------------------------------------------------------------
/docs/images/icons/abc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/icons/abc.png
--------------------------------------------------------------------------------
/docs/images/icons/apple-brands.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/images/icons/facebook-f-brands.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/images/icons/heart.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/images/icons/windows-brands.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/images/pavel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/pavel.png
--------------------------------------------------------------------------------
/docs/images/qrCode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/qrCode.png
--------------------------------------------------------------------------------
/docs/images/scheme.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/scheme.png
--------------------------------------------------------------------------------
/docs/images/screens/Magnitude.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/Magnitude.png
--------------------------------------------------------------------------------
/docs/images/screens/Phase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/Phase.png
--------------------------------------------------------------------------------
/docs/images/screens/SubAlign.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/SubAlign.png
--------------------------------------------------------------------------------
/docs/images/screens/basic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/basic.png
--------------------------------------------------------------------------------
/docs/images/screens/clean.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/clean.png
--------------------------------------------------------------------------------
/docs/images/screens/dualchart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/dualchart.png
--------------------------------------------------------------------------------
/docs/images/screens/impulse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/impulse.png
--------------------------------------------------------------------------------
/docs/images/screens/main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/main.png
--------------------------------------------------------------------------------
/docs/images/screens/rta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/rta.png
--------------------------------------------------------------------------------
/docs/images/screens/rta2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/rta2.png
--------------------------------------------------------------------------------
/docs/images/screens/sum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/sum.png
--------------------------------------------------------------------------------
/docs/images/screens/v0.1.1.screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/v0.1.1.screen.png
--------------------------------------------------------------------------------
/docs/images/screens/v0.1.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/v0.1.2.png
--------------------------------------------------------------------------------
/docs/images/screens/v0.1.3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/v0.1.3.png
--------------------------------------------------------------------------------
/docs/images/screens/v0.1.screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/v0.1.screen.png
--------------------------------------------------------------------------------
/docs/images/screens/v0.2.average.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/v0.2.average.png
--------------------------------------------------------------------------------
/docs/images/screens/whitec.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/whitec.png
--------------------------------------------------------------------------------
/docs/images/screens/windows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/screens/windows.png
--------------------------------------------------------------------------------
/docs/images/titledlogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/docs/images/titledlogo.png
--------------------------------------------------------------------------------
/docs/js/init.js:
--------------------------------------------------------------------------------
1 | (function($){
2 | $(function(){
3 |
4 | $('.button-collapse').sideNav();
5 | $('.carousel').carousel();
6 |
7 | }); // end of document ready
8 | })(jQuery); // end of jQuery name space
--------------------------------------------------------------------------------
/fonts/Roboto/Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/fonts/Roboto/Bold.ttf
--------------------------------------------------------------------------------
/fonts/Roboto/BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/fonts/Roboto/BoldItalic.ttf
--------------------------------------------------------------------------------
/fonts/Roboto/Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/fonts/Roboto/Italic.ttf
--------------------------------------------------------------------------------
/fonts/Roboto/Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/fonts/Roboto/Regular.ttf
--------------------------------------------------------------------------------
/fonts/fonts.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | osm.ttf
4 | Roboto/Bold.ttf
5 | Roboto/BoldItalic.ttf
6 | Roboto/Italic.ttf
7 | Roboto/Regular.ttf
8 |
9 |
10 |
--------------------------------------------------------------------------------
/fonts/osm.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/fonts/osm.ttf
--------------------------------------------------------------------------------
/future.tasks:
--------------------------------------------------------------------------------
1 | /Users/pavelsmokotnin/OpenSoundMeter/code/osm/src/measurement.cpp 93 todo decide about the depth of coherence
2 | todo phase chart rotate
3 |
--------------------------------------------------------------------------------
/icons/appstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/icons/appstore.png
--------------------------------------------------------------------------------
/icons/dark.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/icons/dark.ico
--------------------------------------------------------------------------------
/icons/dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/icons/dark.png
--------------------------------------------------------------------------------
/icons/pp.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/icons/pp.jpg
--------------------------------------------------------------------------------
/icons/qrCode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/icons/qrCode.png
--------------------------------------------------------------------------------
/icons/white.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/icons/white.icns
--------------------------------------------------------------------------------
/icons/white.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/icons/white.ico
--------------------------------------------------------------------------------
/icons/white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/icons/white.png
--------------------------------------------------------------------------------
/icons/white80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/icons/white80.png
--------------------------------------------------------------------------------
/icons/whitec.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/icons/whitec.png
--------------------------------------------------------------------------------
/images.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | icons/whitec.png
4 | icons/qrCode.png
5 | icons/pp.jpg
6 | icons/white80.png
7 | icons/appstore.png
8 |
9 |
10 |
--------------------------------------------------------------------------------
/info.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
12 | com.apple.security.device.audio-input
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/linuxdeployosm.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | export VERSION=$1
4 | SOURCE_DIR=$2
5 | QT_BINS=$3
6 |
7 | make clean -j1
8 | OSM_DESKTOP=OpenSoundMeter_$VERSION.desktop
9 | LINUXDEPLOYQT=linuxdeployqt-6-x86_64.AppImage
10 |
11 | if test -f "$LINUXDEPLOYQT"; then
12 | echo "$LINUXDEPLOYQT exist"
13 | else
14 | wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage"
15 | chmod a+x linuxdeployqt-6-x86_64.AppImage
16 | fi
17 | ./linuxdeployqt-6-x86_64.AppImage $OSM_DESKTOP -appimage -unsupported-allow-new-glibc -qmake=$QT_BINS/qmake -qmldir=$SOURCE_DIR/qml
18 | exit 0
19 |
--------------------------------------------------------------------------------
/overview.key:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/psmokotnin/osm/0e7a7d78280ef190c638cb64ad2dd8fb2158190d/overview.key
--------------------------------------------------------------------------------
/qml/ModalDialog.qml:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | import QtQuick 2.12
19 | import QtQuick.Controls 2.15
20 |
21 | Dialog {
22 | id: dialog
23 | title: ""
24 | modal: true
25 | focus: true
26 | x: (parent ? (parent.width - width) / 2 : 100)
27 | y: (parent ? (parent.height - height) / 2 : 100)
28 | standardButtons: Dialog.Ok | Dialog.Cancel
29 | onAccepted: {}
30 | onRejected: {}
31 |
32 | Item {
33 | focus: true
34 | anchors.fill: parent
35 | visible: dialog.visible
36 | Keys.onReturnPressed: {
37 | dialog.accept();
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/qml/PropertiesOpener.qml:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2018 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | import QtQuick 2.7
19 |
20 | MouseArea {
21 | property string propertiesQml
22 | property var pushObject
23 | anchors.fill: parent
24 | function open() {
25 | applicationWindow.properiesbar.open(pushObject, propertiesQml);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/qml/elements/NameField.qml:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | import QtQuick 2.0
19 | import QtQuick.Controls 2.13
20 |
21 | TextField {
22 | property var target //Shared::Source
23 |
24 | placeholderText: qsTr("title")
25 | text: target.data.name
26 | onTextEdited: target.data.name = text
27 | ToolTip.visible: hovered
28 | ToolTip.text: qsTr("title")
29 |
30 | selectByMouse: true
31 | onFocusChanged: {
32 | if (focus) {
33 | selectAll();
34 | }
35 | }
36 | onEditingFinished: {
37 | focus = false;
38 | }
39 | Keys.onEscapePressed: {
40 | focus = false;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/qml/elements/SelectableSpinBox.qml:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | import QtQuick 2.0
19 | import QtQuick.Controls 2.2
20 |
21 | SpinBox {
22 | Component.onCompleted: {
23 | contentItem.selectByMouse = true;
24 | }
25 |
26 | onFocusChanged: {
27 | if (focus) {
28 | contentItem.selectAll();
29 | }
30 | }
31 |
32 | Connections {
33 | target: contentItem
34 | function onEditingFinished() {
35 | focus = false;
36 | }
37 | }
38 | Keys.onEscapePressed: {
39 | focus = false;
40 | }
41 | Keys.onReturnPressed: {
42 | focus = false;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/qml/elements/TitledCombo.qml:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | import QtQuick 2.7
19 | import QtQuick.Controls 2.12
20 |
21 | DropDown {
22 | property string title : ""
23 | property string tooltip : ""
24 |
25 | displayText: (title ? title + ": " : "") + currentText
26 | ToolTip.visible: (tooltip ? hovered : none)
27 | ToolTip.text: tooltip
28 | }
29 |
--------------------------------------------------------------------------------
/qml/source/RemoteItemProperties.qml:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2022 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | import QtQuick 2.13
19 | import QtQuick.Controls 2.13
20 | import QtQuick.Controls.Material 2.13
21 | import QtQuick.Layouts 1.12
22 |
23 | Item {
24 | property var dataObject
25 |
26 | ColumnLayout {
27 | spacing: 0
28 | anchors.fill: parent
29 |
30 | RowLayout {
31 |
32 | Button {
33 | text: qsTr("Refresh")
34 | onClicked: dataObject.data.refresh();
35 | }
36 |
37 | Label {
38 | text: dataObject.data ? dataObject.data.name : ""
39 | }
40 |
41 | Label {
42 | text: "@"
43 | }
44 |
45 | Label {
46 | text: dataObject.data ? dataObject.data.host : ""
47 | }
48 | }
49 |
50 | RowLayout {
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/qml/source/Source.qml:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2023 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | import QtQuick 2.7
19 | import QtQuick.Controls 2.1
20 | import QtQuick.Layouts 1.3
21 | import "qrc:/"
22 |
23 | Item {
24 | id: control
25 | property var dataModel
26 | property bool chartable
27 | property bool highlight
28 | property string propertiesQml
29 | height: 50
30 | width: parent.width
31 |
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/shaders/coherence.frag:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #version 330
19 | #ifdef GL_ES
20 | precision mediump float;
21 | #endif
22 |
23 | uniform vec4 m_color;
24 | out vec4 fragColor;
25 |
26 | void main() {
27 | fragColor = m_color;
28 | }
29 |
--------------------------------------------------------------------------------
/shaders/coherence.vert:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #version 330
19 | uniform highp mat4 matrix;
20 |
21 | layout (location = 0) in vec2 position;
22 | layout (location = 1) in vec2 frequencyRange;
23 | layout (location = 2) in vec4 splineData;
24 |
25 | out vData
26 | {
27 | vec4 splineData;
28 | vec2 frequency;
29 | } vertex;
30 |
31 | void main() {
32 | gl_Position.x = matrix[0][0] * log(position.x) + matrix[3][0];
33 | gl_Position.y = matrix[0][0] * log(position.y) + matrix[3][0];
34 | gl_Position.z = 0;
35 | gl_Position.w = 1;
36 |
37 | vertex.splineData = splineData;
38 | vertex.frequency = frequencyRange;
39 | }
40 |
--------------------------------------------------------------------------------
/shaders/color.frag:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #version 330
19 | #ifdef GL_ES
20 | precision mediump float;
21 | #endif
22 |
23 | uniform vec4 m_color;
24 | out vec4 fragColor;
25 |
26 | void main(void)
27 | {
28 | fragColor = m_color;
29 | }
30 |
--------------------------------------------------------------------------------
/shaders/groupdelay.vert:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #version 330
19 | uniform highp mat4 matrix;
20 |
21 | layout (location = 0) in vec2 position;
22 | layout (location = 1) in vec2 frequencyRange;
23 | layout (location = 2) in vec4 splineData;
24 | layout (location = 3) in vec4 cSpline;
25 |
26 | out vData
27 | {
28 | vec4 splineData;
29 | vec2 frequency;
30 | vec4 coherenceSpline;
31 | } vertex;
32 |
33 | void main() {
34 | gl_Position.x = matrix[0][0] * log(position.x) + matrix[3][0];
35 | gl_Position.y = matrix[0][0] * log(position.y) + matrix[3][0];
36 | gl_Position.z = position.x;//f0 Hz
37 | gl_Position.w = position.y;//f0 Hz
38 |
39 | vertex.splineData = splineData;
40 | vertex.frequency = frequencyRange;
41 | vertex.coherenceSpline = cSpline;
42 | }
43 |
--------------------------------------------------------------------------------
/shaders/logx.vert:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #version 330
19 | uniform highp mat4 matrix;
20 |
21 | layout (location = 0) in vec2 position;
22 |
23 | void main() {
24 | gl_Position = matrix * vec4(log(position.x), position.y, 0.0, 1.0);
25 | }
26 |
--------------------------------------------------------------------------------
/shaders/magnitude.vert:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #version 330
19 | uniform highp mat4 matrix;
20 |
21 | layout (location = 0) in vec2 position;
22 | layout (location = 1) in vec2 frequencyRange;
23 | layout (location = 2) in vec4 splineData;
24 | layout (location = 3) in vec4 cSpline;
25 |
26 | out vData
27 | {
28 | vec4 splineData;
29 | vec2 frequency;
30 | vec4 coherenceSpline;
31 | } vertex;
32 |
33 | void main() {
34 | gl_Position.x = matrix[0][0] * log(position.x) + matrix[3][0];
35 | gl_Position.y = matrix[0][0] * log(position.y) + matrix[3][0];
36 | gl_Position.z = position.x;//f0 Hz
37 | gl_Position.w = position.y;//f0 Hz
38 |
39 | vertex.splineData = splineData;
40 | vertex.frequency = frequencyRange;
41 | vertex.coherenceSpline = cSpline;
42 | }
43 |
--------------------------------------------------------------------------------
/shaders/nyquist.vert:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #version 330
19 | uniform highp mat4 matrix;
20 |
21 | layout (location = 0) in vec4 splineRe;
22 | layout (location = 1) in vec4 splineIm;
23 | layout (location = 2) in vec4 coherenceSpline;
24 |
25 | out vData
26 | {
27 | vec4 splineRe;
28 | vec4 splineIm;
29 | vec4 coherenceSpline;
30 | } vertex;
31 |
32 | void main() {
33 | vertex.splineRe = splineRe;
34 | vertex.splineIm = splineIm;
35 | vertex.coherenceSpline = coherenceSpline;
36 | }
37 |
--------------------------------------------------------------------------------
/shaders/opengl2/color.frag:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2022 Pavel Smokotnin
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | * This program is distributed in the hope that it will be useful,
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 | * GNU General Public License for more details.
12 | * You should have received a copy of the GNU General Public License
13 | * along with this program. If not, see .
14 | */
15 | #ifdef GL_ES
16 | precision mediump float;
17 | #endif
18 |
19 | varying vec4 frag_color;
20 |
21 | void main(void)
22 | {
23 | gl_FragColor = frag_color;
24 | }
25 |
--------------------------------------------------------------------------------
/shaders/opengl2/logx.vert:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2022 Pavel Smokotnin
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | * This program is distributed in the hope that it will be useful,
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 | * GNU General Public License for more details.
12 | * You should have received a copy of the GNU General Public License
13 | * along with this program. If not, see .
14 | */
15 | attribute highp vec2 position;
16 | attribute vec4 color;
17 | varying vec4 frag_color;
18 | uniform highp mat4 matrix;
19 |
20 | void main() {
21 | vec4 p;
22 | p.x = log(position.x);
23 | p.y = position.y;
24 | p.z = 0.0;
25 | p.w = 1.0;
26 |
27 | gl_Position = matrix * p;
28 | frag_color = color;
29 | }
30 |
--------------------------------------------------------------------------------
/shaders/opengl2/point.vert:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2022 Pavel Smokotnin
4 | * This program is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | * This program is distributed in the hope that it will be useful,
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 | * GNU General Public License for more details.
12 | * You should have received a copy of the GNU General Public License
13 | * along with this program. If not, see .
14 | */
15 | attribute highp vec2 position;
16 | attribute vec4 color;
17 | varying vec4 frag_color;
18 | uniform highp mat4 matrix;
19 |
20 | void main() {
21 | vec4 p;
22 | p.x = position.x;
23 | p.y = position.y;
24 | p.z = 0.0;
25 | p.w = 1.0;
26 |
27 | gl_Position = matrix * p;
28 | frag_color = color;
29 | }
30 |
--------------------------------------------------------------------------------
/shaders/phase.vert:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #version 330
19 | uniform highp mat4 matrix;
20 |
21 | layout (location = 0) in vec2 position;
22 | layout (location = 1) in vec2 frequencyRange;
23 | layout (location = 2) in vec4 splineRe;
24 | layout (location = 3) in vec4 splineIm;
25 | layout (location = 4) in vec4 cSpline;
26 |
27 | out vData
28 | {
29 | vec4 splineRe;
30 | vec4 splineIm;
31 | vec2 frequency;
32 | vec4 coherenceSpline;
33 | } vertex;
34 |
35 | void main() {
36 | gl_Position.x = matrix[0][0] * log(position.x) + matrix[3][0];
37 | gl_Position.y = matrix[0][0] * log(position.y) + matrix[3][0];
38 | gl_Position.z = position.x;//f0 Hz
39 | gl_Position.w = position.y;//f1 Hz
40 |
41 | vertex.splineRe = splineRe;
42 | vertex.splineIm = splineIm;
43 | vertex.frequency = frequencyRange;
44 | vertex.coherenceSpline = cSpline;
45 | }
46 |
--------------------------------------------------------------------------------
/shaders/phasedelay.vert:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2022 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #version 330
19 | uniform highp mat4 matrix;
20 |
21 | layout (location = 0) in vec2 position;
22 | layout (location = 1) in vec2 frequencyRange;
23 | layout (location = 2) in vec4 splineData;
24 | layout (location = 3) in vec4 cSpline;
25 |
26 | out vData
27 | {
28 | vec4 splineData;
29 | vec2 frequency;
30 | vec4 coherenceSpline;
31 | } vertex;
32 |
33 | void main() {
34 | gl_Position.x = matrix[0][0] * log(position.x) + matrix[3][0];
35 | gl_Position.y = matrix[0][0] * log(position.y) + matrix[3][0];
36 | gl_Position.z = position.x;//f0 Hz
37 | gl_Position.w = position.y;//f1 Hz
38 |
39 | vertex.splineData = splineData;
40 | vertex.frequency = frequencyRange;
41 | vertex.coherenceSpline = cSpline;
42 | }
43 |
--------------------------------------------------------------------------------
/shaders/pos.vert:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #version 330
19 | uniform highp mat4 matrix;
20 |
21 | layout (location = 0) in vec2 position;
22 |
23 | void main() {
24 | gl_Position = matrix * vec4(position, 0.0, 1.0);
25 | }
26 |
--------------------------------------------------------------------------------
/shaders/shaders.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | phase.frag
4 | logx.vert
5 | color.frag
6 | magnitude.frag
7 | pos.vert
8 | coherence.frag
9 | spectrogram.vert
10 | magnitude.geom
11 | magnitude.vert
12 | phase.vert
13 | phase.geom
14 | line.geom
15 | coherence.vert
16 | coherence.geom
17 | spectrogram.frag
18 | groupdelay.geom
19 | groupdelay.frag
20 | groupdelay.vert
21 | nyquist.frag
22 | nyquist.geom
23 | nyquist.vert
24 | phasedelay.geom
25 | phasedelay.vert
26 | phasedelay.frag
27 | opengl2/color.frag
28 | opengl2/logx.vert
29 | opengl2/point.vert
30 |
31 |
32 |
--------------------------------------------------------------------------------
/shaders/spectrogram.frag:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #version 330
19 |
20 | #ifdef GL_ES
21 | precision mediump float;
22 | #endif
23 |
24 | smooth in vec4 vertexColor;
25 | out vec4 fragColor;
26 |
27 | void main()
28 | {
29 | fragColor = vertexColor;
30 | }
31 |
--------------------------------------------------------------------------------
/shaders/spectrogram.vert:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #version 330
19 |
20 | uniform highp mat4 matrix;
21 |
22 | layout(location = 0) in vec2 position;
23 | layout(location = 1) in vec4 color;
24 |
25 | smooth out vec4 vertexColor;
26 |
27 | void main() {
28 | gl_Position = matrix * vec4(log(position.x), position.y, 0.0, 1.0);
29 | vertexColor = color;
30 | }
31 |
--------------------------------------------------------------------------------
/src/abstract/levelsdata.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2025 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 |
19 | #include "abstract/levelsdata.h"
20 |
21 | namespace Abstract {
22 |
23 | LevelsData::LevelsData() : m_referenceLevel(0)
24 | {
25 | for (auto &curve : Weighting::allCurves) {
26 | for (auto &time : Meter::allTimes) {
27 | Key key {curve, time};
28 | Meter meter {curve, time};
29 | m_data[key] = -INFINITY;
30 | }
31 | }
32 | }
33 |
34 | LevelsData::key_map::iterator LevelsData::begin()
35 | {
36 | return m_data.begin();
37 | }
38 |
39 | LevelsData::key_map::iterator LevelsData::end()
40 | {
41 | return m_data.end();
42 | }
43 |
44 | bool LevelsData::Key::operator==(const Key &other) const
45 | {
46 | return curve == other.curve && time == other.time;
47 | }
48 |
49 | std::size_t LevelsData::Key::Hash::operator()(const Key &k) const
50 | {
51 | return std::hash()(k.curve * 10 + k.time);
52 | }
53 |
54 | } // namespace Abstract
55 |
--------------------------------------------------------------------------------
/src/abstract/levelsdata.h:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2025 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 |
19 | #ifndef ABSTRACT_LEVELSDATA_H
20 | #define ABSTRACT_LEVELSDATA_H
21 |
22 | #include
23 | #include
24 |
25 | #include "math/meter.h"
26 |
27 | namespace Abstract {
28 |
29 | struct LevelsData {
30 |
31 | struct Key {
32 | Weighting::Curve curve;
33 | Meter::Time time;
34 |
35 | bool operator==(const Key &other) const;
36 | struct Hash {
37 | std::size_t operator()(const Key &k) const;
38 | };
39 | };
40 |
41 | typedef std::unordered_map key_map;
42 |
43 | LevelsData();
44 |
45 | key_map::iterator begin();
46 | key_map::iterator end();
47 |
48 | key_map m_data;
49 | float m_referenceLevel;
50 | };
51 |
52 | } // namespace Abstract
53 |
54 | #endif // ABSTRACT_LEVELSDATA_H
55 |
--------------------------------------------------------------------------------
/src/audio/format.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #include "format.h"
19 |
20 | namespace audio {
21 |
22 | bool Format::isValid() const
23 | {
24 | return (sampleRate > 0) && (channelCount > 0);
25 | }
26 |
27 | } // namespace audio
28 |
29 |
30 | QDebug operator << (QDebug dbg, const audio::Format &f)
31 | {
32 | dbg.nospace() << "audio format: {sampleRate:"
33 | << f.sampleRate << " channelCount:" << f.channelCount << "}";
34 |
35 | return dbg.maybeSpace();
36 | }
37 |
--------------------------------------------------------------------------------
/src/audio/format.h:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #ifndef AUDIO_FORMAT_H
19 | #define AUDIO_FORMAT_H
20 |
21 | #include
22 |
23 | namespace audio {
24 |
25 | struct Format {
26 | Format() = default;
27 | Format(const Format &other) = default;
28 | bool isValid() const;
29 |
30 | unsigned int sampleRate = 0;
31 | unsigned int channelCount = 0;
32 | };
33 |
34 | } // namespace audio
35 |
36 | QDebug operator<<(QDebug dbg, const audio::Format &f);
37 |
38 | #endif // AUDIO_FORMAT_H
39 |
--------------------------------------------------------------------------------
/src/audio/plugin.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #include "plugin.h"
19 |
20 | namespace audio {
21 |
22 | Plugin::Plugin() = default;
23 | Plugin::~Plugin() = default;
24 |
25 | } // namespace audio
26 |
--------------------------------------------------------------------------------
/src/audio/plugin.h:
--------------------------------------------------------------------------------
1 | /**
2 | * OSM
3 | * Copyright (C) 2021 Pavel Smokotnin
4 |
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 |
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 |
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 | #ifndef AUDIO_PLUGIN_H
19 | #define AUDIO_PLUGIN_H
20 |
21 | #include