summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoe <bousset.rudy@gmail.com>2022-07-14 15:30:10 +0200
committerJoe <bousset.rudy@gmail.com>2022-07-14 15:30:10 +0200
commita1fb4aa469767ce11c8724aaa0cee1fa0cfc4437 (patch)
tree18b0ca9ea86565d8b9cc6772ec741e665d80bdbf
parentWIP (diff)
downloadmpdview-a1fb4aa469767ce11c8724aaa0cee1fa0cfc4437.tar.gz
mpdview-a1fb4aa469767ce11c8724aaa0cee1fa0cfc4437.tar.bz2
mpdview-a1fb4aa469767ce11c8724aaa0cee1fa0cfc4437.tar.xz
mpdview-a1fb4aa469767ce11c8724aaa0cee1fa0cfc4437.tar.zst
mpdview-a1fb4aa469767ce11c8724aaa0cee1fa0cfc4437.zip
RefactorHEADmaster
-rw-r--r--Makefile4
-rw-r--r--src/c_mpd.c105
-rw-r--r--src/c_mpd.h56
-rw-r--r--src/c_mpdview.c94
-rw-r--r--src/c_mpdview.h16
-rw-r--r--src/c_view.c88
-rw-r--r--src/c_view.h68
7 files changed, 322 insertions, 109 deletions
diff --git a/Makefile b/Makefile
index 50999d1..8369c8f 100644
--- a/Makefile
+++ b/Makefile
@@ -11,7 +11,7 @@
# ========================
#
# mpdview: Makefile
-# Tue, 12 Jul 2022 20:25:26 +0200
+# Thu, 14 Jul 2022 15:17:13 +0200
# Joe
#
# BSD Makefile
@@ -25,6 +25,8 @@ DESTDIR :=
MAKEOBJDIR := ./
SRCS := c_mpdview
+SRCS += c_mpd
+SRCS += c_view
SRCS := ${SRCS:S/$/.c/g}
SRCS := ${SRCS:S/^/${SRCS_DIR}\//g}
diff --git a/src/c_mpd.c b/src/c_mpd.c
new file mode 100644
index 0000000..04ae592
--- /dev/null
+++ b/src/c_mpd.c
@@ -0,0 +1,105 @@
+/*
+ * ========================
+ * ===== ===============
+ * ====== ================
+ * ====== ================
+ * ====== ==== ==== ==
+ * ====== === == = =
+ * ====== === = == =
+ * = === === = == ====
+ * = === === = == = =
+ * == ===== ==== ==
+ * ========================
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2022 Joe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the organization nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JOE ''AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL JOE BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * mpdview: src/c_mpd.c
+ * Thu, 14 Jul 2022 14:22:17 +0200
+ * Joe
+ */
+
+#include <stdio.h>
+#include <unistd.h>
+
+#include "c_defines.h"
+#include "c_view.h"
+
+u8_t
+c_connect_mpd(struct mpdview_s* v)
+{
+ v->conn = mpd_connection_new(NULL, 0, 3000);
+ if (mpd_connection_get_error(v->conn) != MPD_ERROR_SUCCESS) {
+ dprintf(
+ STDERR_FILENO,
+ "%s: %s\n",
+ PROGNAME,
+ mpd_connection_get_error_message(v->conn)
+ );
+ return (RET_ERR);
+ }
+ return (RET_OK);
+}
+
+u8_t
+c_get_mpd_status(struct mpdview_s* v)
+{
+ v->status = mpd_run_status(v->conn);
+ if (v->status == NULL) {
+ dprintf(
+ STDERR_FILENO,
+ "%s: %s\n",
+ PROGNAME,
+ mpd_status_get_error(v->status)
+ );
+ return (RET_ERR);
+ }
+ v->state = mpd_status_get_state(v->status);
+ mpd_status_free(v->status);
+ v->status = NULL;
+ return (RET_OK);
+}
+
+u8_t
+c_get_mpd_song(struct mpdview_s* v)
+{
+ if (v->song != NULL) {
+ mpd_song_free(v->song);
+ v->song = NULL;
+ }
+ v->song = mpd_run_current_song(v->conn);
+ if (v->song == NULL) {
+ dprintf(
+ STDERR_FILENO,
+ "%s: %s\n",
+ PROGNAME,
+ "Could not get song"
+ );
+ return (RET_ERR);
+ }
+ return (RET_OK);
+}
diff --git a/src/c_mpd.h b/src/c_mpd.h
new file mode 100644
index 0000000..7e8eac9
--- /dev/null
+++ b/src/c_mpd.h
@@ -0,0 +1,56 @@
+/*
+ * ========================
+ * ===== ===============
+ * ====== ================
+ * ====== ================
+ * ====== ==== ==== ==
+ * ====== === == = =
+ * ====== === = == =
+ * = === === = == ====
+ * = === === = == = =
+ * == ===== ==== ==
+ * ========================
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2022 Joe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the organization nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JOE ''AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL JOE BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * mpdview: src/c_mpd.h
+ * Thu, 14 Jul 2022 14:22:17 +0200
+ * Joe
+ */
+
+#ifndef __C_MPD_H__
+#define __C_MPD_H__
+
+#include "c_defines.h"
+#include "c_view.h"
+
+u8_t c_connect_mpd(struct mpdview_s*);
+u8_t c_get_mpd_status(struct mpdview_s*);
+u8_t c_get_mpd_song(struct mpdview_s*);
+
+#endif /* __C_MPD_H__ */
diff --git a/src/c_mpdview.c b/src/c_mpdview.c
index 320f8e2..7e6de4e 100644
--- a/src/c_mpdview.c
+++ b/src/c_mpdview.c
@@ -59,109 +59,19 @@
#include <mpd/client.h>
#include "c_defines.h"
+#include "c_mpd.h"
#include "c_mpdview.h"
+#include "c_view.h"
static bool_t doexit = FALSE;
-static struct mpdview_s *
-c_create_view(bool_t verbose)
-{
- struct mpdview_s* view;
-
- view = (struct mpdview_s*)malloc(sizeof(struct mpdview_s));
- if (view == NULL) {
- return (NULL);
- }
- view->conn = NULL;
- view->status = NULL;
- view->song = NULL;
- view->state = MPD_STATE_UNKNOWN;
- view->verbose = verbose;
- return (view);
-}
-
static void
c_get_music_dir(struct mpdview_s* v)
{
strlcpy(v->music_dir, DEF_MUSIC_DIR, PATH_MAX);
}
-static u8_t
-c_connect_mpd(struct mpdview_s* v)
-{
- v->conn = mpd_connection_new(NULL, 0, 3000);
- if (mpd_connection_get_error(v->conn) != MPD_ERROR_SUCCESS) {
- dprintf(
- STDERR_FILENO,
- "%s: %s\n",
- PROGNAME,
- mpd_connection_get_error_message(v->conn)
- );
- return (RET_ERR);
- }
- return (RET_OK);
-}
-
-static void
-c_destroy_mpdview(struct mpdview_s** v)
-{
- (*v)->state = MPD_STATE_UNKNOWN;
- if ((*v)->song != NULL) {
- mpd_song_free((*v)->song);
- }
- (*v)->song = NULL;
- if ((*v)->status != NULL) {
- mpd_status_free((*v)->status);
- }
- (*v)->status = NULL;
- if ((*v)->conn != NULL) {
- mpd_connection_free((*v)->conn);
- }
- (*v)->conn = NULL;
- free(*v);
- *v = NULL;
-}
-
-static u8_t
-c_get_mpd_status(struct mpdview_s* v)
-{
- v->status = mpd_run_status(v->conn);
- if (v->status == NULL) {
- dprintf(
- STDERR_FILENO,
- "%s: %s\n",
- PROGNAME,
- mpd_status_get_error(v->status)
- );
- return (RET_ERR);
- }
- v->state = mpd_status_get_state(v->status);
- mpd_status_free(v->status);
- v->status = NULL;
- return (RET_OK);
-}
-
-static u8_t
-c_get_mpd_song(struct mpdview_s* v)
-{
- if (v->song != NULL) {
- mpd_song_free(v->song);
- v->song = NULL;
- }
- v->song = mpd_run_current_song(v->conn);
- if (v->song == NULL) {
- dprintf(
- STDERR_FILENO,
- "%s: %s\n",
- PROGNAME,
- "Could not get song"
- );
- return (RET_ERR);
- }
- return (RET_OK);
-}
-
static void
c_get_current_dir(struct mpdview_s* v)
{
diff --git a/src/c_mpdview.h b/src/c_mpdview.h
index bcae458..82a3e8f 100644
--- a/src/c_mpdview.h
+++ b/src/c_mpdview.h
@@ -46,20 +46,4 @@
#ifndef __C_MPDVIEW_H__
#define __C_MPDVIEW_H__
-#include <sys/param.h>
-
-#include <mpd/client.h>
-
-#include "c_defines.h"
-
-struct mpdview_s {
- struct mpd_connection* conn;
- struct mpd_status* status;
- struct mpd_song* song;
- enum mpd_state state;
- char music_dir[PATH_MAX];
- char current_dir[PATH_MAX];
- bool_t verbose;
-};
-
#endif /* __C_MPDVIEW_H__ */
diff --git a/src/c_view.c b/src/c_view.c
new file mode 100644
index 0000000..98a298c
--- /dev/null
+++ b/src/c_view.c
@@ -0,0 +1,88 @@
+/*
+ * ========================
+ * ===== ===============
+ * ====== ================
+ * ====== ================
+ * ====== ==== ==== ==
+ * ====== === == = =
+ * ====== === = == =
+ * = === === = == ====
+ * = === === = == = =
+ * == ===== ==== ==
+ * ========================
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2022 Joe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the organization nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JOE ''AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL JOE BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * mpdview: src/c_view.c
+ * Thu, 14 Jul 2022 14:22:17 +0200
+ * Joe
+ */
+
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "c_defines.h"
+#include "c_view.h"
+
+struct mpdview_s *
+c_create_view(bool_t verbose)
+{
+ struct mpdview_s* view;
+
+ view = (struct mpdview_s*)malloc(sizeof(struct mpdview_s));
+ if (view == NULL) {
+ return (NULL);
+ }
+ view->conn = NULL;
+ view->status = NULL;
+ view->song = NULL;
+ view->state = MPD_STATE_UNKNOWN;
+ view->verbose = verbose;
+ return (view);
+}
+
+void
+c_destroy_mpdview(struct mpdview_s** v)
+{
+ (*v)->state = MPD_STATE_UNKNOWN;
+ if ((*v)->song != NULL) {
+ mpd_song_free((*v)->song);
+ }
+ (*v)->song = NULL;
+ if ((*v)->status != NULL) {
+ mpd_status_free((*v)->status);
+ }
+ (*v)->status = NULL;
+ if ((*v)->conn != NULL) {
+ mpd_connection_free((*v)->conn);
+ }
+ (*v)->conn = NULL;
+ free(*v);
+ *v = NULL;
+}
+
diff --git a/src/c_view.h b/src/c_view.h
new file mode 100644
index 0000000..07e16fc
--- /dev/null
+++ b/src/c_view.h
@@ -0,0 +1,68 @@
+/*
+ * ========================
+ * ===== ===============
+ * ====== ================
+ * ====== ================
+ * ====== ==== ==== ==
+ * ====== === == = =
+ * ====== === = == =
+ * = === === = == ====
+ * = === === = == = =
+ * == ===== ==== ==
+ * ========================
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2022 Joe
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the organization nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JOE ''AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL JOE BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * mpdview: src/c_view.h
+ * Thu, 14 Jul 2022 14:22:17 +0200
+ * Joe
+ */
+
+#ifndef __C_VIEW_H__
+#define __C_VIEW_H__
+
+#include <sys/param.h>
+
+#include <mpd/client.h>
+
+#include "c_defines.h"
+
+struct mpdview_s {
+ struct mpd_connection* conn;
+ struct mpd_status* status;
+ struct mpd_song* song;
+ enum mpd_state state;
+ char music_dir[PATH_MAX];
+ char current_dir[PATH_MAX];
+ bool_t verbose;
+};
+
+struct mpdview_s *c_create_view(bool_t);
+void c_destroy_mpdview(struct mpdview_s**);
+
+#endif /* __C_VIEW_H__ */