···2727 desc: >
2828 **Winamp 2 + Windows 98**. Uses Webamp as the audio player connected to various Diffuse elements. Also features a desktop-like Windows 98 environment in which you can open "programs" that control the used Diffuse elements.
29293030-# CONSTITUENTS
3131-3232-constituents:
3333- - url: "themes/blur/artwork-controller/"
3434- title: "Blur / Artwork controller"
3535- desc: >
3636- Audio playback controller with artwork display.
3737- - url: "themes/loader/constituent/"
3838- title: "Loader"
3939- desc: >
4040- **Bring in other constituents!** Load a constituent from a code snippet, store it in your user data output, explore community creations, or generate one.
4141- - url: "themes/webamp/browser/"
4242- title: "Webamp / Browser"
4343- desc: >
4444- Collection browser + search in a retro, win98, look.
4545- - url: "themes/webamp/configurators/input/"
4646- title: "Webamp / Input Configurator"
4747- desc: >
4848- Windows 98 styled input configurator where you can add music sources.
4949-5030# ELEMENTS
51315232configurators:
···11+import foundation from "@common/constituents/foundation.js";
22+import ArtworkController from "@themes/blur/artwork-controller/element.js";
33+44+// Setup the prerequisite elements
55+foundation.features.fillQueueAutomatically();
66+foundation.features.playAudioFromQueue();
77+foundation.features.processInputs();
88+99+const aud = foundation.engine.audio();
1010+const art = foundation.processor.artwork();
1111+const inp = foundation.orchestrator.input();
1212+const que = foundation.engine.queue();
1313+const rse = foundation.engine.repeatShuffle();
1414+1515+// Controller
1616+const dac = new ArtworkController();
1717+dac.setAttribute("artwork-processor-selector", art.selector);
1818+dac.setAttribute("audio-engine-selector", aud.selector);
1919+dac.setAttribute("input-selector", inp.selector);
2020+dac.setAttribute("queue-engine-selector", que.selector);
2121+dac.setAttribute("repeat-shuffle-engine-selector", rse.selector);
2222+2323+// Add to DOM
2424+document.body.append(dac);
src/themes/index.js
This is a binary file and will not be displayed.
+43
src/themes/index.vto
···11+---
22+layout: layouts/constituent.vto
33+base: ../
44+55+styles:
66+ - styles/base.css
77+ - styles/diffuse/page.css
88+ - styles/vendor/phosphor/bold/style.css
99+ - styles/vendor/phosphor/fill/style.css
1010+1111+scripts:
1212+ - themes/index.js
1313+---
1414+1515+<header>
1616+ <div>
1717+ <div>
1818+ <a class="diffuse-logo" href="./" style="display: inline-block;">
1919+ {{ await comp.diffuse.logo() }}
2020+ </a>
2121+ </div>
2222+ <p class="construct dither-mask" style="margin-top: 0">
2323+ Themes
2424+ </p>
2525+ <p>
2626+ Themes are element compositions and provide a traditional browser web application way of
2727+ using them. In other words, pretty much the whole thing, besides your data, lives inside a single browser tab.
2828+ </p>
2929+3030+ <p>
3131+ <small>
3232+ <strong><i class="ph-fill ph-info"></i></strong>
3333+ Each theme is unique, not just a skin; each one might have a totally different feature set.
3434+ </small>
3535+ </p>
3636+ </div>
3737+ <div class="dither-mask filler"></div>
3838+</header>
3939+<main>
4040+ <p>
4141+ TODO
4242+ </p>
4343+</main>