Skip to content

Instantly share code, notes, and snippets.

View raviteja83's full-sized avatar

Ravi theja raviteja83

View GitHub Profile
@raviteja83
raviteja83 / machine.js
Last active January 20, 2023 07:41
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
@raviteja83
raviteja83 / useVideoZoom.js
Last active July 20, 2022 06:08
Hook to zoom in/out video
import { useEffect, useRef } from "react";
let scale = 1;
const factor = 0.01;
const max_scale = 1.425;
export const useVideoZoom = () => {
const ref = useRef(null);
useEffect(() => {
@raviteja83
raviteja83 / AppContext.js
Last active May 16, 2022 08:57
Pin a peer in 100ms sample app
const deepSetPinnedPeer = peerId =>
setState(prevState => ({ ...prevState, pinnedPeer: peerId }));
return (
<AppContext.Provider
value={{
setMaxTileCount: deepSetMaxTiles,
setSubscribedNotifications: deepSetSubscribedNotifications,
setuiViewMode: deepSetuiViewMode,
setShowStatsOnTiles: deepSetShowStatsOnTiles,
@raviteja83
raviteja83 / AnalyserAudioPlugin.js
Last active July 11, 2022 13:47
A plugin to analyse audio level for 100ms local peer.
import { HMSAudioPluginType } from "@100mslive/react-sdk";
export class AnalyserPlugin {
name = "analyser-plugin";
onChange = () => {};
analyserNode = undefined;
constructor(onChange) {
this.onChange = onChange;
}
@raviteja83
raviteja83 / usePeerWithVideo
Created April 6, 2022 10:45
Get list of peers with video's enabled.
import { useEffect, useState } from "react";
import {
selectIsPeerVideoEnabled,
selectPeers,
selectTracksMap,
useHMSStore,
useHMSVanillaStore,
} from "@100mslive/react-sdk";
export const usePeerWithVideo = () => {
@raviteja83
raviteja83 / flatten
Created January 4, 2019 19:35
Flatten nested js arrays
const arr = [[1,2,[3]],4];
const flatten = list => list.reduce(
(result, val) => result.concat(Array.isArray(val) ? flatten(val) : val), []
);
console.log(flatten(arr)); //[1, 2, 3, 4]
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
/**
* Created by Ravi-PC on 04-12-2015.
**/
public class AspectImageView extends ImageView {
@raviteja83
raviteja83 / SelectableAdapter.java
Last active September 25, 2021 08:43
A simple adapter to manage selection in recyclerview
import android.support.v7.widget.RecyclerView;
import android.util.SparseBooleanArray;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Ravi-PC on 04-12-2015.
**/
public abstract class SelectableAdapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> {
@raviteja83
raviteja83 / SineView.java
Last active April 30, 2019 08:46
sinewave
import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.os.Build;
import android.util.AttributeSet;
import android.view.View;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.PorterDuff;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.support.annotation.ColorRes;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.view.View;