Commit 3c284dc8 authored by Dennis Real's avatar Dennis Real
Browse files

Support for Active D-Lightning

parent ad5aea8c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ const unsigned int Exif_makernote_nikon_tag_list [] =
  
  132, /* Lens */
  171, /* Digital Vari-Program */
  34,  /* ActiveD-Lighting */
  183, /* AFInfo2 */

  EXIF_NIKON_MAKERNOTE_END   /* end marker */
+65 −0
Original line number Diff line number Diff line
@@ -100,6 +100,7 @@ static void exn_get_prim_af_pt(unsigned int phasedetectaf,
                               unsigned int primafpt,
                               char * buffer,
                               unsigned int maxsize);
static void exn_get_mnote_nikon_34(ExifData *ed, char * buffer, unsigned int maxsize);
static void exn_get_mnote_nikon_168(ExifData *ed, char * buffer, unsigned int maxsize);
static void exn_get_mnote_nikon_183(ExifData *ed, char * buffer, unsigned int maxsize);

@@ -164,6 +165,63 @@ static void exn_get_prim_af_pt(unsigned int phasedetectaf,



/* get ActiveD-Lighting (34) info */
static void exn_get_mnote_nikon_34(ExifData *ed, char * buffer, unsigned int maxsize)
{
  char buf[EXIF_STD_BUF_LEN];
  unsigned int data = 0;
  char *answer;

  buf[0] = '\0';
  exif_get_mnote_tag(ed, 34, buf, sizeof(buf));
  sscanf(buf, "(null): %u", &data);
  
  switch(data)
  {
    case 0:
    {
      answer = "Off";
    }
    break;
    case 1:
    {
      answer = "Low";
    }
    break;
    case 3:
    {
      answer = "Normal";
    }
    break;
    case 5:
    {
      answer = "High";
    }
    break;
    case 7:
    {
      answer = "Extra High";
    }
    break;
    case 65535:
    {
      answer = "Auto";
    }
    break;
    default:
    {
      answer = "N/A"; /* this is not a nikon value */
    }

  }

  snprintf(buffer + strlen(buffer), maxsize - strlen(buffer), "Active D-Lightning: %s\n", 
           answer);
  
}



/* get nikon Flash info: control mode (168) info */
static void exn_get_mnote_nikon_168(ExifData *ed, char * buffer, unsigned int maxsize)
{
@@ -275,6 +333,13 @@ void exn_get_mnote_nikon_tags(ExifData *ed, unsigned int tag, char * buffer, uns
    }
    break;

    case 34:
    {
      /* ActiveD-Lighting */
      exn_get_mnote_nikon_34(ed, buffer + strlen(buffer), maxsize - strlen(buffer));      
    }
    break;
    
    case 168:
    {
      /* Flash info: control mode */