Authors of psensor.
jeanfi@gmail.com all files.
-linux.dabao@gmail.com,royclarck po/zh_CN.po
\ No newline at end of file
+linux.dabao@gmail.com,royclarck po/zh_CN.po
+thgreasi@gmail.com src/lib/amd.h src/lib/amd.h
\ No newline at end of file
JSON web interface.
** psensor-server: added monitor.html using jquery and retrieving
monitoring data from the JSON web interface.
+** added support for ATI/AMD gpus and fans.
* v0.6.2.9
src/ui_sensorpref.c
src/rsensor.c
src/server/server.c
+src/lib/amd.c
src/lib/hdd.c
src/lib/nvidia.c
src/lib/lmsensor.c
msgstr ""
"Project-Id-Version: psensor 0.6.0.9\n"
"Report-Msgid-Bugs-To: jeanfi@gmail.com\n"
-"POT-Creation-Date: 2011-07-13 11:01+0200\n"
+"POT-Creation-Date: 2011-07-18 18:20+0200\n"
"PO-Revision-Date: 2011-02-07 21:18+0100\n"
"Last-Translator: Jean-Philippe Orsini <jeanfi@gmail.com>\n"
"Language-Team: Oriya\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: src/main.c:72 src/server/server.c:76
+#: src/main.c:73 src/server/server.c:76
#, fuzzy, c-format
msgid ""
"Copyright (C) %s jeanfi@gmail.com\n"
"Ce logiciel n'est accompagné d'ABSOLUMENT AUCUNE GARANTIE, dans les limites\n"
"autorisees par la loi applicable.\n"
-#: src/main.c:82 src/server/server.c:86
+#: src/main.c:83 src/server/server.c:86
#, c-format
msgid "Usage: %s [OPTION]...\n"
msgstr "Utilisation: %s [OPTION]...\n"
-#: src/main.c:84
+#: src/main.c:85
msgid ""
"psensor is a GTK application for monitoring hardware sensors, including "
"temperatures and fan speeds."
"psensor est une application GTK pour surveiller les sondes matérielles "
"thermiques et les ventilateurs."
-#: src/main.c:88
+#: src/main.c:89
msgid "Options:"
msgstr "Options:"
-#: src/main.c:89 src/server/server.c:93
+#: src/main.c:90 src/server/server.c:93
msgid ""
" -h, --help display this help and exit\n"
" -v, --version display version information and exit"
" -h, --help afficher cette aider et quitter\n"
" -v, --version afficher les informations de version et quitter"
-#: src/main.c:95
+#: src/main.c:96
msgid ""
" -u, --url=URL the URL of the psensor-server, example: http://"
"hostname:3131"
msgstr ""
" -u, --url=URL l'URL de psensor-server, example: http://hostname:3131"
-#: src/main.c:101 src/server/server.c:106
+#: src/main.c:102 src/server/server.c:106
#, c-format
msgid "Report bugs to: %s\n"
msgstr "Signaler les bugs à: %s\n"
-#: src/main.c:103 src/server/server.c:108
+#: src/main.c:104 src/server/server.c:108
#, c-format
msgid "%s home page: <%s>\n"
msgstr "%s page d'acceuil: <%s>\n"
-#: src/main.c:323 src/server/server.c:346
+#: src/main.c:326 src/server/server.c:346
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Essayez `%s --help' pour plus d'informations.\n"
-#: src/main.c:346
-#, fuzzy, c-format
-msgid "ERROR: lmsensor init failure: %s\n"
-msgstr "ERREUR: Echec de l'initialisation de 'lm-sensors'\n"
-
-#: src/main.c:357
+#: src/main.c:355
#, c-format
msgid "ERROR: Not compiled with remote sensor support.\n"
msgstr ""
msgid "URL: http://localhost:%d\n"
msgstr "URL: http://localhost:%d\n"
-#: src/lib/hdd.c:59
+#: src/lib/amd.c:159
#, c-format
-msgid "ERROR: hdd_fetch, failed to open socket\n"
+msgid "ERROR: ADL library not found!\n"
+msgstr ""
+
+#: src/lib/amd.c:184
+#, c-format
+msgid "ERROR: ADL's API is missing!\n"
+msgstr ""
+
+#: src/lib/amd.c:193
+#, fuzzy, c-format
+msgid "ERROR: ADL Initialization Error!\n"
+msgstr "ERREUR: échec de l'initialisation nvidia\n"
+
+#: src/lib/amd.c:201
+#, fuzzy, c-format
+msgid "ERROR: Cannot get the number of adapters!\n"
+msgstr ""
+"ERREUR: Impossible de récuperer la valeur de la sous-fonctionnalité %s: %s\n"
+
+#: src/lib/hdd.c:59
+#, fuzzy, c-format
+msgid "ERROR: hdd fetch, failed to open socket\n"
msgstr "ERREUR: hdd_fetch, écher d'ouverture de la socket\n"
#: src/lib/hdd.c:73
-#, c-format
-msgid "ERROR: hdd_fetch, failed to open connection\n"
+#, fuzzy, c-format
+msgid "ERROR: hdd fetch, failed to open connection\n"
msgstr "ERREUR: hdd_fetch, écher de l'ouverture de la connection\n"
-#: src/lib/hdd.c:182
+#: src/lib/hdd.c:183
#, c-format
msgid "ERROR: wrong hdd string: %s"
msgstr "ERREUR: mauvaise chaine hdd: %s"
-#: src/lib/hdd.c:252
+#: src/lib/hdd.c:253
#, c-format
msgid "ERROR: wrong hdd string: %s\n"
msgstr "ERREUR: mauvaise chaine hdd: %s\n"
msgid "ERROR: failed to retrieve nvidia temperature\n"
msgstr "ERREUR: échec de la récupération des températures nvidia\n"
-#: src/lib/nvidia.c:99
+#: src/lib/nvidia.c:92
#, fuzzy, c-format
msgid "ERROR: Cannot open connection to X Server\n"
msgstr "ERREUR: Echer de la connectio à: %s\n"
-#: src/lib/nvidia.c:107
+#: src/lib/nvidia.c:100
#, fuzzy, c-format
msgid "ERROR: Cannot retrieve NVidia information\n"
msgstr "ERREUR: échec de la récupération des températures nvidia\n"
-#: src/lib/lmsensor.c:43
+#: src/lib/lmsensor.c:44
#, c-format
msgid "ERROR: Can't get value of subfeature %s: %s\n"
msgstr ""
"ERREUR: Impossible de récuperer la valeur de la sous-fonctionnalité %s: %s\n"
-#: src/lib/lmsensor.c:122
+#: src/lib/lmsensor.c:126
#, c-format
msgid "ERROR: create_sensor, wrong feature type\n"
msgstr "ERREUR: create_sensor, mauvais type de fonctionnalité\n"
-#: src/lib/lmsensor.c:166
+#: src/lib/lmsensor.c:209
#, c-format
msgid "ERROR: lm-sensors initialization failure: %s\n"
msgstr "ERREUR: échec de l'initialisation de lm-sensors: %s\n"
-#: src/lib/psensor.c:448
+#: src/lib/psensor.c:422
msgid "C"
msgstr ""
-#: src/lib/psensor.c:451
+#: src/lib/psensor.c:425
msgid "RPM"
msgstr ""
msgid "°C"
msgstr "°C"
+#, fuzzy
+#~ msgid "ERROR: lmsensor init failure: %s\n"
+#~ msgstr "ERREUR: Echec de l'initialisation de 'lm-sensors'\n"
+
#~ msgid "LUATPL Error: failed to load Lua script: %s.\n"
#~ msgstr "LUATPL Erreur: échec du chargement du script LUA: %s.\n"
#~ msgid "LUATPL Error: code: %d.\n"
#~ msgstr "LUATPL Erreur: code: %d.\n"
-#~ msgid "ERROR: nvidia initialization failure\n"
-#~ msgstr "ERREUR: échec de l'initialisation nvidia\n"
-
#~ msgid "ERROR: nvidia initialization failure: %d\n"
#~ msgstr "ERREUR: échec de l'initialisation nvidia: %d\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: jeanfi@gmail.com\n"
-"POT-Creation-Date: 2011-07-13 11:01+0200\n"
+"POT-Creation-Date: 2011-07-18 18:20+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: src/main.c:72 src/server/server.c:76
+#: src/main.c:73 src/server/server.c:76
#, c-format
msgid ""
"Copyright (C) %s jeanfi@gmail.com\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
-#: src/main.c:82 src/server/server.c:86
+#: src/main.c:83 src/server/server.c:86
#, c-format
msgid "Usage: %s [OPTION]...\n"
msgstr ""
-#: src/main.c:84
+#: src/main.c:85
msgid ""
"psensor is a GTK application for monitoring hardware sensors, including "
"temperatures and fan speeds."
msgstr ""
-#: src/main.c:88
+#: src/main.c:89
msgid "Options:"
msgstr ""
-#: src/main.c:89 src/server/server.c:93
+#: src/main.c:90 src/server/server.c:93
msgid ""
" -h, --help display this help and exit\n"
" -v, --version display version information and exit"
msgstr ""
-#: src/main.c:95
+#: src/main.c:96
msgid ""
" -u, --url=URL the URL of the psensor-server, example: http://"
"hostname:3131"
msgstr ""
-#: src/main.c:101 src/server/server.c:106
+#: src/main.c:102 src/server/server.c:106
#, c-format
msgid "Report bugs to: %s\n"
msgstr ""
-#: src/main.c:103 src/server/server.c:108
+#: src/main.c:104 src/server/server.c:108
#, c-format
msgid "%s home page: <%s>\n"
msgstr ""
-#: src/main.c:323 src/server/server.c:346
+#: src/main.c:326 src/server/server.c:346
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
-#: src/main.c:346
-#, c-format
-msgid "ERROR: lmsensor init failure: %s\n"
-msgstr ""
-
-#: src/main.c:357
+#: src/main.c:355
#, c-format
msgid "ERROR: Not compiled with remote sensor support.\n"
msgstr ""
msgid "URL: http://localhost:%d\n"
msgstr ""
+#: src/lib/amd.c:159
+#, c-format
+msgid "ERROR: ADL library not found!\n"
+msgstr ""
+
+#: src/lib/amd.c:184
+#, c-format
+msgid "ERROR: ADL's API is missing!\n"
+msgstr ""
+
+#: src/lib/amd.c:193
+#, c-format
+msgid "ERROR: ADL Initialization Error!\n"
+msgstr ""
+
+#: src/lib/amd.c:201
+#, c-format
+msgid "ERROR: Cannot get the number of adapters!\n"
+msgstr ""
+
#: src/lib/hdd.c:59
#, c-format
-msgid "ERROR: hdd_fetch, failed to open socket\n"
+msgid "ERROR: hdd fetch, failed to open socket\n"
msgstr ""
#: src/lib/hdd.c:73
#, c-format
-msgid "ERROR: hdd_fetch, failed to open connection\n"
+msgid "ERROR: hdd fetch, failed to open connection\n"
msgstr ""
-#: src/lib/hdd.c:182
+#: src/lib/hdd.c:183
#, c-format
msgid "ERROR: wrong hdd string: %s"
msgstr ""
-#: src/lib/hdd.c:252
+#: src/lib/hdd.c:253
#, c-format
msgid "ERROR: wrong hdd string: %s\n"
msgstr ""
msgid "ERROR: failed to retrieve nvidia temperature\n"
msgstr ""
-#: src/lib/nvidia.c:99
+#: src/lib/nvidia.c:92
#, c-format
msgid "ERROR: Cannot open connection to X Server\n"
msgstr ""
-#: src/lib/nvidia.c:107
+#: src/lib/nvidia.c:100
#, c-format
msgid "ERROR: Cannot retrieve NVidia information\n"
msgstr ""
-#: src/lib/lmsensor.c:43
+#: src/lib/lmsensor.c:44
#, c-format
msgid "ERROR: Can't get value of subfeature %s: %s\n"
msgstr ""
-#: src/lib/lmsensor.c:122
+#: src/lib/lmsensor.c:126
#, c-format
msgid "ERROR: create_sensor, wrong feature type\n"
msgstr ""
-#: src/lib/lmsensor.c:166
+#: src/lib/lmsensor.c:209
#, c-format
msgid "ERROR: lm-sensors initialization failure: %s\n"
msgstr ""
-#: src/lib/psensor.c:448
+#: src/lib/psensor.c:422
msgid "C"
msgstr ""
-#: src/lib/psensor.c:451
+#: src/lib/psensor.c:425
msgid "RPM"
msgstr ""
msgstr ""
"Project-Id-Version: psensor\n"
"Report-Msgid-Bugs-To: jeanfi@gmail.com\n"
-"POT-Creation-Date: 2011-07-13 11:01+0200\n"
+"POT-Creation-Date: 2011-07-18 18:20+0200\n"
"PO-Revision-Date: 2011-04-10 13:11+0000\n"
"Last-Translator: zeugma <Unknown>\n"
"Language-Team: Turkish <tr@li.org>\n"
"X-Launchpad-Export-Date: 2011-04-11 05:41+0000\n"
"X-Generator: Launchpad (build 12735)\n"
-#: src/main.c:72 src/server/server.c:76
+#: src/main.c:73 src/server/server.c:76
#, c-format
msgid ""
"Copyright (C) %s jeanfi@gmail.com\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
-#: src/main.c:82 src/server/server.c:86
+#: src/main.c:83 src/server/server.c:86
#, c-format
msgid "Usage: %s [OPTION]...\n"
msgstr "Kullanım: %s [SEÇENEK]...\n"
-#: src/main.c:84
+#: src/main.c:85
msgid ""
"psensor is a GTK application for monitoring hardware sensors, including "
"temperatures and fan speeds."
msgstr ""
-#: src/main.c:88
+#: src/main.c:89
msgid "Options:"
msgstr ""
-#: src/main.c:89 src/server/server.c:93
+#: src/main.c:90 src/server/server.c:93
msgid ""
" -h, --help display this help and exit\n"
" -v, --version display version information and exit"
msgstr ""
-#: src/main.c:95
+#: src/main.c:96
msgid ""
" -u, --url=URL the URL of the psensor-server, example: http://"
"hostname:3131"
msgstr ""
-#: src/main.c:101 src/server/server.c:106
+#: src/main.c:102 src/server/server.c:106
#, c-format
msgid "Report bugs to: %s\n"
msgstr "Hataları rapor et:%s\n"
-#: src/main.c:103 src/server/server.c:108
+#: src/main.c:104 src/server/server.c:108
#, c-format
msgid "%s home page: <%s>\n"
msgstr "%s ana sayfa: <%s>\n"
-#: src/main.c:323 src/server/server.c:346
+#: src/main.c:326 src/server/server.c:346
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Daha fazla bilgi için `%s --help' yazın.\n"
-#: src/main.c:346
-#, c-format
-msgid "ERROR: lmsensor init failure: %s\n"
-msgstr ""
-
-#: src/main.c:357
+#: src/main.c:355
#, c-format
msgid "ERROR: Not compiled with remote sensor support.\n"
msgstr ""
msgid "URL: http://localhost:%d\n"
msgstr ""
+#: src/lib/amd.c:159
+#, c-format
+msgid "ERROR: ADL library not found!\n"
+msgstr ""
+
+#: src/lib/amd.c:184
+#, c-format
+msgid "ERROR: ADL's API is missing!\n"
+msgstr ""
+
+#: src/lib/amd.c:193
+#, c-format
+msgid "ERROR: ADL Initialization Error!\n"
+msgstr ""
+
+#: src/lib/amd.c:201
+#, c-format
+msgid "ERROR: Cannot get the number of adapters!\n"
+msgstr ""
+
#: src/lib/hdd.c:59
#, c-format
-msgid "ERROR: hdd_fetch, failed to open socket\n"
+msgid "ERROR: hdd fetch, failed to open socket\n"
msgstr ""
#: src/lib/hdd.c:73
#, c-format
-msgid "ERROR: hdd_fetch, failed to open connection\n"
+msgid "ERROR: hdd fetch, failed to open connection\n"
msgstr ""
-#: src/lib/hdd.c:182
+#: src/lib/hdd.c:183
#, c-format
msgid "ERROR: wrong hdd string: %s"
msgstr ""
-#: src/lib/hdd.c:252
+#: src/lib/hdd.c:253
#, c-format
msgid "ERROR: wrong hdd string: %s\n"
msgstr ""
msgid "ERROR: failed to retrieve nvidia temperature\n"
msgstr ""
-#: src/lib/nvidia.c:99
+#: src/lib/nvidia.c:92
#, c-format
msgid "ERROR: Cannot open connection to X Server\n"
msgstr ""
-#: src/lib/nvidia.c:107
+#: src/lib/nvidia.c:100
#, c-format
msgid "ERROR: Cannot retrieve NVidia information\n"
msgstr ""
-#: src/lib/lmsensor.c:43
+#: src/lib/lmsensor.c:44
#, c-format
msgid "ERROR: Can't get value of subfeature %s: %s\n"
msgstr ""
-#: src/lib/lmsensor.c:122
+#: src/lib/lmsensor.c:126
#, c-format
msgid "ERROR: create_sensor, wrong feature type\n"
msgstr ""
-#: src/lib/lmsensor.c:166
+#: src/lib/lmsensor.c:209
#, c-format
msgid "ERROR: lm-sensors initialization failure: %s\n"
msgstr ""
-#: src/lib/psensor.c:448
+#: src/lib/psensor.c:422
msgid "C"
msgstr ""
-#: src/lib/psensor.c:451
+#: src/lib/psensor.c:425
msgid "RPM"
msgstr ""
msgstr ""
"Project-Id-Version: psensor 0.6.0.10\n"
"Report-Msgid-Bugs-To: jeanfi@gmail.com\n"
-"POT-Creation-Date: 2011-07-13 11:01+0200\n"
+"POT-Creation-Date: 2011-07-18 18:20+0200\n"
"PO-Revision-Date: 2011-06-06 08:57+0000\n"
"Last-Translator: royclark <Unknown>\n"
"Language-Team: Chinese (simplified)\n"
"X-Launchpad-Export-Date: 2011-06-06 09:00+0000\n"
"X-Generator: Launchpad (build 13144)\n"
-#: src/main.c:72 src/server/server.c:76
+#: src/main.c:73 src/server/server.c:76
#, c-format
msgid ""
"Copyright (C) %s jeanfi@gmail.com\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
-#: src/main.c:82 src/server/server.c:86
+#: src/main.c:83 src/server/server.c:86
#, c-format
msgid "Usage: %s [OPTION]...\n"
msgstr "用法:%s [选项]...\n"
-#: src/main.c:84
+#: src/main.c:85
msgid ""
"psensor is a GTK application for monitoring hardware sensors, including "
"temperatures and fan speeds."
msgstr "psensor 是一个 GTK 程序,用来监视硬件传感器,包括温度和风扇转速。"
-#: src/main.c:88
+#: src/main.c:89
msgid "Options:"
msgstr ""
-#: src/main.c:89 src/server/server.c:93
+#: src/main.c:90 src/server/server.c:93
msgid ""
" -h, --help display this help and exit\n"
" -v, --version display version information and exit"
" -h, --help 显示这个帮助并退出\n"
" -v, --version 显示版本信息并退出"
-#: src/main.c:95
+#: src/main.c:96
msgid ""
" -u, --url=URL the URL of the psensor-server, example: http://"
"hostname:3131"
msgstr " -u, --url=URL psensor服务器的 URL ,比如:http://hostname:3131"
-#: src/main.c:101 src/server/server.c:106
+#: src/main.c:102 src/server/server.c:106
#, c-format
msgid "Report bugs to: %s\n"
msgstr ""
-#: src/main.c:103 src/server/server.c:108
+#: src/main.c:104 src/server/server.c:108
#, c-format
msgid "%s home page: <%s>\n"
msgstr ""
-#: src/main.c:323 src/server/server.c:346
+#: src/main.c:326 src/server/server.c:346
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
-#: src/main.c:346
-#, c-format
-msgid "ERROR: lmsensor init failure: %s\n"
-msgstr ""
-
-#: src/main.c:357
+#: src/main.c:355
#, c-format
msgid "ERROR: Not compiled with remote sensor support.\n"
msgstr ""
msgid "URL: http://localhost:%d\n"
msgstr ""
+#: src/lib/amd.c:159
+#, c-format
+msgid "ERROR: ADL library not found!\n"
+msgstr ""
+
+#: src/lib/amd.c:184
+#, c-format
+msgid "ERROR: ADL's API is missing!\n"
+msgstr ""
+
+#: src/lib/amd.c:193
+#, c-format
+msgid "ERROR: ADL Initialization Error!\n"
+msgstr ""
+
+#: src/lib/amd.c:201
+#, c-format
+msgid "ERROR: Cannot get the number of adapters!\n"
+msgstr ""
+
#: src/lib/hdd.c:59
#, c-format
-msgid "ERROR: hdd_fetch, failed to open socket\n"
+msgid "ERROR: hdd fetch, failed to open socket\n"
msgstr ""
#: src/lib/hdd.c:73
#, c-format
-msgid "ERROR: hdd_fetch, failed to open connection\n"
+msgid "ERROR: hdd fetch, failed to open connection\n"
msgstr ""
-#: src/lib/hdd.c:182
+#: src/lib/hdd.c:183
#, c-format
msgid "ERROR: wrong hdd string: %s"
msgstr ""
-#: src/lib/hdd.c:252
+#: src/lib/hdd.c:253
#, c-format
msgid "ERROR: wrong hdd string: %s\n"
msgstr ""
msgid "ERROR: failed to retrieve nvidia temperature\n"
msgstr ""
-#: src/lib/nvidia.c:99
+#: src/lib/nvidia.c:92
#, c-format
msgid "ERROR: Cannot open connection to X Server\n"
msgstr ""
-#: src/lib/nvidia.c:107
+#: src/lib/nvidia.c:100
#, c-format
msgid "ERROR: Cannot retrieve NVidia information\n"
msgstr ""
-#: src/lib/lmsensor.c:43
+#: src/lib/lmsensor.c:44
#, c-format
msgid "ERROR: Can't get value of subfeature %s: %s\n"
msgstr ""
-#: src/lib/lmsensor.c:122
+#: src/lib/lmsensor.c:126
#, c-format
msgid "ERROR: create_sensor, wrong feature type\n"
msgstr ""
-#: src/lib/lmsensor.c:166
+#: src/lib/lmsensor.c:209
#, c-format
msgid "ERROR: lm-sensors initialization failure: %s\n"
msgstr ""
-#: src/lib/psensor.c:448
+#: src/lib/psensor.c:422
msgid "C"
msgstr ""
-#: src/lib/psensor.c:451
+#: src/lib/psensor.c:425
msgid "RPM"
msgstr ""
noinst_LIBRARIES = libpsensor.a
-libpsensor_a_CFLAGS = -pedantic -Werror
+libpsensor_a_CFLAGS = -Werror
libpsensor_a_SOURCES = \
+ amd.h \
measure.h measure.c \
color.h color.c \
psensor.h psensor.c\
if LIBATIADL
LIBS += $(LIBATIADL_LIBS)
AM_CPPFLAGS = $(LIBATIADL_CFLAGS)
-endif
\ No newline at end of file
+else
+libpsensor_a_CFLAGS += -pedantic
+endif
+
+EXTRA_DIST=$(libpsensor_a_SOURCES) \
+ amd.c \
+ nvidia.c
\ No newline at end of file
host_triplet = @host@
@NVIDIA_TRUE@am__append_1 = nvidia.c
@LIBATIADL_TRUE@am__append_2 = $(LIBATIADL_LIBS)
+@LIBATIADL_FALSE@am__append_3 = -pedantic
subdir = src/lib
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
ARFLAGS = cru
libpsensor_a_AR = $(AR) $(ARFLAGS)
libpsensor_a_LIBADD =
-am__libpsensor_a_SOURCES_DIST = measure.h measure.c color.h color.c \
- psensor.h psensor.c hdd.h hdd.c nvidia.h lmsensor.h lmsensor.c \
- nvidia.c
+am__libpsensor_a_SOURCES_DIST = amd.h measure.h measure.c color.h \
+ color.c psensor.h psensor.c hdd.h hdd.c nvidia.h lmsensor.h \
+ lmsensor.c nvidia.c
@NVIDIA_TRUE@am__objects_1 = libpsensor_a-nvidia.$(OBJEXT)
am_libpsensor_a_OBJECTS = libpsensor_a-measure.$(OBJEXT) \
libpsensor_a-color.$(OBJEXT) libpsensor_a-psensor.$(OBJEXT) \
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
noinst_LIBRARIES = libpsensor.a
-libpsensor_a_CFLAGS = -pedantic -Werror
-libpsensor_a_SOURCES = measure.h measure.c color.h color.c psensor.h \
- psensor.c hdd.h hdd.c nvidia.h lmsensor.h lmsensor.c \
+libpsensor_a_CFLAGS = -Werror $(am__append_3)
+libpsensor_a_SOURCES = amd.h measure.h measure.c color.h color.c \
+ psensor.h psensor.c hdd.h hdd.c nvidia.h lmsensor.h lmsensor.c \
$(am__append_1)
@LIBATIADL_TRUE@AM_CPPFLAGS = $(LIBATIADL_CFLAGS)
+EXTRA_DIST = $(libpsensor_a_SOURCES) \
+ amd.c \
+ nvidia.c
+
all: all-am
.SUFFIXES:
--- /dev/null
+/*
+ Copyright (C) 2010-2011 thgreasi@gmail.com
+
+ 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 2 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, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA
+*/
+#ifndef LINUX
+#define LINUX 1
+#endif
+#ifdef HAVE_LIBATIADL
+ /* AMD id for the aticonfig */
+ int amd_id;
+#endif
+
+#include <locale.h>
+#include <libintl.h>
+#define _(str) gettext(str)
+
+#include <dlfcn.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <adl_sdk.h>
+
+#include "psensor.h"
+
+typedef int (*ADL_MAIN_CONTROL_CREATE)(ADL_MAIN_MALLOC_CALLBACK, int);
+typedef int (*ADL_MAIN_CONTROL_DESTROY)();
+typedef int (*ADL_ADAPTER_NUMBEROFADAPTERS_GET) (int *);
+typedef int (*ADL_ADAPTER_ADAPTERINFO_GET) (LPAdapterInfo, int);
+typedef int (*ADL_ADAPTER_ACTIVE_GET) (int, int*);
+typedef int (*ADL_OVERDRIVE5_TEMPERATURE_GET) (int, int, ADLTemperature*);
+typedef int (*ADL_OVERDRIVE5_FANSPEED_GET) (int, int, ADLFanSpeedValue*);
+
+static ADL_MAIN_CONTROL_CREATE adl_main_control_create;
+static ADL_MAIN_CONTROL_DESTROY adl_main_control_destroy;
+static ADL_ADAPTER_NUMBEROFADAPTERS_GET adl_adapter_numberofadapters_get;
+static ADL_ADAPTER_ADAPTERINFO_GET adl_adapter_adapterinfo_get;
+static ADL_ADAPTER_ACTIVE_GET adl_adapter_active_get;
+static ADL_OVERDRIVE5_TEMPERATURE_GET adl_overdrive5_temperature_get;
+static ADL_OVERDRIVE5_FANSPEED_GET adl_overdrive5_fanspeed_get;
+
+static void *hdll;
+static int adl_main_control_done;
+static int *active_amd_adapters;
+
+/* Memory allocation function */
+static void __stdcall *adl_main_memory_alloc(int isize)
+{
+ void *lpbuffer = malloc(isize);
+ return lpbuffer;
+}
+
+/* Optional Memory de-allocation function */
+static void __stdcall adl_main_memory_free(void **lpbuffer)
+{
+ if (*lpbuffer) {
+ free(*lpbuffer);
+ *lpbuffer = NULL;
+ }
+}
+
+static void *getprocaddress(void *plibrary, const char * name)
+{
+ return dlsym(plibrary, name);
+}
+
+/*
+ Returns the temperature (Celcius) of an AMD/Ati GPU.
+*/
+static double get_temp(struct psensor *sensor)
+{
+ ADLTemperature temperature;
+
+ temperature.iSize = sizeof(ADLTemperature);
+ temperature.iTemperature = -273;
+ if (ADL_OK != adl_overdrive5_temperature_get(sensor->amd_id,
+ 0, &temperature))
+ return UNKNOWN_DBL_VALUE;
+
+ return temperature.iTemperature/1000;
+}
+
+static double get_fanspeed(struct psensor *sensor)
+{
+ ADLFanSpeedValue fanspeedvalue;
+
+ fanspeedvalue.iSize = sizeof(ADLFanSpeedValue);
+ fanspeedvalue.iSpeedType = ADL_DL_FANCTRL_SPEED_TYPE_RPM;
+ fanspeedvalue.iFanSpeed = -1;
+ if (ADL_OK != adl_overdrive5_fanspeed_get(sensor->amd_id,
+ 0, &fanspeedvalue))
+ return UNKNOWN_DBL_VALUE;
+
+ return fanspeedvalue.iFanSpeed;
+}
+
+static struct psensor *create_sensor(int id, int values_len)
+{
+ char name[200];
+ char *sid;
+ int sensor_type;
+
+ struct psensor *s;
+
+ if (id & 1) {/* odd number ids represent fan sensors */
+ id = id >> 1;
+ sprintf(name, "GPU%dfan", id);
+ sensor_type = SENSOR_TYPE_AMD_FAN;
+ } else {/* even number ids represent temperature sensors */
+ id = id >> 1;
+ sprintf(name, "GPU%dtemp", id);
+ sensor_type = SENSOR_TYPE_AMD_TEMP;
+ }
+
+ sid = malloc(strlen("AMD") + 1 + strlen(name) + 1);
+ sprintf(sid, "AMD %s", name);
+
+ s = psensor_create(sid, strdup(name),
+ sensor_type, values_len);
+
+ s->amd_id = active_amd_adapters[id];
+
+ return s;
+}
+
+/*
+ Returns the number of AMD/Ati GPU sensors (temperature and fan
+ speed).
+
+ Return 0 if no AMD/Ati gpus or cannot get information.
+*/
+static int init()
+{
+ LPAdapterInfo lpadapterinfo = NULL;
+ int i, inumberadapters, inumberadaptersactive = 0;
+ int lpstatus, iadapterindex;
+
+ hdll = NULL;
+ adl_main_control_done = 0;
+ active_amd_adapters = NULL;
+ hdll = dlopen("libatiadlxx.so", RTLD_LAZY|RTLD_GLOBAL);
+
+ if (!hdll) {
+ fprintf(stderr,
+ _("ERROR: ADL library not found!\n"));
+ return 0;
+ }
+
+ adl_main_control_create = (ADL_MAIN_CONTROL_CREATE)
+ getprocaddress(hdll, "ADL_Main_Control_Create");
+ adl_main_control_destroy = (ADL_MAIN_CONTROL_DESTROY)
+ getprocaddress(hdll, "ADL_Main_Control_Destroy");
+ adl_adapter_numberofadapters_get = (ADL_ADAPTER_NUMBEROFADAPTERS_GET)
+ getprocaddress(hdll, "ADL_Adapter_NumberOfAdapters_Get");
+ adl_adapter_adapterinfo_get = (ADL_ADAPTER_ADAPTERINFO_GET)
+ getprocaddress(hdll, "ADL_Adapter_AdapterInfo_Get");
+ adl_adapter_active_get = (ADL_ADAPTER_ACTIVE_GET)
+ getprocaddress(hdll, "ADL_Adapter_Active_Get");
+ adl_overdrive5_temperature_get = (ADL_OVERDRIVE5_TEMPERATURE_GET)
+ getprocaddress(hdll, "ADL_Overdrive5_Temperature_Get");
+ adl_overdrive5_fanspeed_get = (ADL_OVERDRIVE5_FANSPEED_GET)
+ getprocaddress(hdll, "ADL_Overdrive5_FanSpeed_Get");
+ if (!adl_main_control_create ||
+ !adl_main_control_destroy ||
+ !adl_adapter_numberofadapters_get ||
+ !adl_adapter_adapterinfo_get ||
+ !adl_overdrive5_temperature_get ||
+ !adl_overdrive5_fanspeed_get) {
+ fprintf(stderr,
+ _("ERROR: ADL's API is missing!\n"));
+ return 0;
+ }
+
+ /* Initialize ADL. The second parameter is 1, which means:
+ retrieve adapter information only for adapters that
+ are physically present and enabled in the system */
+ if (ADL_OK != adl_main_control_create(adl_main_memory_alloc, 1)) {
+ fprintf(stderr,
+ _("ERROR: ADL Initialization Error!\n"));
+ return 0;
+ }
+ adl_main_control_done = 1;
+
+ /* Obtain the number of adapters for the system */
+ if (ADL_OK != adl_adapter_numberofadapters_get(&inumberadapters)) {
+ fprintf(stderr,
+ _("ERROR: Cannot get the number of adapters!\n"));
+ return 0;
+ }
+
+ if (!inumberadapters)
+ return 0;
+
+ lpadapterinfo = malloc(sizeof(AdapterInfo) * inumberadapters);
+ memset(lpadapterinfo, '\0', sizeof(AdapterInfo) * inumberadapters);
+
+ /* Get the AdapterInfo structure for all adapters in the system */
+ adl_adapter_adapterinfo_get(lpadapterinfo,
+ sizeof(AdapterInfo) * inumberadapters);
+
+ /* Repeat for all available adapters in the system */
+ for (i = 0; i < inumberadapters; i++) {
+ iadapterindex = lpadapterinfo[i].iAdapterIndex;
+ if (ADL_OK != adl_adapter_active_get(iadapterindex, &lpstatus))
+ continue;
+ if (lpstatus != ADL_TRUE)
+ /* count only if the adapter is active */
+ continue;
+
+ if (!active_amd_adapters) {
+ active_amd_adapters = (int *) malloc(sizeof(int));
+ inumberadaptersactive = 1;
+ } else {
+ ++inumberadaptersactive;
+ active_amd_adapters =
+ (int *) realloc(active_amd_adapters,
+ sizeof(int)*inumberadaptersactive);
+ }
+ active_amd_adapters[inumberadaptersactive-1] = iadapterindex;
+ }
+
+ adl_main_memory_free((void **) &lpadapterinfo);
+
+ /* Each Adapter has one GPU temperature
+ sensor and one fan control sensor */
+ return 2*inumberadaptersactive;
+}
+
+void amd_psensor_list_update(struct psensor **sensors)
+{
+ struct psensor **ss, *s;
+
+ ss = sensors;
+ while (*ss) {
+ s = *ss;
+
+ if (s->type == SENSOR_TYPE_AMD_TEMP)
+ psensor_set_current_value(s, get_temp(s));
+ else if (s->type == SENSOR_TYPE_AMD_FAN)
+ psensor_set_current_value(s, get_fanspeed(s));
+
+ ss++;
+ }
+}
+
+struct psensor * *
+amd_psensor_list_add(struct psensor **sensors, int values_len)
+{
+ int i, n;
+ struct psensor **tmp, **ss, *s;
+
+ n = init();
+
+ ss = sensors;
+ for (i = 0; i < n; i++) {
+ s = create_sensor(i, values_len);
+
+ tmp = psensor_list_add(ss, s);
+
+ if (ss != tmp)
+ free(ss);
+
+ ss = tmp;
+ }
+
+ return ss;
+}
+
+void amd_cleanup()
+{
+ if (hdll) {
+ if (adl_main_control_done)
+ adl_main_control_destroy();
+ dlclose(hdll);
+ }
+
+ if (active_amd_adapters) {
+ free(active_amd_adapters);
+ active_amd_adapters = NULL;
+ }
+}
--- /dev/null
+/*
+ Copyright (C) 2010-2011 thgreasi@gmail.com
+
+ 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 2 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, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA
+*/
+#ifndef LINUX
+#define LINUX 1
+#endif
+#ifdef HAVE_LIBATIADL
+ /* AMD id for the aticonfig */
+ int amd_id;
+#endif
+
+#include <locale.h>
+#include <libintl.h>
+#define _(str) gettext(str)
+
+#include <adl_sdk.h>
+#include <dlfcn.h> /* dyopen, dlsym, dlclose */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h> /* memeset */
+
+#include "psensor.h"
+
+/* Definitions of the used function pointers.
+ Add more if you use other ADL APIs */
+typedef int (*ADL_MAIN_CONTROL_CREATE)(ADL_MAIN_MALLOC_CALLBACK, int);
+typedef int (*ADL_MAIN_CONTROL_DESTROY)();
+typedef int (*ADL_ADAPTER_NUMBEROFADAPTERS_GET) (int *);
+typedef int (*ADL_ADAPTER_ADAPTERINFO_GET) (LPAdapterInfo, int);
+typedef int (*ADL_ADAPTER_ACTIVE_GET) (int, int*);
+typedef int (*ADL_OVERDRIVE5_TEMPERATURE_GET) (int, int, ADLTemperature*);
+typedef int (*ADL_OVERDRIVE5_FANSPEED_GET) (int, int, ADLFanSpeedValue*);
+
+static ADL_MAIN_CONTROL_CREATE adl_main_control_create;
+static ADL_MAIN_CONTROL_DESTROY adl_main_control_destroy;
+static ADL_ADAPTER_NUMBEROFADAPTERS_GET adl_adapter_numberofadapters_get;
+static ADL_ADAPTER_ADAPTERINFO_GET adl_adapter_adapterinfo_get;
+static ADL_ADAPTER_ACTIVE_GET adl_adapter_active_get;
+static ADL_OVERDRIVE5_TEMPERATURE_GET adl_overdrive5_temperature_get;
+static ADL_OVERDRIVE5_FANSPEED_GET adl_overdrive5_fanspeed_get;
+
+static void *hdll;
+static int adl_main_control_done;
+static int *active_amd_adapters;
+
+/* Memory allocation function */
+static void __stdcall *adl_main_memory_alloc(int isize)
+{
+ void *lpbuffer = malloc(isize);
+ return lpbuffer;
+}
+
+/* Optional Memory de-allocation function */
+static void __stdcall adl_main_memory_free(void** lpbuffer)
+{
+ if (*lpbuffer) {
+ free(*lpbuffer);
+ *lpbuffer = NULL;
+ }
+}
+
+static void *getprocaddress(void * plibrary, const char * name)
+{
+ return dlsym(plibrary, name);
+}
+
+/*
+ Returns the temperature (Celcius) of an AMD/Ati GPU.
+*/
+static int get_temp(struct psensor *sensor)
+{
+ ADLTemperature temperature;
+
+ temperature.iSize = sizeof(ADLTemperature);
+ temperature.iTemperature = -273;
+ if (ADL_OK != adl_overdrive5_temperature_get(sensor->amd_id,
+ 0, &temperature))
+ return -273;
+
+ return temperature.iTemperature/1000;
+}
+
+static int get_fanspeed(struct psensor *sensor)
+{
+ ADLFanSpeedValue fanspeedvalue;
+
+ fanspeedvalue.iSize = sizeof(ADLFanSpeedValue);
+ fanspeedvalue.iSpeedType = ADL_DL_FANCTRL_SPEED_TYPE_RPM;
+ fanspeedvalue.iFanSpeed = -1;
+ if (ADL_OK != adl_overdrive5_fanspeed_get(sensor->amd_id,
+ 0, &fanspeedvalue))
+ return -1;
+
+ return fanspeedvalue.iFanSpeed;
+}
+
+static struct psensor *create_sensor(int id, int values_len)
+{
+ char name[200];
+ char *sid;
+ int sensor_type;
+
+ struct psensor *s;
+
+ if (id & 1) {/* odd number ids represent fan sensors */
+ id = id >> 1;
+ sprintf(name, "GPU%dfan", id);
+ sensor_type = SENSOR_TYPE_AMD_FAN;
+ } else {/* even number ids represent temperature sensors */
+ id = id >> 1;
+ sprintf(name, "GPU%dtemp", id);
+ sensor_type = SENSOR_TYPE_AMD_TEMP;
+ }
+
+ sid = malloc(strlen("AMD") + 1 + strlen(name) + 1);
+ sprintf(sid, "AMD %s", name);
+
+ s = psensor_create(sid, strdup(name),
+ sensor_type, values_len);
+
+ s->amd_id = active_amd_adapters[id];
+
+ return s;
+}
+
+/*
+ Returns the number of AMD/Ati GPU sensors (temperature and fan speed).
+
+ Return 0 if no AMD/Ati gpus or cannot get information.
+*/
+static int init()
+{
+ LPAdapterInfo lpadapterinfo = NULL;
+ int i, inumberadapters, inumberadaptersactive = 0;
+ int lpstatus, iadapterindex;
+
+ hdll = NULL;
+ adl_main_control_done = 0;
+ active_amd_adapters = NULL;
+ hdll = dlopen("libatiadlxx.so", RTLD_LAZY|RTLD_GLOBAL);
+
+
+ if (!hdll) {
+ fprintf(stderr,
+ _("ERROR: ADL library not found!\n"));
+ return 0;
+ }
+
+ adl_main_control_create = (ADL_MAIN_CONTROL_CREATE)
+ getprocaddress(hdll, "ADL_Main_Control_Create");
+ adl_main_control_destroy = (ADL_MAIN_CONTROL_DESTROY)
+ getprocaddress(hdll, "ADL_Main_Control_Destroy");
+ adl_adapter_numberofadapters_get = (ADL_ADAPTER_NUMBEROFADAPTERS_GET)
+ getprocaddress(hdll, "ADL_Adapter_NumberOfAdapters_Get");
+ adl_adapter_adapterinfo_get = (ADL_ADAPTER_ADAPTERINFO_GET)
+ getprocaddress(hdll, "ADL_Adapter_AdapterInfo_Get");
+ adl_adapter_active_get = (ADL_ADAPTER_ACTIVE_GET)
+ getprocaddress(hdll, "ADL_Adapter_Active_Get");
+ adl_overdrive5_temperature_get = (ADL_OVERDRIVE5_TEMPERATURE_GET)
+ getprocaddress(hdll, "ADL_Overdrive5_Temperature_Get");
+ adl_overdrive5_fanspeed_get = (ADL_OVERDRIVE5_FANSPEED_GET)
+ getprocaddress(hdll, "ADL_Overdrive5_FanSpeed_Get");
+ if (!adl_main_control_create ||
+ !adl_main_control_destroy ||
+ !adl_adapter_numberofadapters_get ||
+ !adl_adapter_adapterinfo_get ||
+ !adl_overdrive5_temperature_get ||
+ !adl_overdrive5_fanspeed_get) {
+ fprintf(stderr,
+ _("ERROR: ADL's API is missing!\n"));
+ return 0;
+ }
+
+ /* Initialize ADL. The second parameter is 1, which means:
+ retrieve adapter information only for adapters that
+ are physically present and enabled in the system */
+ if (ADL_OK != adl_main_control_create(adl_main_memory_alloc, 1)) {
+ fprintf(stderr,
+ _("ERROR: ADL Initialization Error!\n"));
+ return 0;
+ }
+ adl_main_control_done = 1;
+
+ /* Obtain the number of adapters for the system */
+ if (ADL_OK != adl_adapter_numberofadapters_get(&inumberadapters)) {
+ fprintf(stderr,
+ _("ERROR: Cannot get the number of adapters!\n"));
+ return 0;
+ }
+
+ if (!inumberadapters)
+ return 0;
+
+ lpadapterinfo = malloc(sizeof(AdapterInfo) * inumberadapters);
+ memset(lpadapterinfo, '\0', sizeof(AdapterInfo) * inumberadapters);
+
+ /* Get the AdapterInfo structure for all adapters in the system */
+ adl_adapter_adapterinfo_get(lpadapterinfo,
+ sizeof(AdapterInfo) * inumberadapters);
+
+ /* Repeat for all available adapters in the system */
+ for (i = 0; i < inumberadapters; i++) {
+ iadapterindex = lpadapterinfo[i].iAdapterIndex;
+ if (ADL_OK != adl_adapter_active_get(iadapterindex, &lpstatus))
+ continue;
+ if (lpstatus != ADL_TRUE)
+ /* count only if the adapter is active */
+ continue;
+
+ if (!active_amd_adapters) {
+ active_amd_adapters = (int *) malloc(sizeof(int));
+ inumberadaptersactive = 1;
+ } else {
+ ++inumberadaptersactive;
+ active_amd_adapters =
+ (int *) realloc(active_amd_adapters,
+ sizeof(int)*inumberadaptersactive);
+ }
+ active_amd_adapters[inumberadaptersactive-1] = iadapterindex;
+ }
+
+ adl_main_memory_free((void **) &lpadapterinfo);
+
+ /* Each Adapter has one GPU temperature
+ sensor and one fan control sensor */
+ return 2*inumberadaptersactive;
+}
+
+void amd_psensor_list_update(struct psensor **sensors)
+{
+ struct psensor **ss, *s;
+
+ ss = sensors;
+ while (*ss) {
+ s = *ss;
+
+ if (s->type == SENSOR_TYPE_AMD_TEMP)
+ psensor_set_current_value(s, get_temp(s));
+ else if (s->type == SENSOR_TYPE_AMD_FAN)
+ psensor_set_current_value(s, get_fanspeed(s));
+
+ ss++;
+ }
+}
+
+struct psensor * *
+amd_psensor_list_add(struct psensor **sensors, int values_len)
+{
+ int i, n;
+ struct psensor **tmp, **ss, *s;
+
+ n = init();
+
+ ss = sensors;
+ for (i = 0; i < n; i++) {
+ s = create_sensor(i, values_len);
+
+ tmp = psensor_list_add(ss, s);
+
+ if (ss != tmp)
+ free(ss);
+
+ ss = tmp;
+ }
+
+ if (active_amd_adapters) {
+ free(active_amd_adapters);
+ active_amd_adapters = NULL;
+ }
+
+ return ss;
+}
+
+void amd_cleanup()
+{
+ if (hdll) {
+ if (adl_main_control_done)
+ adl_main_control_destroy();
+ dlclose(hdll);
+ }
+ if (active_amd_adapters) {
+ free(active_amd_adapters);
+ active_amd_adapters = NULL;
+ }
+}
if (type & SENSOR_TYPE_NVIDIA)
return "NVidia GPU Temperature";
+ if (type & SENSOR_TYPE_AMD_TEMP)
+ return "AMD GPU Temperature";
+
+ if (type & SENSOR_TYPE_AMD_FAN)
+ return "AMD GPU Fan Speed";
+
if (type & SENSOR_TYPE_HDD_TEMP)
return "HDD Temperature";
SENSOR_TYPE_LMSENSOR_TEMP = 0x0100 | SENSOR_TYPE_TEMP,
SENSOR_TYPE_NVIDIA = 0x0200 | SENSOR_TYPE_TEMP,
SENSOR_TYPE_HDD_TEMP = 0x0400 | SENSOR_TYPE_TEMP,
- SENSOR_TYPE_LMSENSOR_FAN = 0x0800 | SENSOR_TYPE_FAN
+ SENSOR_TYPE_LMSENSOR_FAN = 0x0800 | SENSOR_TYPE_FAN,
+ SENSOR_TYPE_AMD = 0x1000,
+ SENSOR_TYPE_AMD_TEMP = SENSOR_TYPE_AMD | SENSOR_TYPE_TEMP,
+ SENSOR_TYPE_AMD_FAN = SENSOR_TYPE_AMD | SENSOR_TYPE_FAN
};
struct psensor {
/* Nvidia id for the nvctrl */
int nvidia_id;
#endif
+#ifdef HAVE_LIBATIADL
+ /* AMD id for the aticonfig */
+ int amd_id;
+#endif
char *url;
};
#include "nvidia.h"
#endif
+#ifdef HAVE_LIBATIADL
+#include "amd.h"
+#endif
+
#ifdef HAVE_REMOTE_SUPPORT
#include "rsensor.h"
#endif
#ifdef HAVE_NVIDIA
nvidia_psensor_list_update(sensors);
#endif
-
+#ifdef HAVE_LIBATIADL
+ amd_psensor_list_update(sensors);
+#endif
g_mutex_unlock(ui->sensors_mutex);
sleep(cfg->sensor_update_interval);
#ifdef HAVE_NVIDIA
ui.sensors = nvidia_psensor_list_add(ui.sensors, 600);
#endif
+#ifdef HAVE_LIBATIADL
+ ui.sensors = amd_psensor_list_add(ui.sensors, 600);
+#endif
}
associate_preferences(ui.sensors);
#ifdef HAVE_NVIDIA
nvidia_cleanup();
#endif
-
+#ifdef HAVE_LIBATIADL
+ amd_cleanup();
+#endif
return 0;
}