Bläddra i källkod

upd ir intervalometer

MX 10 månader sedan
förälder
incheckning
277f17d8f8
2 ändrade filer med 40 tillägg och 17 borttagningar
  1. 2 2
      application.fam
  2. 38 15
      intervalometer.c

+ 2 - 2
application.fam

@@ -10,7 +10,7 @@ App(
     fap_icon_assets="icons",
     fap_author="@Nitepone",
     fap_category="Infrared",
-    fap_description="Intervalometer for Canon, Nikon, and Sony cameras. Uses IR shutter release.",
-    fap_version="1.2",
+    fap_description="Intervalometer for Pentax, Canon, Nikon, and Sony cameras. Uses IR shutter release.",
+    fap_version="2.2",
     fap_weburl="https://github.com/Nitepone/flipper-intervalometer",
 )

+ 38 - 15
intervalometer.c

@@ -40,7 +40,8 @@ enum flipvalo_trigger_variants {
     FvTrigSony = 0,
     FvTrigCanon = 1,
     FvTrigNikon = 2,
-    FvTrigMax = 2,
+    FvTrigPentax = 3,
+    FvTrigMax = 3,
 };
 
 // run config for intervalometer
@@ -162,7 +163,20 @@ static int nikon_ir_trigger_send(void* ctx) {
     return 0;
 }
 
-struct flipvalo_trigger sony_ir_trigger = {.send = sony_ir_trigger_send, .display_name = "Sony IR"};
+uint32_t pentax_ir_timings[] = {
+    13044, 3057, 965, 1023, 967, 1022, 968, 1023, 
+    990, 1053, 966, 1023, 967, 1024, 989
+};
+static int pentax_ir_trigger_send(void* ctx) {
+    UNUSED(ctx);
+    infrared_send_raw_ext(pentax_ir_timings, 15, true, 38000, 0.33);
+    return 0;
+}
+
+struct flipvalo_trigger sony_ir_trigger = {
+    .send = sony_ir_trigger_send,
+    .display_name = "Sony IR"
+};
 
 struct flipvalo_trigger canon_ir_trigger = {
     .send = canon_ir_trigger_send,
@@ -172,20 +186,29 @@ struct flipvalo_trigger nikon_ir_trigger = {
     .send = nikon_ir_trigger_send,
     .display_name = "Nikon IR"};
 
-static struct flipvalo_trigger* flipvalo_get_trigger(enum flipvalo_trigger_variants variant) {
-    switch(variant) {
-    case FvTrigSony:
-        return &sony_ir_trigger;
-    case FvTrigCanon:
-        return &canon_ir_trigger;
-    case FvTrigNikon:
-        return &nikon_ir_trigger;
+struct flipvalo_trigger pentax_ir_trigger = {
+    .send = pentax_ir_trigger_send,
+    .display_name = "Pentax IR"
+};
+
+static struct flipvalo_trigger* flipvalo_get_trigger(
+        enum flipvalo_trigger_variants variant
+) {
+    switch (variant) {
+        case FvTrigSony:
+            return &sony_ir_trigger;
+        case FvTrigCanon:
+            return &canon_ir_trigger;
+        case FvTrigNikon:
+            return &nikon_ir_trigger;
+        case FvTrigPentax:
+            return &pentax_ir_trigger; 
     }
     return NULL;
 }
 
-#define ITEM_H 64 / 3
-#define ITEM_W 128
+#define ITEM_H  64 / 3
+#define ITEM_W  128
 #define VALUE_X 100
 #define VALUE_W 45
 static void flipvalo_config_edit_draw(Canvas* canvas, struct flipvalo_config_edit_view* view) {
@@ -478,9 +501,9 @@ static void flipvalo_run_state_init(struct flipvalo_run_state* fv_run_state) {
     fv_run_state->tick_cur = 0;
 }
 
-static void input_callback(InputEvent* input_event, void* ctx) {
-    furi_assert(ctx);
-    FuriMessageQueue* event_queue = ctx;
+static void input_callback(InputEvent* input_event, void* event_queue_void) {
+    FuriMessageQueue* event_queue = (FuriMessageQueue*)event_queue_void;
+    furi_assert(event_queue);
     struct plugin_event event = {.type = EventTypeKey, .input = *input_event};
     furi_message_queue_put(event_queue, &event, FuriWaitForever);
 }