@click="emittMessage"
>
<MessageVisualizer />
- <InputVisualizer />
+ <TextAudioInput />
</svg>
</template>
// child components
import MessageVisualizer from "./messageVisualizer/index.vue";
-import InputVisualizer from "@/components/inputVisualizer/index.vue";
+import TextAudioInput from "@/components/taInput/index.vue";
// event emitter
import { Mitt } from "@/types/mitt/index";
import { defineComponent, ref, inject } from "vue";
export default defineComponent({
name: "Messenger",
- components: { MessageVisualizer, InputVisualizer },
+ components: { MessageVisualizer, TextAudioInput },
setup() {
const messages = Messages;
const count = ref(0);
fill="#b9b9b9"
/>
<svg>
- <g rx="20" id="Group_125" data-name="Group 125" v-for="(path, index) in paths">
+ <g
+ rx="20"
+ id="Group_125"
+ data-name="Group 125"
+ v-for="(path, index) in paths"
+ :key="path.identifier"
+ >
<path
:key="index"
id="path"
},
setup(props) {
const emitter: any = inject("mitt");
- function audioSend() {}
const center = computed(() => {
if (props.bubbleWidth) {
color: string;
draw: boolean;
}
-export default function useStreamVisualizer(draw: Ref<boolean>) {
+export default function useAudioVisualizer(draw: Ref<boolean>) {
const audioContext = new AudioContext();
const analyzer = audioContext.createAnalyser();
analyzer.fftSize = 128;
<script lang="ts">
// input child components
-import TextInput from "./visualizerDetails/text.vue";
-import AudioStream from "./visualizerDetails/audio.vue";
+import TextInput from "./textDetails/text.vue";
+import AudioStream from "./audioDetails/audio.vue";
-import useInputVisualizer from "./visualizer";
+import useInputController from "./inputController";
import { defineComponent } from "vue";
export default defineComponent({
- name: "InputVisualizer",
+ name: "TextAudioInput",
components: { TextInput, AudioStream },
setup() {
// get text input
textInputXoffset,
audioBubbleWidth,
paths,
- } = useInputVisualizer();
+ } = useInputController();
return {
input,
import useMediaStream from "@/utils/mediaStream/useMediaStream";
-import useStreamVisualizer from './visualizerDetails/audioVisualizer';
+import useAudioVisualizer from './audioDetails/audioVisualizer';
-import useTextVisualizer from './visualizerDetails/textVisualizer';
+import useTextVisualizer from './textDetails/textVisualizer';
/*
-* Input visualizer
+* Controls which input to visualize
* Will visualize text input by default as user types or
* if user holds space bar down, input audio stream
* will be visualized & recorded
*/
// NOTE: input params should probably be input and MediaStream
-export default function useInputVisualizer() {
+// TODO: visualize audio stream from nodeJS background process
+export default function useInputController() {
const visualizeStream = ref(false);
const paths = ref([]);
const audioBubbleWidth = ref(10);
const { keyDownHandler, input } = useKeyDownHandler();
const { textInputXoffset, renderTextInput } = useTextVisualizer(input);
- const { visualizeStreamAsPaths, expandBubble } = useStreamVisualizer(visualizeStream);
+ const { visualizeStreamAsPaths, expandBubble } = useAudioVisualizer(visualizeStream);
// stops stream recording on space key up
function keyupHandler(e: any) {