Skip to content

Instantly share code, notes, and snippets.

View pardeike's full-sized avatar
💭
Innovating 🛠

Andreas Pardeike pardeike

💭
Innovating 🛠
View GitHub Profile
@pardeike
pardeike / VideoPreview.swift
Last active October 15, 2018 10:49
VideoPreviewController
import UIKit
import AVFoundation
open class VideoPreview : UIViewController {
var captureSession: AVCaptureSession!
var camera: AVCaptureDevice!
var preview: AVCaptureVideoPreviewLayer!
func initSession() {
2018-12-20 22:46:18 [log] [PhilipsHueApp] Philips Hue app initiating...
2018-12-20 22:46:21 [log] [ManagerDrivers] [LCT012] [0] ZigBeeDevice has been inited
2018-12-20 22:46:21 [log] [ManagerDrivers] [LCT012] [0] ------------------------------------------
2018-12-20 22:46:21 [log] [ManagerDrivers] [LCT012] [0] Node: 68ea17ae-a624-4046-8f03-cfb76517405d
2018-12-20 22:46:21 [log] [ManagerDrivers] [LCT012] [0] - Battery: false
2018-12-20 22:46:21 [log] [ManagerDrivers] [LCT012] [0] - Endpoints: 0
2018-12-20 22:46:21 [log] [ManagerDrivers] [LCT012] [0] -- Clusters:
2018-12-20 22:46:21 [log] [ManagerDrivers] [LCT012] [0] --- 64513
2018-12-20 22:46:21 [log] [ManagerDrivers] [LCT012] [0] ---- cid : 64513
2018-12-20 22:46:21 [log] [ManagerDrivers] [LCT012] [0] ---- sid : attrs
@pardeike
pardeike / PatchSorting.cs
Last active January 30, 2019 17:50
Sorting Patches Topologically
using System;
using System.Collections.Generic;
using System.Linq;
public static class Program
{
public static void Main()
{
// syntax is: patch,patch,patch
// where patch is: LETTER PRIO BEFORE AFTER
@pardeike
pardeike / ExceptionHandlingConcept.cs
Last active April 17, 2019 16:23
Explaining how Harmony could implement a new type of patch to handle finally blocks
using System;
using System.Reflection;
public static class Program
{
public static void Main(string[] args)
{
try
{
// run original
using System;
public static class Program {
public static void Main() {
Console.WriteLine(DynamicHarmonyWrapper());
}
public static string DynamicHarmonyWrapper() {
string result = default;
@pardeike
pardeike / MethodBuilderGarbageCollection.cs
Created April 26, 2019 19:51
A test that verifies that dynamic assemblies with method builder are garbage collected
using HarmonyLib;
using NUnit.Framework;
using System;
using System.Reflection;
using System.Reflection.Emit;
namespace HarmonyLibTests
{
[TestFixture]
public class TestMethodBuilder
@pardeike
pardeike / DynamicArgumentPatches.cs
Last active July 14, 2019 11:19
DynamicArgumentPatches
using Harmony;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Reflection.Emit;
namespace HarmonyLibTests.IL
{
@pardeike
pardeike / 3DTestMod.cs
Created July 14, 2019 16:21
3D Rimworld Test Mod
using Harmony;
using System.Reflection;
using UnityEngine;
using Verse;
namespace Test
{
class TestMod : Mod
{
public TestMod(ModContentPack content) : base(content)
@pardeike
pardeike / MultiPatches.cs
Created July 26, 2019 21:51
Transpiler Helper for Harmony
public class MultiPatchInfo
{
public MethodBase original;
public MethodInfo replaceFrom;
public MethodInfo replaceTo;
public Func<IEnumerable<CodeInstruction>, IEnumerable<CodeInstruction>> argumentCodes;
public MultiPatchInfo(MethodBase original, MethodInfo replaceFrom, MethodInfo replaceTo, params CodeInstruction[] instructions)
{
this.original = original;
import SwiftUI
class Person: Hashable {
var uuid = UUID().uuidString
var name: String = ""
var toys: [Toy]
init(name: String, _ toys: Toy...) {
self.name = name