forked from LumaTeam/Luma3DS
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request LumaTeam#1065 from panicbit/screen_filter
Implement blue light filters
- Loading branch information
Showing
13 changed files
with
826 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
/* | ||
* This file is part of Luma3DS | ||
* Copyright (C) 2016-2017 Aurora Wright, TuxSH | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation, either version 3 of the License, or | ||
* (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
* | ||
* Additional Terms 7.b and 7.c of GPLv3 apply to this file: | ||
* * Requiring preservation of specified reasonable legal notices or | ||
* author attributions in that material or in the Appropriate Legal | ||
* Notices displayed by works containing it. | ||
* * Prohibiting misrepresentation of the origin of that material, | ||
* or requiring that modified versions of such material be marked in | ||
* reasonable ways as different from the original version. | ||
*/ | ||
|
||
#pragma once | ||
|
||
#include "menu.h" | ||
|
||
extern Menu screenFiltersMenu; | ||
|
||
int screenFiltersCurrentTemperature; | ||
|
||
void screenFiltersSetDisabled(void); | ||
void screenFiltersReduceBlueLevel1(void); | ||
void screenFiltersReduceBlueLevel2(void); | ||
void screenFiltersReduceBlueLevel3(void); | ||
void screenFiltersReduceBlueLevel4(void); | ||
void screenFiltersReduceBlueLevel5(void); | ||
void screenFiltersSetTemperature(int temperature); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
/* colorramp.h -- color temperature calculation header | ||
This file is part of Redshift. | ||
Redshift is free software: you can redistribute it and/or modify | ||
it under the terms of the GNU General Public License as published by | ||
the Free Software Foundation, either version 3 of the License, or | ||
(at your option) any later version. | ||
Redshift is distributed in the hope that it will be useful, | ||
but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
GNU General Public License for more details. | ||
You should have received a copy of the GNU General Public License | ||
along with Redshift. If not, see <http://www.gnu.org/licenses/>. | ||
Copyright (c) 2010-2014 Jon Lund Steffensen <jonlst@gmail.com> | ||
*/ | ||
|
||
#ifndef REDSHIFT_COLORRAMP_H | ||
#define REDSHIFT_COLORRAMP_H | ||
|
||
#include <stdint.h> | ||
|
||
#include "redshift.h" | ||
|
||
void colorramp_fill(uint16_t *gamma_r, uint16_t *gamma_g, uint16_t *gamma_b, | ||
int size, const color_setting_t *setting); | ||
void colorramp_fill_float(float *gamma_r, float *gamma_g, float *gamma_b, | ||
int size, const color_setting_t *setting); | ||
|
||
#endif /* ! REDSHIFT_COLORRAMP_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
/* redshift.h -- Main program header | ||
This file is part of Redshift. | ||
Redshift is free software: you can redistribute it and/or modify | ||
it under the terms of the GNU General Public License as published by | ||
the Free Software Foundation, either version 3 of the License, or | ||
(at your option) any later version. | ||
Redshift is distributed in the hope that it will be useful, | ||
but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
GNU General Public License for more details. | ||
You should have received a copy of the GNU General Public License | ||
along with Redshift. If not, see <http://www.gnu.org/licenses/>. | ||
Copyright (c) 2013-2017 Jon Lund Steffensen <jonlst@gmail.com> | ||
*/ | ||
|
||
#ifndef REDSHIFT_REDSHIFT_H | ||
#define REDSHIFT_REDSHIFT_H | ||
|
||
#include <stdio.h> | ||
#include <stdlib.h> | ||
|
||
/* The color temperature when no adjustment is applied. */ | ||
#define NEUTRAL_TEMP 6500 | ||
|
||
|
||
/* Location */ | ||
typedef struct { | ||
float lat; | ||
float lon; | ||
} location_t; | ||
|
||
/* Periods of day. */ | ||
typedef enum { | ||
PERIOD_NONE = 0, | ||
PERIOD_DAYTIME, | ||
PERIOD_NIGHT, | ||
PERIOD_TRANSITION | ||
} period_t; | ||
|
||
/* Color setting */ | ||
typedef struct { | ||
int temperature; | ||
float gamma[3]; | ||
float brightness; | ||
} color_setting_t; | ||
|
||
/* Program modes. */ | ||
typedef enum { | ||
PROGRAM_MODE_CONTINUAL, | ||
PROGRAM_MODE_ONE_SHOT, | ||
PROGRAM_MODE_PRINT, | ||
PROGRAM_MODE_RESET, | ||
PROGRAM_MODE_MANUAL | ||
} program_mode_t; | ||
|
||
/* Time range. | ||
Fields are offsets from midnight in seconds. */ | ||
typedef struct { | ||
int start; | ||
int end; | ||
} time_range_t; | ||
|
||
/* Transition scheme. | ||
The solar elevations at which the transition begins/ends, | ||
and the association color settings. */ | ||
typedef struct { | ||
double high; | ||
double low; | ||
int use_time; /* When enabled, ignore elevation and use time ranges. */ | ||
time_range_t dawn; | ||
time_range_t dusk; | ||
color_setting_t day; | ||
color_setting_t night; | ||
} transition_scheme_t; | ||
|
||
|
||
/* Gamma adjustment method */ | ||
typedef struct gamma_state gamma_state_t; | ||
|
||
typedef int gamma_method_init_func(gamma_state_t **state); | ||
typedef int gamma_method_start_func(gamma_state_t *state); | ||
typedef void gamma_method_free_func(gamma_state_t *state); | ||
typedef void gamma_method_print_help_func(FILE *f); | ||
typedef int gamma_method_set_option_func(gamma_state_t *state, const char *key, | ||
const char *value); | ||
typedef void gamma_method_restore_func(gamma_state_t *state); | ||
typedef int gamma_method_set_temperature_func( | ||
gamma_state_t *state, const color_setting_t *setting, int preserve); | ||
|
||
typedef struct { | ||
char *name; | ||
|
||
/* If true, this method will be tried if none is explicitly chosen. */ | ||
int autostart; | ||
|
||
/* Initialize state. Options can be set between init and start. */ | ||
gamma_method_init_func *init; | ||
/* Allocate storage and make connections that depend on options. */ | ||
gamma_method_start_func *start; | ||
/* Free all allocated storage and close connections. */ | ||
gamma_method_free_func *free; | ||
|
||
/* Print help on options for this adjustment method. */ | ||
gamma_method_print_help_func *print_help; | ||
/* Set an option key, value-pair */ | ||
gamma_method_set_option_func *set_option; | ||
|
||
/* Restore the adjustment to the state before start was called. */ | ||
gamma_method_restore_func *restore; | ||
/* Set a specific color temperature. */ | ||
gamma_method_set_temperature_func *set_temperature; | ||
} gamma_method_t; | ||
|
||
|
||
/* Location provider */ | ||
typedef struct location_state location_state_t; | ||
|
||
typedef int location_provider_init_func(location_state_t **state); | ||
typedef int location_provider_start_func(location_state_t *state); | ||
typedef void location_provider_free_func(location_state_t *state); | ||
typedef void location_provider_print_help_func(FILE *f); | ||
typedef int location_provider_set_option_func( | ||
location_state_t *state, const char *key, const char *value); | ||
typedef int location_provider_get_fd_func(location_state_t *state); | ||
typedef int location_provider_handle_func( | ||
location_state_t *state, location_t *location, int *available); | ||
|
||
typedef struct { | ||
char *name; | ||
|
||
/* Initialize state. Options can be set between init and start. */ | ||
location_provider_init_func *init; | ||
/* Allocate storage and make connections that depend on options. */ | ||
location_provider_start_func *start; | ||
/* Free all allocated storage and close connections. */ | ||
location_provider_free_func *free; | ||
|
||
/* Print help on options for this location provider. */ | ||
location_provider_print_help_func *print_help; | ||
/* Set an option key, value-pair. */ | ||
location_provider_set_option_func *set_option; | ||
|
||
/* Listen and handle location updates. */ | ||
location_provider_get_fd_func *get_fd; | ||
location_provider_handle_func *handle; | ||
} location_provider_t; | ||
|
||
|
||
#endif /* ! REDSHIFT_REDSHIFT_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
/* | ||
* This file is part of Luma3DS | ||
* Copyright (C) 2016-2017 Aurora Wright, TuxSH, panicbit | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation, either version 3 of the License, or | ||
* (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
* | ||
* Additional Terms 7.b and 7.c of GPLv3 apply to this file: | ||
* * Requiring preservation of specified reasonable legal notices or | ||
* author attributions in that material or in the Appropriate Legal | ||
* Notices displayed by works containing it. | ||
* * Prohibiting misrepresentation of the origin of that material, | ||
* or requiring that modified versions of such material be marked in | ||
* reasonable ways as different from the original version. | ||
*/ | ||
|
||
#include <MyThread.h> | ||
|
||
MyThread *shellOpenCreateThread(void); | ||
void shellOpenThreadMain(void); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.